int sqlite3_keyword_count(void); int sqlite3_keyword_name(int,const char**,int*); int sqlite3_keyword_check(const char*,int);
Это обеспечивает доступ к набору языковых ключевых слов SQL, признанных SQLite. Запросы могут использовать это, чтобы определить, нужно ли экранировать определенный идентификатор (например, в двойных кавычках), чтобы не путать анализатор.
sqlite3_keyword_count() возвращает количество отличных ключевых слов, понятых SQLite.
sqlite3_keyword_name(N,Z,L) находит N-е ключевое слово, делает *Z указателем на то ключевое слово, выраженное как UTF8, и пишет число байтов в ключевом слове в *L. Последовательность *Z не закончена нолем. sqlite3_keyword_name(N,Z,L) вернет SQLITE_OK, если N в границах и SQLITE_ERROR иначе. Если Z или L = NULL или недопустимые указатели, тогда действие sqlite3_keyword_name(N,Z,L) не определено.
sqlite3_keyword_check(Z,L) проверяет, действительно ли L-байтный идентификатор UTF8, на который указывает Z, является ключевым словом, возвращая отличное от нуля значение, если это так, и ноль если нет.
Анализатор, используемый SQLite, прощающий. Часто возможно использовать ключевое слово в качестве идентификатора, поскольку долгое использование как таковое не приводит к двусмысленности парсинга. Например, "CREATE TABLE BEGIN(REPLACE,PRAGMA,END);" принято SQLite и составляет новую таблицу под названием "BEGIN" с тремя колонками "REPLACE", "PRAGMA" и "END". Тем не менее, наиболее успешная практика должна избегать использования ключевых слов как идентификаторов. Общие методы избегать столкновения имени и ключевого слова включают:
Обратите внимание на то, что количество ключевых слов, понятых SQLite, может зависеть от вариантов времени компиляции. Например, "VACUUM" это не ключевое слово, если SQLite собран с -DSQLITE_OMIT_VACUUM. Кроме того, новые ключевые слова могут быть добавлены к будущим выпускам SQLite.