RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Small. Fast. Reliable.
Choose any three.
Табличная функция COMPLETION()

1. Обзор

Расширение COMPLETION осуществляет табличную функцию "completion", которая может использоваться, чтобы предложить завершения частично введенных слов во время интерактивного ввода SQL. Таблица завершения может использоваться, чтобы помочь осуществить завершение.

2. Детали

Разработанный интерфейс запросов:

SELECT DISTINCT candidate COLLATE nocase
       FROM completion($prefix, $wholeline) ORDER BY 1;

Запрос выше возвратит предложения для целого входного слова, которое начинается с $prefix. Параметр $wholeline это весь текст с начала строки до точки вставки. Параметр $wholeline используется для контекста.

Параметр $prefix может быть NULL, в этом случае префикс выведен из $wholeline. Или параметр $wholeline может быть NULL или пропущен, если контекстная информация недоступна или если завершение с учетом контекста не желаемо.

Таблица завершения могла бы возвратить того же самого кандидата несколько раз, и возвратить кандидатов в произвольном порядке. Ключевые слова DISTINCT и ORDER BY в типовом запросе выше добавляются, чтобы сделать ответы уникальными и в лексикографическом порядке.

2.1. Пример использования

Таблица используется, чтобы осуществить завершение счета в оболочке командной строки вместе с readline или вместе с входными пакетами редактирования строки для unix. См. исходный файл https://sqlite.org/src/file/src/shell.c.in, например. Ищите "FROM completion", чтобы найти соответствующие кодовые разделы.

Поскольку таблица завершения встроена в оболочку командной строки, чтобы предусмотреть завершения счета, можно управлять испытательными запросами против таблицы завершения непосредственно в оболочке командной строки. Просто напечатайте запрос, такой как пример, показанный выше, заполнив соответствующие значения $prefix и $wholeline, и наблюдайте вывод.

3. Ограничения

Таблица завершения разработана для интерактивного использования. Это даст ответы на скорости, подходящей для человеческой печати. Никакое усилие не приложено, чтобы быть необычно эффективным, пока время отклика почти мгновенно в пользовательском интерфейсе.

С этого момента (2017-07-13) виртуальная таблица завершения ищет только ключевые слова SQL, схему, таблицу и имена столбцов. Контекст, содержавшийся в $wholeline, полностью проигнорирован. Будущие улучшения попытаются возвратить новые завершения, взятые из функции и имен pragma и других источников, а также рассмотреть больше контекста. Таблицу завершения нужно считать выполняемой работой.