시스템 뷰
INFORMATION_SCHEMA.EXTENSIONS
현재 설치된 VillageSQL 확장을 모두 나열합니다.INSTALL EXTENSION 및 UNINSTALL EXTENSION은 VillageSQL SQL 확장입니다.
이는 표준 MySQL 9.7 구문의 일부가 아닙니다.
예시:
EXTENSION_NAME 값은 make_extension()에 전달된 이름과 일치하는 소문자입니다.
이 뷰는 현재 설치된 상태를 반영합니다.
네 개의 PENDING_* 열은 예약된 ALTER EXTENSION ... AT RESTART
버전 변경을 추적합니다. 워크플로에 대해서는 확장 관리를 참조하세요.
INFORMATION_SCHEMA.COLUMNS (사용자 정의 유형)
사용자 정의 확장 유형을 사용하는 열은 표준INFORMATION_SCHEMA.COLUMNS 뷰를 통해 표시됩니다. 사용자 정의 유형은 DATA_TYPE 및 COLUMN_TYPE 열에서 extension_name.type_name 형식으로 표시됩니다 (예: vsql_complex.COMPLEX).
예시:
INFORMATION_SCHEMA.EXTENSION_REGISTRATION
로드된 각 확장에 대한 메모리 내 VEF 등록 구조체를 JSON 문서로 노출합니다.INSTALL EXTENSION 후 서버가 확장의 함수, 유형 및 시스템 변수를 올바르게 해석했는지 확인하기 위해 사용합니다.
일반 쿼리
확장 종속성 찾기
제거하기 전에 특정 확장의 유형을 사용하는 열을 찾습니다:모든 확장 및 사용자 정의 유형 열 목록
확장 유형을 사용하는 테이블 찾기
시스템 변수
veb_dir
런타임 시 읽기 전용입니다. 서버가.veb 확장 패키지 파일을 찾는 디렉토리 경로입니다. [mysqld] 섹션의 my.cnf에서 설정해야 하며, 서버 재시작 없이는 변경할 수 없습니다.
my.cnf에서 구성합니다:
villagesql_server_version
읽기 전용 글로벌 변수입니다. 서버 바이너리에 컴파일된 VillageSQL 버전 문자열을 반환합니다. 형식은{codebase}_{major}.{minor}.{patch}[-prerelease]이며, 여기서 codebase는
이 빌드가 파생된 상위 포크의 이름입니다 (여기서는 mysql-9.7). 이는
내부 메타데이터 카탈로그에 찍힌 버전을 동일한 {codebase}_{version} 형식으로
보고하는 villagesql_schema_version과 구분됩니다.
villagesql_schema_version
읽기 전용 글로벌 변수입니다. 내부 메타데이터 카탈로그에 찍힌 버전을villagesql_server_version과 동일한 {codebase}_{version} 형식으로 반환합니다. 빈 문자열은 이 데이터 디렉터리에서 VillageSQL 스키마가 초기화되지 않았음을 의미합니다.
villagesql_vef_server_protocol
읽기 전용 글로벌 변수입니다. 이 서버 빌드에서 지원하는 가장 높은 VEF 프로토콜 버전을 반환합니다. 확장을 설치할 때 서버와 확장은 양쪽 모두 지원하는 가장 높은 프로토콜 버전을 사용합니다. 폐기된 불안정 프로토콜 버전으로 빌드된 확장은 설치할 수 없으며,INSTALL EXTENSION이 Failed to load VEF extension 오류로 실패합니다.
프로토콜 V4는 가변 길이 커스텀 유형 지원을 추가하고, 함수가 문자열 결과의
최대 길이를 선언할 수 있게 합니다. V4는 옵트인 개발용 ABI에서 활발히 개발
중이며 안정화되기 전에 변경될 수 있습니다. 확장을 개발하는 경우, 각 프로토콜
버전에서 사용할 수 있는 기능은
유형 연산과
C++로 확장 만들기를 참조하세요.
이 값은 컴파일 타임 상수
vef_server_protocol_version을 반영하며, 런타임 시 변경할 수 없습니다.
villagesql_build_info
읽기 전용 글로벌 변수입니다. 이 서버 바이너리가 어떻게 빌드되었는지에 대한 메타데이터를 담은 JSON 객체를 반환합니다: 소스 커밋, 작업 트리 상태 및 빌드 환경.
범위: 글로벌, 읽기 전용입니다. 런타임 시 설정할 수 없습니다.
수정된 작업 트리에서 빌드하면
files_added, files_deleted 또는 files_modified에
0이 아닌 개수가 표시되며, 이 경우 is_dirty는 true가 됩니다. 릴리스 빌드
(버전에 사전 릴리스 접미사가 없는 빌드)는 동일한 소스에서 동일한 바이너리가
생성되도록 이 세 개의 카운트를 강제로 0으로 만들고 build_timestamp와
build_host를 비워 둡니다. 이것이 릴리스 빌드에서 is_dirty가 항상 false인
이유입니다.
vsql_allow_preview_extensions
서버가 미리보기 기능이 필요한 확장을 허용할지 여부를 제어합니다.OFF인 동안에는 해당 확장 설치가 실패합니다:
SET PERSIST로 켭니다:
SET GLOBAL이 아니라 SET PERSIST를 사용하세요. 미리보기 확장은 서버 시작 시 로드되므로 이 값은 재시작 후에도 유지되어야 하며, mysqld-auto.cnf에 값을 기록하는 것은 SET PERSIST뿐입니다. 그런 이유로 SET GLOBAL은 거부됩니다. mysqld-auto.cnf가 아직 존재하지 않는 경우(서버를 처음 시작하는 경우 등)에는 대신 mysqld 명령줄에서 --vsql_allow_preview_extensions=ON을 전달하세요.
미리보기 기능을 사용하는 확장이 하나라도 설치되어 있는 동안에는 이 값을 다시 OFF로 되돌릴 수 없습니다. 서버 시작 시 이 설정이 ON이어야 하기 때문입니다. 먼저 해당 확장을 제거하세요.
사용 가능한 미리보기 기능 목록과 확장이 이를 어떻게 사용하는지는 미리보기 기능을 참조하세요.
다음 단계
확장 관리
확장 모니터링 및 문제 해결
확장 설치
새로운 확장 추가
확장 아키텍처
내부 구조 이해
사용 가능한 확장
확장 카탈로그 브라우징

