가상 테이블 목록
가상 테이블 목록 (List Of Virtual Tables)
SQLite에서 사용할 수 있는 가상 테이블(virtual table) 구현을 정리한 목록 문서예요.
본문
1. 소개 (Introduction)
가상 테이블은 SQL 테이블 인터페이스를 제공하지만 데이터베이스 파일에는 저장되지 않는(적어도 직접적으로는 저장되지 않는) 객체예요. 가상 테이블 메커니즘은 SQLite의 기능으로, 강력한 SQL 쿼리 언어를 사용해 데이터베이스 파일의 비트 외의 자원에도 SQLite가 접근하고 조작할 수 있게 해줘요.
아래 표는 SQLite에서 사용할 수 있는 가상 테이블 구현 몇 가지를 정리한 것이에요. 개발자는 이런 가상 테이블을 자신의 응용 프로그램에 배포하거나, 아래 구현을 템플릿으로 삼아 자신만의 가상 테이블을 작성할 수 있어요.
아래 목록은 완전하지 않아요. 다른 가상 테이블 구현도 SQLite 소스 트리와 그 외 곳에 존재해요. 아래 목록은 더 흥미로운 가상 테이블 구현을 담으려고 해요.
2. 가상 테이블 (Virtual Tables)
| 이름 | 설명 |
|---|---|
| bytecode | 준비된 문(prepared statement)의 바이트코드를 보여주는 테이블 값 함수예요. |
| carray | C 언어의 정수, 실수, 문자열 또는 blob 배열을 쿼리에서 테이블로 사용할 수 있게 해주는 테이블 값 함수예요. |
| closure | 집합의 전이 폐포(transitive closure)를 계산해요. |
| completion | 대화형 SQL 입력 중에 부분적으로 입력된 단어의 완성(completion)을 제안해요. CLI가 탭 완성을 구현하는 데 사용해요. |
| csv | CSV(comma-separated-value) 파일(RFC 4180)을 읽기 전용 테이블로 나타내는 가상 테이블이에요. 더 큰 쿼리의 일부로 사용할 수 있어요. |
| dbstat | 데이터베이스 파일의 각 페이지의 용도와 사용에 관한 정보를 제공해요. sqlite3_analyzer 유틸리티 프로그램 구현에 사용돼요. |
| files_of_checkin | Fossil 버전 관리 시스템의 단일 체크인(check-in)에 있는 모든 파일에 대한 정보를 제공해요. 이 가상 테이블은 SQLite 프로젝트의 일부는 아니지만, 가상 테이블 사용 예를 제공하고 SQLite 소스를 버전 관리하는 데 도움이 되기 때문에 포함됐어요. |
| fsdir | 호스트 컴퓨터의 선택된 파일 계층 구조에서 각 파일마다 한 행을 반환하는 테이블 값 함수예요. CLI가 .archive 명령을 구현하는 데 사용해요. |
| FTS3 | 고성능 전문 검색(full-text search) 색인이에요. |
| FTS5 | 더 높은 성능의 전문 검색 색인이에요. |
| generate_series | 정수 수열을 반환하는 테이블 값 함수로, PostgreSQL의 같은 이름의 테이블 값 함수를 본떠 만든 것이에요. |
| json_each | JSON 문자열을 분해하기 위한 테이블 값 함수예요. |
| json_tree | JSON 문자열을 분해하기 위한 테이블 값 함수예요. |
| OsQuery | 프로세스 테이블, 사용자 목록, 활성 네트워크 연결 등 호스트 컴퓨터의 다양한 측면을 공개하는 수백 개의 가상 테이블이에요. OsQuery는 Facebook이 시작한 별도의 프로젝트로 GitHub에서 호스팅되며, 보안 분석과 침입 탐지를 위한 것이에요. OsQuery는 SQLite 프로젝트의 일부는 아니지만, SQL 언어와 SQLite 가상 테이블 메커니즘이 중요한 실제 문제에 우아한 해결책을 제공하는 데 활용될 수 있음을 보여주기 때문에 이 목록에 포함됐어요. |
| pragma | 일반 SQL 쿼리 안에서 사용하기 위해 PRAGMA 문의 결과를 반환하는 내장 테이블 값 함수들이에요. |
| RTree | Guttmann R*Tree 공간 색인 아이디어의 구현이에요. |
| spellfix1 | 철자 보정(스펠링 교정) 엔진을 구현하는 가상 테이블이에요. |
| sqlite_btreeinfo | 이 실험적 테이블 값 함수는 데이터베이스 파일의 단일 B-tree에 대한 정보(깊이, 예상 페이지 수, 항목 수 등)를 제공해요. |
| sqlite_dbpage | 원시 데이터베이스 파일 내용에 대한 key/value 저장소예요. key는 페이지 번호이고 value는 이진 페이지 내용이에요. |
| sqlite_memstat | sqlite3_status64()와 sqlite3_db_status() 인터페이스에 SQL 접근을 제공해요. |
| sqlite_stmt | 열린 데이터베이스 연결과 연결된 각 준비된 문마다 한 행을 담는 테이블 값 함수예요. |
| swarmvtab | 단일 가상 테이블 추상화를 통해 여러 데이터베이스에 분산된 여러 테이블에 주문형 읽기 전용 접근을 제공하는 실험적 모듈이에요. |
| tables_used | 준비된 문이 접근하는 테이블과 색인을 보여주는 테이블 값 함수예요. |
| tclvar | TCL 인터프리터의 전역 변수를 SQL 테이블로 나타내요. SQLite 테스트 스위트의 일부로 사용돼요. |
| templatevtab | 자신만의 가상 테이블을 작성하려는 개발자에게 좋은 시작점이 되는 템플릿 가상 테이블 구현이에요. |
| unionvtab | 단일 가상 테이블 추상화를 통해 여러 데이터베이스에 분산된 여러 테이블에 주문형 읽기 전용 접근을 제공하는 실험적 모듈이에요. |
| vfsstat | 함께 배포되는 VFS shim과 결합해 SQLite가 수행한 시스템 호출 수에 대한 정보를 제공하는 테이블 값 함수예요. |
| vtablog | 핵심 메서드가 호출될 때 stdout에 진단 정보를 출력하는 가상 테이블이에요. 가상 테이블 인터페이스의 대화형 분석과 디버깅을 위한 것이에요. |
| wholenumber | 1부터 4294967295까지 모든 정수를 반환하는 가상 테이블이에요. |
| zipfile | ZIP 아카이브를 SQL 테이블로 나타내요. 읽기와 쓰기 모두 동작해요. CLI가 ZIP 아카이브를 읽고 쓸 수 있게 구현하는 데 사용돼요. |