Список виртуальных таблиц
Оглавление
1. Введение
Виртуальная таблица — это объект, представляющий интерфейс SQL-таблицы, но не хранящийся в файле базы данных, по крайней мере, не напрямую. Механизм виртуальных таблиц — это функция SQLite, которая позволяет SQLite обращаться к ресурсам, отличным от данных в файле базы данных, и обрабатывать их с помощью мощного языка запросов SQL.
В таблице ниже приведены некоторые реализации виртуальных таблиц, доступных для SQLite. Разработчики могут использовать эти виртуальные таблицы в своих приложениях или использовать приведенные ниже реализации в качестве шаблонов для создания собственных виртуальных таблиц.
Этот список не является исчерпывающим. Другие реализации виртуальных таблиц существуют в дереве исходных кодов SQLite и в других местах. В приведенном ниже списке представлены наиболее интересные реализации виртуальных таблиц.
2. Виртуальные таблицы
| Имя | Описание |
|---|---|
| approximate_match | Демонстрация использования виртуальной таблицы для реализации приближенного сопоставления строк. |
| bytecode | Функция, возвращающая таблицу, которая показывает байт-код подготовленного оператора. |
| carray | Функция, возвращающая таблицу, которая позволяет использовать массив значений языка C (целые числа, двойные или строки) в качестве таблицы в запросе. |
| closure | Вычисление транзитивного замыкания множества. |
| completion | Предлагает варианты завершения частично введённых слов во время интерактивного ввода SQL. Используется в командной строке (CLI) для реализации автодополнения. |
| csv | Виртуальная таблица, представляющая файл с разделителями (CSV) (RFC 4180) как таблицу только для чтения, чтобы её можно было использовать в рамках более крупного запроса. |
| dbstat | Предоставляет информацию о назначении и использовании каждой страницы в файле базы данных. Используется в реализации утилиты sqlite3_analyzer. |
| files_of_checkin | Предоставляет информацию обо всех файлах в одном коммите системы управления версиями Fossil. Эта виртуальная таблица не является частью проекта SQLite, но включена в список, потому что она демонстрирует, как использовать виртуальные таблицы, и потому что она используется для управления версиями исходных кодов SQLite. |
| fsdir | Функция, возвращающая таблицу, которая возвращает одну строку для каждого файла в выбранной иерархии файлов на компьютере-хосте. Используется в командной строке (CLI) для реализации команды .archive. |
| FTS3 | Высокопроизводительный индекс полнотекстового поиска. |
| FTS5 | Более высокопроизводительный индекс полнотекстового поиска |
| generate_series | Функция, возвращающая таблицу, возвращающая последовательность целых чисел, аналогичную одноимённой функции в PostgreSQL. |
| json_each | Функция, возвращающая таблицу, для разложения JSON-строки. |
| json_tree | Функция, возвращающая таблицу, для разложения JSON-строки. |
| OsQuery | Сотни виртуальных таблиц, публикующих различные аспекты компьютера-хоста, такие как таблица процессов, список пользователей, активные сетевые подключения и так далее. OsQuery — отдельный проект, начатый Facebook, размещённый на GitHub, и предназначенный для анализа безопасности и обнаружения вторжений. OsQuery не входит в проект SQLite, но включён в этот список, так как демонстрирует, как язык SQL и механизм виртуальных таблиц SQLite могут быть эффективно использованы для решения важных проблем реального мира. |
| pragma | Встроенные функции, возвращающие результаты операторов PRAGMA для использования в обычных SQL-запросах. |
| RTree | Реализация идеи пространственного индекса R*Tree Гуттмана. |
| spellfix1 | Виртуальная таблица, реализующая движок исправления орфографических ошибок. |
| sqlite_btreeinfo | Эта экспериментальная функция, возвращающая таблицу, предоставляет информацию о единственном B-дереве в файле базы данных, например, глубину, приблизительное количество страниц и количество записей и так далее. |
| sqlite_dbpage | Хранилище ключ/значение для содержимого исходного файла базы данных. Ключ — номер страницы, значение — двоичное содержимое страницы. |
| sqlite_memstat | Предоставляет SQL-доступ к интерфейсам sqlite3_status64() и sqlite3_db_status(). |
| 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. |
Последнее изменение этой страницы: 01.05.2023 21:49:55 UTC
SQLite is in the Public Domain.
https://sqlite.org/vtablist.html