Update mysq, pgsql and sqll keywords (fixes microsoft/monaco-editor#2706)

This commit is contained in:
Alex Dima 2021-10-27 09:08:08 +02:00
parent 7e1d706f5f
commit 4ed52cbd2b
No known key found for this signature in database
GPG key ID: 39563C1504FDD0C9
9 changed files with 2435 additions and 1734 deletions

32
src/mysql/keywords.js Normal file
View file

@ -0,0 +1,32 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
const fs = require('fs');
const path = require('path');
const keywords = getMySQLKeywords();
keywords.sort();
console.log(`'${keywords.join("',\n'")}'`);
function getMySQLKeywords() {
// https://dev.mysql.com/doc/refman/8.0/en/keywords.html
const lines = fs
.readFileSync(path.join(__dirname, 'keywords.mysql.txt'))
.toString()
.split(/\r\n|\r|\n/);
const tokens = [];
for (let line of lines) {
// Treat ; as a comment marker
line = line.replace(/;.*$/, '');
line = line.trim();
// Only consider reserved keywords
if (!/ \(R\)$/.test(line)) {
continue;
}
line = line.replace(/ \(R\)$/, '');
tokens.push(line);
}
return tokens;
}

View file

@ -0,0 +1,750 @@
ACCESSIBLE (R)
ACCOUNT
ACTION
ACTIVE; added in 8.0.14 (nonreserved)
ADD (R)
ADMIN; became nonreserved in 8.0.12
AFTER
AGAINST
AGGREGATE
ALGORITHM
ALL (R)
ALTER (R)
ALWAYS
ANALYSE; removed in 8.0.1
ANALYZE (R)
AND (R)
ANY
ARRAY; added in 8.0.17 (reserved); became nonreserved in 8.0.19
AS (R)
ASC (R)
ASCII
ASENSITIVE (R)
AT
ATTRIBUTE; added in 8.0.21 (nonreserved)
AUTHENTICATION; added in 8.0.27 (nonreserved)
AUTOEXTEND_SIZE
AUTO_INCREMENT
AVG
AVG_ROW_LENGTH
BACKUP
BEFORE (R)
BEGIN
BETWEEN (R)
BIGINT (R)
BINARY (R)
BINLOG
BIT
BLOB (R)
BLOCK
BOOL
BOOLEAN
BOTH (R)
BTREE
BUCKETS; added in 8.0.2 (nonreserved)
BY (R)
BYTE
CACHE
CALL (R)
CASCADE (R)
CASCADED
CASE (R)
CATALOG_NAME
CHAIN
CHALLENGE_RESPONSE; added in 8.0.27 (nonreserved)
CHANGE (R)
CHANGED
CHANNEL
CHAR (R)
CHARACTER (R)
CHARSET
CHECK (R)
CHECKSUM
CIPHER
CLASS_ORIGIN
CLIENT
CLONE; added in 8.0.3 (nonreserved)
CLOSE
COALESCE
CODE
COLLATE (R)
COLLATION
COLUMN (R)
COLUMNS
COLUMN_FORMAT
COLUMN_NAME
COMMENT
COMMIT
COMMITTED
COMPACT
COMPLETION
COMPONENT
COMPRESSED
COMPRESSION
CONCURRENT
CONDITION (R)
CONNECTION
CONSISTENT
CONSTRAINT (R)
CONSTRAINT_CATALOG
CONSTRAINT_NAME
CONSTRAINT_SCHEMA
CONTAINS
CONTEXT
CONTINUE (R)
CONVERT (R)
CPU
CREATE (R)
CROSS (R)
CUBE (R); became reserved in 8.0.1
CUME_DIST (R); added in 8.0.2 (reserved)
CURRENT
CURRENT_DATE (R)
CURRENT_TIME (R)
CURRENT_TIMESTAMP (R)
CURRENT_USER (R)
CURSOR (R)
CURSOR_NAME
DATA
DATABASE (R)
DATABASES (R)
DATAFILE
DATE
DATETIME
DAY
DAY_HOUR (R)
DAY_MICROSECOND (R)
DAY_MINUTE (R)
DAY_SECOND (R)
DEALLOCATE
DEC (R)
DECIMAL (R)
DECLARE (R)
DEFAULT (R)
DEFAULT_AUTH
DEFINER
DEFINITION; added in 8.0.4 (nonreserved)
DELAYED (R)
DELAY_KEY_WRITE
DELETE (R)
DENSE_RANK (R); added in 8.0.2 (reserved)
DESC (R)
DESCRIBE (R)
DESCRIPTION; added in 8.0.4 (nonreserved)
DES_KEY_FILE; removed in 8.0.3
DETERMINISTIC (R)
DIAGNOSTICS
DIRECTORY
DISABLE
DISCARD
DISK
DISTINCT (R)
DISTINCTROW (R)
DIV (R)
DO
DOUBLE (R)
DROP (R)
DUAL (R)
DUMPFILE
DUPLICATE
DYNAMIC
EACH (R)
ELSE (R)
ELSEIF (R)
EMPTY (R); added in 8.0.4 (reserved)
ENABLE
ENCLOSED (R)
ENCRYPTION
END
ENDS
ENFORCED; added in 8.0.16 (nonreserved)
ENGINE
ENGINES
ENGINE_ATTRIBUTE; added in 8.0.21 (nonreserved)
ENUM
ERROR
ERRORS
ESCAPE
ESCAPED (R)
EVENT
EVENTS
EVERY
EXCEPT (R)
EXCHANGE
EXCLUDE; added in 8.0.2 (nonreserved)
EXECUTE
EXISTS (R)
EXIT (R)
EXPANSION
EXPIRE
EXPLAIN (R)
EXPORT
EXTENDED
EXTENT_SIZE
FACTOR; added in 8.0.27 (nonreserved)
FAILED_LOGIN_ATTEMPTS; added in 8.0.19 (nonreserved)
FALSE (R)
FAST
FAULTS
FETCH (R)
FIELDS
FILE
FILE_BLOCK_SIZE
FILTER
FINISH; added in 8.0.27 (nonreserved)
FIRST
FIRST_VALUE (R); added in 8.0.2 (reserved)
FIXED
FLOAT (R)
FLOAT4 (R)
FLOAT8 (R)
FLUSH
FOLLOWING; added in 8.0.2 (nonreserved)
FOLLOWS
FOR (R)
FORCE (R)
FOREIGN (R)
FORMAT
FOUND
FROM (R)
FULL
FULLTEXT (R)
FUNCTION (R); became reserved in 8.0.1
GENERAL
GENERATED (R)
GEOMCOLLECTION; added in 8.0.11 (nonreserved)
GEOMETRY
GEOMETRYCOLLECTION
GET (R)
GET_FORMAT
GET_MASTER_PUBLIC_KEY; added in 8.0.4 (reserved); became nonreserved in 8.0.11
GET_SOURCE_PUBLIC_KEY; added in 8.0.23 (nonreserved)
GLOBAL
GRANT (R)
GRANTS
GROUP (R)
GROUPING (R); added in 8.0.1 (reserved)
GROUPS (R); added in 8.0.2 (reserved)
GROUP_REPLICATION
GTID_ONLY; added in 8.0.27 (nonreserved)
HANDLER
HASH
HAVING (R)
HELP
HIGH_PRIORITY (R)
HISTOGRAM; added in 8.0.2 (nonreserved)
HISTORY; added in 8.0.3 (nonreserved)
HOST
HOSTS
HOUR
HOUR_MICROSECOND (R)
HOUR_MINUTE (R)
HOUR_SECOND (R)
IDENTIFIED
IF (R)
IGNORE (R)
IGNORE_SERVER_IDS
IMPORT
IN (R)
INACTIVE; added in 8.0.14 (nonreserved)
INDEX (R)
INDEXES
INFILE (R)
INITIAL; added in 8.0.27 (nonreserved)
INITIAL_SIZE
INITIATE; added in 8.0.27 (nonreserved)
INNER (R)
INOUT (R)
INSENSITIVE (R)
INSERT (R)
INSERT_METHOD
INSTALL
INSTANCE
INT (R)
INT1 (R)
INT2 (R)
INT3 (R)
INT4 (R)
INT8 (R)
INTEGER (R)
INTERVAL (R)
INTO (R)
INVISIBLE
INVOKER
IO
IO_AFTER_GTIDS (R)
IO_BEFORE_GTIDS (R)
IO_THREAD
IPC
IS (R)
ISOLATION
ISSUER
ITERATE (R)
JOIN (R)
JSON
JSON_TABLE (R); added in 8.0.4 (reserved)
JSON_VALUE; added in 8.0.21 (nonreserved)
KEY (R)
KEYRING; added in 8.0.24 (nonreserved)
KEYS (R)
KEY_BLOCK_SIZE
KILL (R)
LAG (R); added in 8.0.2 (reserved)
LANGUAGE
LAST
LAST_VALUE (R); added in 8.0.2 (reserved)
LATERAL (R); added in 8.0.14 (reserved)
LEAD (R); added in 8.0.2 (reserved)
LEADING (R)
LEAVE (R)
LEAVES
LEFT (R)
LESS
LEVEL
LIKE (R)
LIMIT (R)
LINEAR (R)
LINES (R)
LINESTRING
LIST
LOAD (R)
LOCAL
LOCALTIME (R)
LOCALTIMESTAMP (R)
LOCK (R)
LOCKED; added in 8.0.1 (nonreserved)
LOCKS
LOGFILE
LOGS
LONG (R)
LONGBLOB (R)
LONGTEXT (R)
LOOP (R)
LOW_PRIORITY (R)
MASTER
MASTER_AUTO_POSITION
MASTER_BIND (R)
MASTER_COMPRESSION_ALGORITHMS; added in 8.0.18 (nonreserved)
MASTER_CONNECT_RETRY
MASTER_DELAY
MASTER_HEARTBEAT_PERIOD
MASTER_HOST
MASTER_LOG_FILE
MASTER_LOG_POS
MASTER_PASSWORD
MASTER_PORT
MASTER_PUBLIC_KEY_PATH; added in 8.0.4 (nonreserved)
MASTER_RETRY_COUNT
MASTER_SERVER_ID; removed in 8.0.23
MASTER_SSL
MASTER_SSL_CA
MASTER_SSL_CAPATH
MASTER_SSL_CERT
MASTER_SSL_CIPHER
MASTER_SSL_CRL
MASTER_SSL_CRLPATH
MASTER_SSL_KEY
MASTER_SSL_VERIFY_SERVER_CERT (R)
MASTER_TLS_CIPHERSUITES; added in 8.0.19 (nonreserved)
MASTER_TLS_VERSION
MASTER_USER
MASTER_ZSTD_COMPRESSION_LEVEL; added in 8.0.18 (nonreserved)
MATCH (R)
MAXVALUE (R)
MAX_CONNECTIONS_PER_HOUR
MAX_QUERIES_PER_HOUR
MAX_ROWS
MAX_SIZE
MAX_UPDATES_PER_HOUR
MAX_USER_CONNECTIONS
MEDIUM
MEDIUMBLOB (R)
MEDIUMINT (R)
MEDIUMTEXT (R)
MEMBER; added in 8.0.17 (reserved); became nonreserved in 8.0.19
MEMORY
MERGE
MESSAGE_TEXT
MICROSECOND
MIDDLEINT (R)
MIGRATE
MINUTE
MINUTE_MICROSECOND (R)
MINUTE_SECOND (R)
MIN_ROWS
MOD (R)
MODE
MODIFIES (R)
MODIFY
MONTH
MULTILINESTRING
MULTIPOINT
MULTIPOLYGON
MUTEX
MYSQL_ERRNO
NAME
NAMES
NATIONAL
NATURAL (R)
NCHAR
NDB
NDBCLUSTER
NESTED; added in 8.0.4 (nonreserved)
NETWORK_NAMESPACE; added in 8.0.16 (nonreserved)
NEVER
NEW
NEXT
NO
NODEGROUP
NONE
NOT (R)
NOWAIT; added in 8.0.1 (nonreserved)
NO_WAIT
NO_WRITE_TO_BINLOG (R)
NTH_VALUE (R); added in 8.0.2 (reserved)
NTILE (R); added in 8.0.2 (reserved)
NULL (R)
NULLS; added in 8.0.2 (nonreserved)
NUMBER
NUMERIC (R)
NVARCHAR
OF (R); added in 8.0.1 (reserved)
OFF; added in 8.0.20 (nonreserved)
OFFSET
OJ; added in 8.0.16 (nonreserved)
OLD; added in 8.0.14 (nonreserved)
ON (R)
ONE
ONLY
OPEN
OPTIMIZE (R)
OPTIMIZER_COSTS (R)
OPTION (R)
OPTIONAL; added in 8.0.13 (nonreserved)
OPTIONALLY (R)
OPTIONS
OR (R)
ORDER (R)
ORDINALITY; added in 8.0.4 (nonreserved)
ORGANIZATION; added in 8.0.4 (nonreserved)
OTHERS; added in 8.0.2 (nonreserved)
OUT (R)
OUTER (R)
OUTFILE (R)
OVER (R); added in 8.0.2 (reserved)
OWNER
PACK_KEYS
PAGE
PARSER
PARTIAL
PARTITION (R)
PARTITIONING
PARTITIONS
PASSWORD
PASSWORD_LOCK_TIME; added in 8.0.19 (nonreserved)
PATH; added in 8.0.4 (nonreserved)
PERCENT_RANK (R); added in 8.0.2 (reserved)
PERSIST; became nonreserved in 8.0.16
PERSIST_ONLY; added in 8.0.2 (reserved); became nonreserved in 8.0.16
PHASE
PLUGIN
PLUGINS
PLUGIN_DIR
POINT
POLYGON
PORT
PRECEDES
PRECEDING; added in 8.0.2 (nonreserved)
PRECISION (R)
PREPARE
PRESERVE
PREV
PRIMARY (R)
PRIVILEGES
PRIVILEGE_CHECKS_USER; added in 8.0.18 (nonreserved)
PROCEDURE (R)
PROCESS; added in 8.0.11 (nonreserved)
PROCESSLIST
PROFILE
PROFILES
PROXY
PURGE (R)
QUARTER
QUERY
QUICK
RANDOM; added in 8.0.18 (nonreserved)
RANGE (R)
RANK (R); added in 8.0.2 (reserved)
READ (R)
READS (R)
READ_ONLY
READ_WRITE (R)
REAL (R)
REBUILD
RECOVER
RECURSIVE (R); added in 8.0.1 (reserved)
REDOFILE; removed in 8.0.3
REDO_BUFFER_SIZE
REDUNDANT
REFERENCE; added in 8.0.4 (nonreserved)
REFERENCES (R)
REGEXP (R)
REGISTRATION; added in 8.0.27 (nonreserved)
RELAY
RELAYLOG
RELAY_LOG_FILE
RELAY_LOG_POS
RELAY_THREAD
RELEASE (R)
RELOAD
REMOTE; added in 8.0.3 (nonreserved); removed in 8.0.14
REMOVE
RENAME (R)
REORGANIZE
REPAIR
REPEAT (R)
REPEATABLE
REPLACE (R)
REPLICA; added in 8.0.22 (nonreserved)
REPLICAS; added in 8.0.22 (nonreserved)
REPLICATE_DO_DB
REPLICATE_DO_TABLE
REPLICATE_IGNORE_DB
REPLICATE_IGNORE_TABLE
REPLICATE_REWRITE_DB
REPLICATE_WILD_DO_TABLE
REPLICATE_WILD_IGNORE_TABLE
REPLICATION
REQUIRE (R)
REQUIRE_ROW_FORMAT; added in 8.0.19 (nonreserved)
RESET
RESIGNAL (R)
RESOURCE; added in 8.0.3 (nonreserved)
RESPECT; added in 8.0.2 (nonreserved)
RESTART; added in 8.0.4 (nonreserved)
RESTORE
RESTRICT (R)
RESUME
RETAIN; added in 8.0.14 (nonreserved)
RETURN (R)
RETURNED_SQLSTATE
RETURNING; added in 8.0.21 (nonreserved)
RETURNS
REUSE; added in 8.0.3 (nonreserved)
REVERSE
REVOKE (R)
RIGHT (R)
RLIKE (R)
ROLE; became nonreserved in 8.0.1
ROLLBACK
ROLLUP
ROTATE
ROUTINE
ROW (R); became reserved in 8.0.2
ROWS (R); became reserved in 8.0.2
ROW_COUNT
ROW_FORMAT
ROW_NUMBER (R); added in 8.0.2 (reserved)
RTREE
SAVEPOINT
SCHEDULE
SCHEMA (R)
SCHEMAS (R)
SCHEMA_NAME
SECOND
SECONDARY; added in 8.0.16 (nonreserved)
SECONDARY_ENGINE; added in 8.0.13 (nonreserved)
SECONDARY_ENGINE_ATTRIBUTE; added in 8.0.21 (nonreserved)
SECONDARY_LOAD; added in 8.0.13 (nonreserved)
SECONDARY_UNLOAD; added in 8.0.13 (nonreserved)
SECOND_MICROSECOND (R)
SECURITY
SELECT (R)
SENSITIVE (R)
SEPARATOR (R)
SERIAL
SERIALIZABLE
SERVER
SESSION
SET (R)
SHARE
SHOW (R)
SHUTDOWN
SIGNAL (R)
SIGNED
SIMPLE
SKIP; added in 8.0.1 (nonreserved)
SLAVE
SLOW
SMALLINT (R)
SNAPSHOT
SOCKET
SOME
SONAME
SOUNDS
SOURCE
SOURCE_AUTO_POSITION; added in 8.0.23 (nonreserved)
SOURCE_BIND; added in 8.0.23 (nonreserved)
SOURCE_COMPRESSION_ALGORITHMS; added in 8.0.23 (nonreserved)
SOURCE_CONNECT_RETRY; added in 8.0.23 (nonreserved)
SOURCE_DELAY; added in 8.0.23 (nonreserved)
SOURCE_HEARTBEAT_PERIOD; added in 8.0.23 (nonreserved)
SOURCE_HOST; added in 8.0.23 (nonreserved)
SOURCE_LOG_FILE; added in 8.0.23 (nonreserved)
SOURCE_LOG_POS; added in 8.0.23 (nonreserved)
SOURCE_PASSWORD; added in 8.0.23 (nonreserved)
SOURCE_PORT; added in 8.0.23 (nonreserved)
SOURCE_PUBLIC_KEY_PATH; added in 8.0.23 (nonreserved)
SOURCE_RETRY_COUNT; added in 8.0.23 (nonreserved)
SOURCE_SSL; added in 8.0.23 (nonreserved)
SOURCE_SSL_CA; added in 8.0.23 (nonreserved)
SOURCE_SSL_CAPATH; added in 8.0.23 (nonreserved)
SOURCE_SSL_CERT; added in 8.0.23 (nonreserved)
SOURCE_SSL_CIPHER; added in 8.0.23 (nonreserved)
SOURCE_SSL_CRL; added in 8.0.23 (nonreserved)
SOURCE_SSL_CRLPATH; added in 8.0.23 (nonreserved)
SOURCE_SSL_KEY; added in 8.0.23 (nonreserved)
SOURCE_SSL_VERIFY_SERVER_CERT; added in 8.0.23 (nonreserved)
SOURCE_TLS_CIPHERSUITES; added in 8.0.23 (nonreserved)
SOURCE_TLS_VERSION; added in 8.0.23 (nonreserved)
SOURCE_USER; added in 8.0.23 (nonreserved)
SOURCE_ZSTD_COMPRESSION_LEVEL; added in 8.0.23 (nonreserved)
SPATIAL (R)
SPECIFIC (R)
SQL (R)
SQLEXCEPTION (R)
SQLSTATE (R)
SQLWARNING (R)
SQL_AFTER_GTIDS
SQL_AFTER_MTS_GAPS
SQL_BEFORE_GTIDS
SQL_BIG_RESULT (R)
SQL_BUFFER_RESULT
SQL_CACHE; removed in 8.0.3
SQL_CALC_FOUND_ROWS (R)
SQL_NO_CACHE
SQL_SMALL_RESULT (R)
SQL_THREAD
SQL_TSI_DAY
SQL_TSI_HOUR
SQL_TSI_MINUTE
SQL_TSI_MONTH
SQL_TSI_QUARTER
SQL_TSI_SECOND
SQL_TSI_WEEK
SQL_TSI_YEAR
SRID; added in 8.0.3 (nonreserved)
SSL (R)
STACKED
START
STARTING (R)
STARTS
STATS_AUTO_RECALC
STATS_PERSISTENT
STATS_SAMPLE_PAGES
STATUS
STOP
STORAGE
STORED (R)
STRAIGHT_JOIN (R)
STREAM; added in 8.0.20 (nonreserved)
STRING
SUBCLASS_ORIGIN
SUBJECT
SUBPARTITION
SUBPARTITIONS
SUPER
SUSPEND
SWAPS
SWITCHES
SYSTEM (R); added in 8.0.3 (reserved)
TABLE (R)
TABLES
TABLESPACE
TABLE_CHECKSUM
TABLE_NAME
TEMPORARY
TEMPTABLE
TERMINATED (R)
TEXT
THAN
THEN (R)
THREAD_PRIORITY; added in 8.0.3 (nonreserved)
TIES; added in 8.0.2 (nonreserved)
TIME
TIMESTAMP
TIMESTAMPADD
TIMESTAMPDIFF
TINYBLOB (R)
TINYINT (R)
TINYTEXT (R)
TLS; added in 8.0.21 (nonreserved)
TO (R)
TRAILING (R)
TRANSACTION
TRIGGER (R)
TRIGGERS
TRUE (R)
TRUNCATE
TYPE
TYPES
UNBOUNDED; added in 8.0.2 (nonreserved)
UNCOMMITTED
UNDEFINED
UNDO (R)
UNDOFILE
UNDO_BUFFER_SIZE
UNICODE
UNINSTALL
UNION (R)
UNIQUE (R)
UNKNOWN
UNLOCK (R)
UNREGISTER; added in 8.0.27 (nonreserved)
UNSIGNED (R)
UNTIL
UPDATE (R)
UPGRADE
USAGE (R)
USE (R)
USER
USER_RESOURCES
USE_FRM
USING (R)
UTC_DATE (R)
UTC_TIME (R)
UTC_TIMESTAMP (R)
VALIDATION
VALUE
VALUES (R)
VARBINARY (R)
VARCHAR (R)
VARCHARACTER (R)
VARIABLES
VARYING (R)
VCPU; added in 8.0.3 (nonreserved)
VIEW
VIRTUAL (R)
VISIBLE
WAIT
WARNINGS
WEEK
WEIGHT_STRING
WHEN (R)
WHERE (R)
WHILE (R)
WINDOW (R); added in 8.0.2 (reserved)
WITH (R)
WITHOUT
WORK
WRAPPER
WRITE (R)
X509
XA
XID
XML
XOR (R)
YEAR
YEAR_MONTH (R)
ZEROFILL (R)
ZONE; added in 8.0.22 (nonreserved)

View file

@ -30,7 +30,7 @@ testTokenization('mysql', [
{ startIndex: 7, type: 'white.sql' },
{ startIndex: 8, type: 'identifier.sql' },
{ startIndex: 9, type: 'white.sql' },
{ startIndex: 10, type: 'keyword.sql' }
{ startIndex: 10, type: 'identifier.sql' }
]
}
],

View file

@ -42,233 +42,109 @@ export const language = <languages.IMonarchLanguage>{
],
keywords: [
// This list is generated using `keywords.js`
'ACCESSIBLE',
'ACCOUNT',
'ACTION',
'ADD',
'AFTER',
'AGAINST',
'AGGREGATE',
'ALGORITHM',
'ALL',
'ALTER',
'ALWAYS',
'ANALYSE',
'ANALYZE',
'AND',
'ANY',
'AS',
'ASC',
'ASCII',
'ASENSITIVE',
'AT',
'AUTOEXTEND_SIZE',
'AUTO_INCREMENT',
'AVG',
'AVG_ROW_LENGTH',
'BACKUP',
'BEFORE',
'BEGIN',
'BETWEEN',
'BIGINT',
'BINARY',
'BINLOG',
'BIT',
'BLOB',
'BLOCK',
'BOOL',
'BOOLEAN',
'BOTH',
'BTREE',
'BY',
'BYTE',
'CACHE',
'CALL',
'CASCADE',
'CASCADED',
'CASE',
'CATALOG_NAME',
'CHAIN',
'CHANGE',
'CHANGED',
'CHANNEL',
'CHAR',
'CHARACTER',
'CHARSET',
'CHECK',
'CHECKSUM',
'CIPHER',
'CLASS_ORIGIN',
'CLIENT',
'CLOSE',
'COALESCE',
'CODE',
'COLLATE',
'COLLATION',
'COLUMN',
'COLUMNS',
'COLUMN_FORMAT',
'COLUMN_NAME',
'COMMENT',
'COMMIT',
'COMMITTED',
'COMPACT',
'COMPLETION',
'COMPRESSED',
'COMPRESSION',
'CONCURRENT',
'CONDITION',
'CONNECTION',
'CONSISTENT',
'CONSTRAINT',
'CONSTRAINT_CATALOG',
'CONSTRAINT_NAME',
'CONSTRAINT_SCHEMA',
'CONTAINS',
'CONTEXT',
'CONTINUE',
'CONVERT',
'CPU',
'CREATE',
'CROSS',
'CUBE',
'CURRENT',
'CUME_DIST',
'CURRENT_DATE',
'CURRENT_TIME',
'CURRENT_TIMESTAMP',
'CURRENT_USER',
'CURSOR',
'CURSOR_NAME',
'DATA',
'DATABASE',
'DATABASES',
'DATAFILE',
'DATE',
'DATETIME',
'DAY',
'DAY_HOUR',
'DAY_MICROSECOND',
'DAY_MINUTE',
'DAY_SECOND',
'DEALLOCATE',
'DEC',
'DECIMAL',
'DECLARE',
'DEFAULT',
'DEFAULT_AUTH',
'DEFINER',
'DELAYED',
'DELAY_KEY_WRITE',
'DELETE',
'DENSE_RANK',
'DESC',
'DESCRIBE',
'DES_KEY_FILE',
'DETERMINISTIC',
'DIAGNOSTICS',
'DIRECTORY',
'DISABLE',
'DISCARD',
'DISK',
'DISTINCT',
'DISTINCTROW',
'DIV',
'DO',
'DOUBLE',
'DROP',
'DUAL',
'DUMPFILE',
'DUPLICATE',
'DYNAMIC',
'EACH',
'ELSE',
'ELSEIF',
'ENABLE',
'EMPTY',
'ENCLOSED',
'ENCRYPTION',
'END',
'ENDS',
'ENGINE',
'ENGINES',
'ENUM',
'ERROR',
'ERRORS',
'ESCAPE',
'ESCAPED',
'EVENT',
'EVENTS',
'EVERY',
'EXCHANGE',
'EXECUTE',
'EXCEPT',
'EXISTS',
'EXIT',
'EXPANSION',
'EXPIRE',
'EXPLAIN',
'EXPORT',
'EXTENDED',
'EXTENT_SIZE',
'FALSE',
'FAST',
'FAULTS',
'FETCH',
'FIELDS',
'FILE',
'FILE_BLOCK_SIZE',
'FILTER',
'FIRST',
'FIXED',
'FIRST_VALUE',
'FLOAT',
'FLOAT4',
'FLOAT8',
'FLUSH',
'FOLLOWS',
'FOR',
'FORCE',
'FOREIGN',
'FORMAT',
'FOUND',
'FROM',
'FULL',
'FULLTEXT',
'FUNCTION',
'GENERAL',
'GENERATED',
'GEOMETRY',
'GEOMETRYCOLLECTION',
'GET',
'GET_FORMAT',
'GLOBAL',
'GRANT',
'GRANTS',
'GROUP',
'GROUP_REPLICATION',
'HANDLER',
'HASH',
'GROUPING',
'GROUPS',
'HAVING',
'HELP',
'HIGH_PRIORITY',
'HOST',
'HOSTS',
'HOUR',
'HOUR_MICROSECOND',
'HOUR_MINUTE',
'HOUR_SECOND',
'IDENTIFIED',
'IF',
'IGNORE',
'IGNORE_SERVER_IDS',
'IMPORT',
'IN',
'INDEX',
'INDEXES',
'INFILE',
'INITIAL_SIZE',
'INNER',
'INOUT',
'INSENSITIVE',
'INSERT',
'INSERT_METHOD',
'INSTALL',
'INSTANCE',
'INT',
'INT1',
'INT2',
@ -278,386 +154,154 @@ export const language = <languages.IMonarchLanguage>{
'INTEGER',
'INTERVAL',
'INTO',
'INVOKER',
'IO',
'IO_AFTER_GTIDS',
'IO_BEFORE_GTIDS',
'IO_THREAD',
'IPC',
'ISOLATION',
'ISSUER',
'IS',
'ITERATE',
'JOIN',
'JSON',
'JSON_TABLE',
'KEY',
'KEYS',
'KEY_BLOCK_SIZE',
'KILL',
'LANGUAGE',
'LAST',
'LAG',
'LAST_VALUE',
'LATERAL',
'LEAD',
'LEADING',
'LEAVE',
'LEAVES',
'LEFT',
'LESS',
'LEVEL',
'LIKE',
'LIMIT',
'LINEAR',
'LINES',
'LINESTRING',
'LIST',
'LOAD',
'LOCAL',
'LOCALTIME',
'LOCALTIMESTAMP',
'LOCK',
'LOCKS',
'LOGFILE',
'LOGS',
'LONG',
'LONGBLOB',
'LONGTEXT',
'LOOP',
'LOW_PRIORITY',
'MASTER',
'MASTER_AUTO_POSITION',
'MASTER_BIND',
'MASTER_CONNECT_RETRY',
'MASTER_DELAY',
'MASTER_HEARTBEAT_PERIOD',
'MASTER_HOST',
'MASTER_LOG_FILE',
'MASTER_LOG_POS',
'MASTER_PASSWORD',
'MASTER_PORT',
'MASTER_RETRY_COUNT',
'MASTER_SERVER_ID',
'MASTER_SSL',
'MASTER_SSL_CA',
'MASTER_SSL_CAPATH',
'MASTER_SSL_CERT',
'MASTER_SSL_CIPHER',
'MASTER_SSL_CRL',
'MASTER_SSL_CRLPATH',
'MASTER_SSL_KEY',
'MASTER_SSL_VERIFY_SERVER_CERT',
'MASTER_TLS_VERSION',
'MASTER_USER',
'MATCH',
'MAXVALUE',
'MAX_CONNECTIONS_PER_HOUR',
'MAX_QUERIES_PER_HOUR',
'MAX_ROWS',
'MAX_SIZE',
'MAX_STATEMENT_TIME',
'MAX_UPDATES_PER_HOUR',
'MAX_USER_CONNECTIONS',
'MEDIUM',
'MEDIUMBLOB',
'MEDIUMINT',
'MEDIUMTEXT',
'MEMORY',
'MERGE',
'MESSAGE_TEXT',
'MICROSECOND',
'MIDDLEINT',
'MIGRATE',
'MINUTE',
'MINUTE_MICROSECOND',
'MINUTE_SECOND',
'MIN_ROWS',
'MOD',
'MODE',
'MODIFIES',
'MODIFY',
'MONTH',
'MULTILINESTRING',
'MULTIPOINT',
'MULTIPOLYGON',
'MUTEX',
'MYSQL_ERRNO',
'NAME',
'NAMES',
'NATIONAL',
'NATURAL',
'NCHAR',
'NDB',
'NDBCLUSTER',
'NEVER',
'NEW',
'NEXT',
'NO',
'NODEGROUP',
'NONBLOCKING',
'NONE',
'NO_WAIT',
'NOT',
'NO_WRITE_TO_BINLOG',
'NUMBER',
'NTH_VALUE',
'NTILE',
'NULL',
'NUMERIC',
'NVARCHAR',
'OFFSET',
'OLD_PASSWORD',
'OF',
'ON',
'ONE',
'ONLY',
'OPEN',
'OPTIMIZE',
'OPTIMIZER_COSTS',
'OPTION',
'OPTIONALLY',
'OPTIONS',
'OR',
'ORDER',
'OUT',
'OUTER',
'OUTFILE',
'OWNER',
'PACK_KEYS',
'PAGE',
'PARSER',
'PARSE_GCOL_EXPR',
'PARTIAL',
'OVER',
'PARTITION',
'PARTITIONING',
'PARTITIONS',
'PASSWORD',
'PHASE',
'PLUGIN',
'PLUGINS',
'PLUGIN_DIR',
'POINT',
'POLYGON',
'PORT',
'PRECEDES',
'PERCENT_RANK',
'PRECISION',
'PREPARE',
'PRESERVE',
'PREV',
'PRIMARY',
'PRIVILEGES',
'PROCEDURE',
'PROCESSLIST',
'PROFILE',
'PROFILES',
'PROXY',
'PURGE',
'QUARTER',
'QUERY',
'QUICK',
'RANGE',
'RANK',
'READ',
'READS',
'READ_ONLY',
'READ_WRITE',
'REAL',
'REBUILD',
'RECOVER',
'REDOFILE',
'REDO_BUFFER_SIZE',
'REDUNDANT',
'RECURSIVE',
'REFERENCES',
'REGEXP',
'RELAY',
'RELAYLOG',
'RELAY_LOG_FILE',
'RELAY_LOG_POS',
'RELAY_THREAD',
'RELEASE',
'RELOAD',
'REMOVE',
'RENAME',
'REORGANIZE',
'REPAIR',
'REPEAT',
'REPEATABLE',
'REPLACE',
'REPLICATE_DO_DB',
'REPLICATE_DO_TABLE',
'REPLICATE_IGNORE_DB',
'REPLICATE_IGNORE_TABLE',
'REPLICATE_REWRITE_DB',
'REPLICATE_WILD_DO_TABLE',
'REPLICATE_WILD_IGNORE_TABLE',
'REPLICATION',
'REQUIRE',
'RESET',
'RESIGNAL',
'RESTORE',
'RESTRICT',
'RESUME',
'RETURN',
'RETURNED_SQLSTATE',
'RETURNS',
'REVERSE',
'REVOKE',
'RIGHT',
'RLIKE',
'ROLLBACK',
'ROLLUP',
'ROTATE',
'ROUTINE',
'ROW',
'ROWS',
'ROW_COUNT',
'ROW_FORMAT',
'RTREE',
'SAVEPOINT',
'SCHEDULE',
'ROW_NUMBER',
'SCHEMA',
'SCHEMAS',
'SCHEMA_NAME',
'SECOND',
'SECOND_MICROSECOND',
'SECURITY',
'SELECT',
'SENSITIVE',
'SEPARATOR',
'SERIAL',
'SERIALIZABLE',
'SERVER',
'SESSION',
'SET',
'SHARE',
'SHOW',
'SHUTDOWN',
'SIGNAL',
'SIGNED',
'SIMPLE',
'SLAVE',
'SLOW',
'SMALLINT',
'SNAPSHOT',
'SOCKET',
'SOME',
'SONAME',
'SOUNDS',
'SOURCE',
'SPATIAL',
'SPECIFIC',
'SQL',
'SQLEXCEPTION',
'SQLSTATE',
'SQLWARNING',
'SQL_AFTER_GTIDS',
'SQL_AFTER_MTS_GAPS',
'SQL_BEFORE_GTIDS',
'SQL_BIG_RESULT',
'SQL_BUFFER_RESULT',
'SQL_CACHE',
'SQL_CALC_FOUND_ROWS',
'SQL_NO_CACHE',
'SQL_SMALL_RESULT',
'SQL_THREAD',
'SQL_TSI_DAY',
'SQL_TSI_HOUR',
'SQL_TSI_MINUTE',
'SQL_TSI_MONTH',
'SQL_TSI_QUARTER',
'SQL_TSI_SECOND',
'SQL_TSI_WEEK',
'SQL_TSI_YEAR',
'SSL',
'STACKED',
'START',
'STARTING',
'STARTS',
'STATS_AUTO_RECALC',
'STATS_PERSISTENT',
'STATS_SAMPLE_PAGES',
'STATUS',
'STOP',
'STORAGE',
'STORED',
'STRAIGHT_JOIN',
'STRING',
'SUBCLASS_ORIGIN',
'SUBJECT',
'SUBPARTITION',
'SUBPARTITIONS',
'SUPER',
'SUSPEND',
'SWAPS',
'SWITCHES',
'SYSTEM',
'TABLE',
'TABLES',
'TABLESPACE',
'TABLE_CHECKSUM',
'TABLE_NAME',
'TEMPORARY',
'TEMPTABLE',
'TERMINATED',
'TEXT',
'THAN',
'THEN',
'TIME',
'TIMESTAMP',
'TIMESTAMPADD',
'TIMESTAMPDIFF',
'TINYBLOB',
'TINYINT',
'TINYTEXT',
'TO',
'TRAILING',
'TRANSACTION',
'TRIGGER',
'TRIGGERS',
'TRUE',
'TRUNCATE',
'TYPE',
'TYPES',
'UNCOMMITTED',
'UNDEFINED',
'UNDO',
'UNDOFILE',
'UNDO_BUFFER_SIZE',
'UNICODE',
'UNINSTALL',
'UNION',
'UNIQUE',
'UNKNOWN',
'UNLOCK',
'UNSIGNED',
'UNTIL',
'UPDATE',
'UPGRADE',
'USAGE',
'USE',
'USER',
'USER_RESOURCES',
'USE_FRM',
'USING',
'UTC_DATE',
'UTC_TIME',
'UTC_TIMESTAMP',
'VALIDATION',
'VALUE',
'VALUES',
'VARBINARY',
'VARCHAR',
'VARCHARACTER',
'VARIABLES',
'VARYING',
'VIEW',
'VIRTUAL',
'WAIT',
'WARNINGS',
'WEEK',
'WEIGHT_STRING',
'WHEN',
'WHERE',
'WHILE',
'WINDOW',
'WITH',
'WITHOUT',
'WORK',
'WRAPPER',
'WRITE',
'X509',
'XA',
'XID',
'XML',
'XOR',
'YEAR',
'YEAR_MONTH',
'ZEROFILL'
],
@ -1124,10 +768,10 @@ export const language = <languages.IMonarchLanguage>{
/[\w@]+/,
{
cases: {
'@keywords': 'keyword',
'@operators': 'operator',
'@builtinVariables': 'predefined',
'@builtinFunctions': 'predefined',
'@keywords': 'keyword',
'@default': 'identifier'
}
}

30
src/pgsql/keywords.js Normal file
View file

@ -0,0 +1,30 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
const fs = require('fs');
const path = require('path');
const keywords = getPostgreSQLKeywords();
keywords.sort();
console.log(`'${keywords.join("',\n'")}'`);
function getPostgreSQLKeywords() {
// https://www.postgresql.org/docs/current/sql-keywords-appendix.html
const lines = fs
.readFileSync(path.join(__dirname, 'keywords.postgresql.txt'))
.toString()
.split(/\r\n|\r|\n/);
const tokens = [];
for (let line of lines) {
const pieces = line.split(/\t/);
if (/non-reserved/.test(pieces[1])) {
continue;
}
if (/reserved/.test(pieces[1])) {
tokens.push(pieces[0]);
}
}
return tokens;
}

View file

@ -0,0 +1,827 @@
Key Word PostgreSQL SQL:2016 SQL:2011 SQL-92
A non-reserved non-reserved
ABORT non-reserved
ABS reserved reserved
ABSENT non-reserved non-reserved
ABSOLUTE non-reserved non-reserved non-reserved reserved
ACCESS non-reserved
ACCORDING non-reserved non-reserved
ACOS reserved
ACTION non-reserved non-reserved non-reserved reserved
ADA non-reserved non-reserved non-reserved
ADD non-reserved non-reserved non-reserved reserved
ADMIN non-reserved non-reserved non-reserved
AFTER non-reserved non-reserved non-reserved
AGGREGATE non-reserved
ALL reserved reserved reserved reserved
ALLOCATE reserved reserved reserved
ALSO non-reserved
ALTER non-reserved reserved reserved reserved
ALWAYS non-reserved non-reserved non-reserved
ANALYSE reserved
ANALYZE reserved
AND reserved reserved reserved reserved
ANY reserved reserved reserved reserved
ARE reserved reserved reserved
ARRAY reserved, requires AS reserved reserved
ARRAY_AGG reserved reserved
ARRAY_MAX_CARDINALITY reserved reserved
AS reserved, requires AS reserved reserved reserved
ASC reserved non-reserved non-reserved reserved
ASENSITIVE non-reserved reserved reserved
ASIN reserved
ASSERTION non-reserved non-reserved non-reserved reserved
ASSIGNMENT non-reserved non-reserved non-reserved
ASYMMETRIC reserved reserved reserved
AT non-reserved reserved reserved reserved
ATAN reserved
ATOMIC non-reserved reserved reserved
ATTACH non-reserved
ATTRIBUTE non-reserved non-reserved non-reserved
ATTRIBUTES non-reserved non-reserved
AUTHORIZATION reserved (can be function or type) reserved reserved reserved
AVG reserved reserved reserved
BACKWARD non-reserved
BASE64 non-reserved non-reserved
BEFORE non-reserved non-reserved non-reserved
BEGIN non-reserved reserved reserved reserved
BEGIN_FRAME reserved reserved
BEGIN_PARTITION reserved reserved
BERNOULLI non-reserved non-reserved
BETWEEN non-reserved (cannot be function or type) reserved reserved reserved
BIGINT non-reserved (cannot be function or type) reserved reserved
BINARY reserved (can be function or type) reserved reserved
BIT non-reserved (cannot be function or type) reserved
BIT_LENGTH reserved
BLOB reserved reserved
BLOCKED non-reserved non-reserved
BOM non-reserved non-reserved
BOOLEAN non-reserved (cannot be function or type) reserved reserved
BOTH reserved reserved reserved reserved
BREADTH non-reserved non-reserved non-reserved
BY non-reserved reserved reserved reserved
C non-reserved non-reserved non-reserved
CACHE non-reserved
CALL non-reserved reserved reserved
CALLED non-reserved reserved reserved
CARDINALITY reserved reserved
CASCADE non-reserved non-reserved non-reserved reserved
CASCADED non-reserved reserved reserved reserved
CASE reserved reserved reserved reserved
CAST reserved reserved reserved reserved
CATALOG non-reserved non-reserved non-reserved reserved
CATALOG_NAME non-reserved non-reserved non-reserved
CEIL reserved reserved
CEILING reserved reserved
CHAIN non-reserved non-reserved non-reserved
CHAINING non-reserved
CHAR non-reserved (cannot be function or type), requires AS reserved reserved reserved
CHARACTER non-reserved (cannot be function or type), requires AS reserved reserved reserved
CHARACTERISTICS non-reserved non-reserved non-reserved
CHARACTERS non-reserved non-reserved
CHARACTER_LENGTH reserved reserved reserved
CHARACTER_SET_CATALOG non-reserved non-reserved non-reserved
CHARACTER_SET_NAME non-reserved non-reserved non-reserved
CHARACTER_SET_SCHEMA non-reserved non-reserved non-reserved
CHAR_LENGTH reserved reserved reserved
CHECK reserved reserved reserved reserved
CHECKPOINT non-reserved
CLASS non-reserved
CLASSIFIER reserved
CLASS_ORIGIN non-reserved non-reserved non-reserved
CLOB reserved reserved
CLOSE non-reserved reserved reserved reserved
CLUSTER non-reserved
COALESCE non-reserved (cannot be function or type) reserved reserved reserved
COBOL non-reserved non-reserved non-reserved
COLLATE reserved reserved reserved reserved
COLLATION reserved (can be function or type) non-reserved non-reserved reserved
COLLATION_CATALOG non-reserved non-reserved non-reserved
COLLATION_NAME non-reserved non-reserved non-reserved
COLLATION_SCHEMA non-reserved non-reserved non-reserved
COLLECT reserved reserved
COLUMN reserved reserved reserved reserved
COLUMNS non-reserved non-reserved non-reserved
COLUMN_NAME non-reserved non-reserved non-reserved
COMMAND_FUNCTION non-reserved non-reserved non-reserved
COMMAND_FUNCTION_CODE non-reserved non-reserved
COMMENT non-reserved
COMMENTS non-reserved
COMMIT non-reserved reserved reserved reserved
COMMITTED non-reserved non-reserved non-reserved non-reserved
COMPRESSION non-reserved
CONCURRENTLY reserved (can be function or type)
CONDITION reserved reserved
CONDITIONAL non-reserved
CONDITION_NUMBER non-reserved non-reserved non-reserved
CONFIGURATION non-reserved
CONFLICT non-reserved
CONNECT reserved reserved reserved
CONNECTION non-reserved non-reserved non-reserved reserved
CONNECTION_NAME non-reserved non-reserved non-reserved
CONSTRAINT reserved reserved reserved reserved
CONSTRAINTS non-reserved non-reserved non-reserved reserved
CONSTRAINT_CATALOG non-reserved non-reserved non-reserved
CONSTRAINT_NAME non-reserved non-reserved non-reserved
CONSTRAINT_SCHEMA non-reserved non-reserved non-reserved
CONSTRUCTOR non-reserved non-reserved
CONTAINS reserved reserved
CONTENT non-reserved non-reserved non-reserved
CONTINUE non-reserved non-reserved non-reserved reserved
CONTROL non-reserved non-reserved
CONVERSION non-reserved
CONVERT reserved reserved reserved
COPY non-reserved reserved
CORR reserved reserved
CORRESPONDING reserved reserved reserved
COS reserved
COSH reserved
COST non-reserved
COUNT reserved reserved reserved
COVAR_POP reserved reserved
COVAR_SAMP reserved reserved
CREATE reserved, requires AS reserved reserved reserved
CROSS reserved (can be function or type) reserved reserved reserved
CSV non-reserved
CUBE non-reserved reserved reserved
CUME_DIST reserved reserved
CURRENT non-reserved reserved reserved reserved
CURRENT_CATALOG reserved reserved reserved
CURRENT_DATE reserved reserved reserved reserved
CURRENT_DEFAULT_TRANSFORM_GROUP reserved reserved
CURRENT_PATH reserved reserved
CURRENT_ROLE reserved reserved reserved
CURRENT_ROW reserved reserved
CURRENT_SCHEMA reserved (can be function or type) reserved reserved
CURRENT_TIME reserved reserved reserved reserved
CURRENT_TIMESTAMP reserved reserved reserved reserved
CURRENT_TRANSFORM_GROUP_FOR_TYPE reserved reserved
CURRENT_USER reserved reserved reserved reserved
CURSOR non-reserved reserved reserved reserved
CURSOR_NAME non-reserved non-reserved non-reserved
CYCLE non-reserved reserved reserved
DATA non-reserved non-reserved non-reserved non-reserved
DATABASE non-reserved
DATALINK reserved reserved
DATE reserved reserved reserved
DATETIME_INTERVAL_CODE non-reserved non-reserved non-reserved
DATETIME_INTERVAL_PRECISION non-reserved non-reserved non-reserved
DAY non-reserved, requires AS reserved reserved reserved
DB non-reserved non-reserved
DEALLOCATE non-reserved reserved reserved reserved
DEC non-reserved (cannot be function or type) reserved reserved reserved
DECFLOAT reserved
DECIMAL non-reserved (cannot be function or type) reserved reserved reserved
DECLARE non-reserved reserved reserved reserved
DEFAULT reserved reserved reserved reserved
DEFAULTS non-reserved non-reserved non-reserved
DEFERRABLE reserved non-reserved non-reserved reserved
DEFERRED non-reserved non-reserved non-reserved reserved
DEFINE reserved
DEFINED non-reserved non-reserved
DEFINER non-reserved non-reserved non-reserved
DEGREE non-reserved non-reserved
DELETE non-reserved reserved reserved reserved
DELIMITER non-reserved
DELIMITERS non-reserved
DENSE_RANK reserved reserved
DEPENDS non-reserved
DEPTH non-reserved non-reserved non-reserved
DEREF reserved reserved
DERIVED non-reserved non-reserved
DESC reserved non-reserved non-reserved reserved
DESCRIBE reserved reserved reserved
DESCRIPTOR non-reserved non-reserved reserved
DETACH non-reserved
DETERMINISTIC reserved reserved
DIAGNOSTICS non-reserved non-reserved reserved
DICTIONARY non-reserved
DISABLE non-reserved
DISCARD non-reserved
DISCONNECT reserved reserved reserved
DISPATCH non-reserved non-reserved
DISTINCT reserved reserved reserved reserved
DLNEWCOPY reserved reserved
DLPREVIOUSCOPY reserved reserved
DLURLCOMPLETE reserved reserved
DLURLCOMPLETEONLY reserved reserved
DLURLCOMPLETEWRITE reserved reserved
DLURLPATH reserved reserved
DLURLPATHONLY reserved reserved
DLURLPATHWRITE reserved reserved
DLURLSCHEME reserved reserved
DLURLSERVER reserved reserved
DLVALUE reserved reserved
DO reserved
DOCUMENT non-reserved non-reserved non-reserved
DOMAIN non-reserved non-reserved non-reserved reserved
DOUBLE non-reserved reserved reserved reserved
DROP non-reserved reserved reserved reserved
DYNAMIC reserved reserved
DYNAMIC_FUNCTION non-reserved non-reserved non-reserved
DYNAMIC_FUNCTION_CODE non-reserved non-reserved
EACH non-reserved reserved reserved
ELEMENT reserved reserved
ELSE reserved reserved reserved reserved
EMPTY reserved non-reserved
ENABLE non-reserved
ENCODING non-reserved non-reserved non-reserved
ENCRYPTED non-reserved
END reserved reserved reserved reserved
END-EXEC reserved reserved reserved
END_FRAME reserved reserved
END_PARTITION reserved reserved
ENFORCED non-reserved non-reserved
ENUM non-reserved
EQUALS reserved reserved
ERROR non-reserved
ESCAPE non-reserved reserved reserved reserved
EVENT non-reserved
EVERY reserved reserved
EXCEPT reserved, requires AS reserved reserved reserved
EXCEPTION reserved
EXCLUDE non-reserved non-reserved non-reserved
EXCLUDING non-reserved non-reserved non-reserved
EXCLUSIVE non-reserved
EXEC reserved reserved reserved
EXECUTE non-reserved reserved reserved reserved
EXISTS non-reserved (cannot be function or type) reserved reserved reserved
EXP reserved reserved
EXPLAIN non-reserved
EXPRESSION non-reserved non-reserved non-reserved
EXTENSION non-reserved
EXTERNAL non-reserved reserved reserved reserved
EXTRACT non-reserved (cannot be function or type) reserved reserved reserved
FALSE reserved reserved reserved reserved
FAMILY non-reserved
FETCH reserved, requires AS reserved reserved reserved
FILE non-reserved non-reserved
FILTER non-reserved, requires AS reserved reserved
FINAL non-reserved non-reserved
FINALIZE non-reserved
FINISH non-reserved
FIRST non-reserved non-reserved non-reserved reserved
FIRST_VALUE reserved reserved
FLAG non-reserved non-reserved
FLOAT non-reserved (cannot be function or type) reserved reserved reserved
FLOOR reserved reserved
FOLLOWING non-reserved non-reserved non-reserved
FOR reserved, requires AS reserved reserved reserved
FORCE non-reserved
FOREIGN reserved reserved reserved reserved
FORMAT non-reserved
FORTRAN non-reserved non-reserved non-reserved
FORWARD non-reserved
FOUND non-reserved non-reserved reserved
FRAME_ROW reserved reserved
FREE reserved reserved
FREEZE reserved (can be function or type)
FROM reserved, requires AS reserved reserved reserved
FS non-reserved non-reserved
FULFILL non-reserved
FULL reserved (can be function or type) reserved reserved reserved
FUNCTION non-reserved reserved reserved
FUNCTIONS non-reserved
FUSION reserved reserved
G non-reserved non-reserved
GENERAL non-reserved non-reserved
GENERATED non-reserved non-reserved non-reserved
GET reserved reserved reserved
GLOBAL non-reserved reserved reserved reserved
GO non-reserved non-reserved reserved
GOTO non-reserved non-reserved reserved
GRANT reserved, requires AS reserved reserved reserved
GRANTED non-reserved non-reserved non-reserved
GREATEST non-reserved (cannot be function or type)
GROUP reserved, requires AS reserved reserved reserved
GROUPING non-reserved (cannot be function or type) reserved reserved
GROUPS non-reserved reserved reserved
HANDLER non-reserved
HAVING reserved, requires AS reserved reserved reserved
HEADER non-reserved
HEX non-reserved non-reserved
HIERARCHY non-reserved non-reserved
HOLD non-reserved reserved reserved
HOUR non-reserved, requires AS reserved reserved reserved
ID non-reserved non-reserved
IDENTITY non-reserved reserved reserved reserved
IF non-reserved
IGNORE non-reserved non-reserved
ILIKE reserved (can be function or type)
IMMEDIATE non-reserved non-reserved non-reserved reserved
IMMEDIATELY non-reserved non-reserved
IMMUTABLE non-reserved
IMPLEMENTATION non-reserved non-reserved
IMPLICIT non-reserved
IMPORT non-reserved reserved reserved
IN reserved reserved reserved reserved
INCLUDE non-reserved
INCLUDING non-reserved non-reserved non-reserved
INCREMENT non-reserved non-reserved non-reserved
INDENT non-reserved non-reserved
INDEX non-reserved
INDEXES non-reserved
INDICATOR reserved reserved reserved
INHERIT non-reserved
INHERITS non-reserved
INITIAL reserved
INITIALLY reserved non-reserved non-reserved reserved
INLINE non-reserved
INNER reserved (can be function or type) reserved reserved reserved
INOUT non-reserved (cannot be function or type) reserved reserved
INPUT non-reserved non-reserved non-reserved reserved
INSENSITIVE non-reserved reserved reserved reserved
INSERT non-reserved reserved reserved reserved
INSTANCE non-reserved non-reserved
INSTANTIABLE non-reserved non-reserved
INSTEAD non-reserved non-reserved non-reserved
INT non-reserved (cannot be function or type) reserved reserved reserved
INTEGER non-reserved (cannot be function or type) reserved reserved reserved
INTEGRITY non-reserved non-reserved
INTERSECT reserved, requires AS reserved reserved reserved
INTERSECTION reserved reserved
INTERVAL non-reserved (cannot be function or type) reserved reserved reserved
INTO reserved, requires AS reserved reserved reserved
INVOKER non-reserved non-reserved non-reserved
IS reserved (can be function or type) reserved reserved reserved
ISNULL reserved (can be function or type), requires AS
ISOLATION non-reserved non-reserved non-reserved reserved
JOIN reserved (can be function or type) reserved reserved reserved
JSON non-reserved
JSON_ARRAY reserved
JSON_ARRAYAGG reserved
JSON_EXISTS reserved
JSON_OBJECT reserved
JSON_OBJECTAGG reserved
JSON_QUERY reserved
JSON_TABLE reserved
JSON_TABLE_PRIMITIVE reserved
JSON_VALUE reserved
K non-reserved non-reserved
KEEP non-reserved
KEY non-reserved non-reserved non-reserved reserved
KEYS non-reserved
KEY_MEMBER non-reserved non-reserved
KEY_TYPE non-reserved non-reserved
LABEL non-reserved
LAG reserved reserved
LANGUAGE non-reserved reserved reserved reserved
LARGE non-reserved reserved reserved
LAST non-reserved non-reserved non-reserved reserved
LAST_VALUE reserved reserved
LATERAL reserved reserved reserved
LEAD reserved reserved
LEADING reserved reserved reserved reserved
LEAKPROOF non-reserved
LEAST non-reserved (cannot be function or type)
LEFT reserved (can be function or type) reserved reserved reserved
LENGTH non-reserved non-reserved non-reserved
LEVEL non-reserved non-reserved non-reserved reserved
LIBRARY non-reserved non-reserved
LIKE reserved (can be function or type) reserved reserved reserved
LIKE_REGEX reserved reserved
LIMIT reserved, requires AS non-reserved non-reserved
LINK non-reserved non-reserved
LISTAGG reserved
LISTEN non-reserved
LN reserved reserved
LOAD non-reserved
LOCAL non-reserved reserved reserved reserved
LOCALTIME reserved reserved reserved
LOCALTIMESTAMP reserved reserved reserved
LOCATION non-reserved non-reserved non-reserved
LOCATOR non-reserved non-reserved
LOCK non-reserved
LOCKED non-reserved
LOG reserved
LOG10 reserved
LOGGED non-reserved
LOWER reserved reserved reserved
M non-reserved non-reserved
MAP non-reserved non-reserved
MAPPING non-reserved non-reserved non-reserved
MATCH non-reserved reserved reserved reserved
MATCHED non-reserved non-reserved
MATCHES reserved
MATCH_NUMBER reserved
MATCH_RECOGNIZE reserved
MATERIALIZED non-reserved
MAX reserved reserved reserved
MAXVALUE non-reserved non-reserved non-reserved
MEASURES reserved
MEMBER reserved reserved
MERGE reserved reserved
MESSAGE_LENGTH non-reserved non-reserved non-reserved
MESSAGE_OCTET_LENGTH non-reserved non-reserved non-reserved
MESSAGE_TEXT non-reserved non-reserved non-reserved
METHOD non-reserved reserved reserved
MIN reserved reserved reserved
MINUTE non-reserved, requires AS reserved reserved reserved
MINVALUE non-reserved non-reserved non-reserved
MOD reserved reserved
MODE non-reserved
MODIFIES reserved reserved
MODULE reserved reserved reserved
MONTH non-reserved, requires AS reserved reserved reserved
MORE non-reserved non-reserved non-reserved
MOVE non-reserved
MULTISET reserved reserved
MUMPS non-reserved non-reserved non-reserved
NAME non-reserved non-reserved non-reserved non-reserved
NAMES non-reserved non-reserved non-reserved reserved
NAMESPACE non-reserved non-reserved
NATIONAL non-reserved (cannot be function or type) reserved reserved reserved
NATURAL reserved (can be function or type) reserved reserved reserved
NCHAR non-reserved (cannot be function or type) reserved reserved reserved
NCLOB reserved reserved
NESTED non-reserved
NESTING non-reserved non-reserved
NEW non-reserved reserved reserved
NEXT non-reserved non-reserved non-reserved reserved
NFC non-reserved non-reserved non-reserved
NFD non-reserved non-reserved non-reserved
NFKC non-reserved non-reserved non-reserved
NFKD non-reserved non-reserved non-reserved
NIL non-reserved non-reserved
NO non-reserved reserved reserved reserved
NONE non-reserved (cannot be function or type) reserved reserved
NORMALIZE non-reserved (cannot be function or type) reserved reserved
NORMALIZED non-reserved non-reserved non-reserved
NOT reserved reserved reserved reserved
NOTHING non-reserved
NOTIFY non-reserved
NOTNULL reserved (can be function or type), requires AS
NOWAIT non-reserved
NTH_VALUE reserved reserved
NTILE reserved reserved
NULL reserved reserved reserved reserved
NULLABLE non-reserved non-reserved non-reserved
NULLIF non-reserved (cannot be function or type) reserved reserved reserved
NULLS non-reserved non-reserved non-reserved
NUMBER non-reserved non-reserved non-reserved
NUMERIC non-reserved (cannot be function or type) reserved reserved reserved
OBJECT non-reserved non-reserved non-reserved
OCCURRENCES_REGEX reserved reserved
OCTETS non-reserved non-reserved
OCTET_LENGTH reserved reserved reserved
OF non-reserved reserved reserved reserved
OFF non-reserved non-reserved non-reserved
OFFSET reserved, requires AS reserved reserved
OIDS non-reserved
OLD non-reserved reserved reserved
OMIT reserved
ON reserved, requires AS reserved reserved reserved
ONE reserved
ONLY reserved reserved reserved reserved
OPEN reserved reserved reserved
OPERATOR non-reserved
OPTION non-reserved non-reserved non-reserved reserved
OPTIONS non-reserved non-reserved non-reserved
OR reserved reserved reserved reserved
ORDER reserved, requires AS reserved reserved reserved
ORDERING non-reserved non-reserved
ORDINALITY non-reserved non-reserved non-reserved
OTHERS non-reserved non-reserved non-reserved
OUT non-reserved (cannot be function or type) reserved reserved
OUTER reserved (can be function or type) reserved reserved reserved
OUTPUT non-reserved non-reserved reserved
OVER non-reserved, requires AS reserved reserved
OVERFLOW non-reserved
OVERLAPS reserved (can be function or type), requires AS reserved reserved reserved
OVERLAY non-reserved (cannot be function or type) reserved reserved
OVERRIDING non-reserved non-reserved non-reserved
OWNED non-reserved
OWNER non-reserved
P non-reserved non-reserved
PAD non-reserved non-reserved reserved
PARALLEL non-reserved
PARAMETER reserved reserved
PARAMETER_MODE non-reserved non-reserved
PARAMETER_NAME non-reserved non-reserved
PARAMETER_ORDINAL_POSITION non-reserved non-reserved
PARAMETER_SPECIFIC_CATALOG non-reserved non-reserved
PARAMETER_SPECIFIC_NAME non-reserved non-reserved
PARAMETER_SPECIFIC_SCHEMA non-reserved non-reserved
PARSER non-reserved
PARTIAL non-reserved non-reserved non-reserved reserved
PARTITION non-reserved reserved reserved
PASCAL non-reserved non-reserved non-reserved
PASS non-reserved
PASSING non-reserved non-reserved non-reserved
PASSTHROUGH non-reserved non-reserved
PASSWORD non-reserved
PAST non-reserved
PATH non-reserved non-reserved
PATTERN reserved
PER reserved
PERCENT reserved reserved
PERCENTILE_CONT reserved reserved
PERCENTILE_DISC reserved reserved
PERCENT_RANK reserved reserved
PERIOD reserved reserved
PERMISSION non-reserved non-reserved
PERMUTE reserved
PLACING reserved non-reserved non-reserved
PLAN non-reserved
PLANS non-reserved
PLI non-reserved non-reserved non-reserved
POLICY non-reserved
PORTION reserved reserved
POSITION non-reserved (cannot be function or type) reserved reserved reserved
POSITION_REGEX reserved reserved
POWER reserved reserved
PRECEDES reserved reserved
PRECEDING non-reserved non-reserved non-reserved
PRECISION non-reserved (cannot be function or type), requires AS reserved reserved reserved
PREPARE non-reserved reserved reserved reserved
PREPARED non-reserved
PRESERVE non-reserved non-reserved non-reserved reserved
PRIMARY reserved reserved reserved reserved
PRIOR non-reserved non-reserved non-reserved reserved
PRIVATE non-reserved
PRIVILEGES non-reserved non-reserved non-reserved reserved
PROCEDURAL non-reserved
PROCEDURE non-reserved reserved reserved reserved
PROCEDURES non-reserved
PROGRAM non-reserved
PRUNE non-reserved
PTF reserved
PUBLIC non-reserved non-reserved reserved
PUBLICATION non-reserved
QUOTE non-reserved
QUOTES non-reserved
RANGE non-reserved reserved reserved
RANK reserved reserved
READ non-reserved non-reserved non-reserved reserved
READS reserved reserved
REAL non-reserved (cannot be function or type) reserved reserved reserved
REASSIGN non-reserved
RECHECK non-reserved
RECOVERY non-reserved non-reserved
RECURSIVE non-reserved reserved reserved
REF non-reserved reserved reserved
REFERENCES reserved reserved reserved reserved
REFERENCING non-reserved reserved reserved
REFRESH non-reserved
REGR_AVGX reserved reserved
REGR_AVGY reserved reserved
REGR_COUNT reserved reserved
REGR_INTERCEPT reserved reserved
REGR_R2 reserved reserved
REGR_SLOPE reserved reserved
REGR_SXX reserved reserved
REGR_SXY reserved reserved
REGR_SYY reserved reserved
REINDEX non-reserved
RELATIVE non-reserved non-reserved non-reserved reserved
RELEASE non-reserved reserved reserved
RENAME non-reserved
REPEATABLE non-reserved non-reserved non-reserved non-reserved
REPLACE non-reserved
REPLICA non-reserved
REQUIRING non-reserved non-reserved
RESET non-reserved
RESPECT non-reserved non-reserved
RESTART non-reserved non-reserved non-reserved
RESTORE non-reserved non-reserved
RESTRICT non-reserved non-reserved non-reserved reserved
RESULT reserved reserved
RETURN non-reserved reserved reserved
RETURNED_CARDINALITY non-reserved non-reserved
RETURNED_LENGTH non-reserved non-reserved non-reserved
RETURNED_OCTET_LENGTH non-reserved non-reserved non-reserved
RETURNED_SQLSTATE non-reserved non-reserved non-reserved
RETURNING reserved, requires AS non-reserved non-reserved
RETURNS non-reserved reserved reserved
REVOKE non-reserved reserved reserved reserved
RIGHT reserved (can be function or type) reserved reserved reserved
ROLE non-reserved non-reserved non-reserved
ROLLBACK non-reserved reserved reserved reserved
ROLLUP non-reserved reserved reserved
ROUTINE non-reserved non-reserved non-reserved
ROUTINES non-reserved
ROUTINE_CATALOG non-reserved non-reserved
ROUTINE_NAME non-reserved non-reserved
ROUTINE_SCHEMA non-reserved non-reserved
ROW non-reserved (cannot be function or type) reserved reserved
ROWS non-reserved reserved reserved reserved
ROW_COUNT non-reserved non-reserved non-reserved
ROW_NUMBER reserved reserved
RULE non-reserved
RUNNING reserved
SAVEPOINT non-reserved reserved reserved
SCALAR non-reserved
SCALE non-reserved non-reserved non-reserved
SCHEMA non-reserved non-reserved non-reserved reserved
SCHEMAS non-reserved
SCHEMA_NAME non-reserved non-reserved non-reserved
SCOPE reserved reserved
SCOPE_CATALOG non-reserved non-reserved
SCOPE_NAME non-reserved non-reserved
SCOPE_SCHEMA non-reserved non-reserved
SCROLL non-reserved reserved reserved reserved
SEARCH non-reserved reserved reserved
SECOND non-reserved, requires AS reserved reserved reserved
SECTION non-reserved non-reserved reserved
SECURITY non-reserved non-reserved non-reserved
SEEK reserved
SELECT reserved reserved reserved reserved
SELECTIVE non-reserved non-reserved
SELF non-reserved non-reserved
SENSITIVE reserved reserved
SEQUENCE non-reserved non-reserved non-reserved
SEQUENCES non-reserved
SERIALIZABLE non-reserved non-reserved non-reserved non-reserved
SERVER non-reserved non-reserved non-reserved
SERVER_NAME non-reserved non-reserved non-reserved
SESSION non-reserved non-reserved non-reserved reserved
SESSION_USER reserved reserved reserved reserved
SET non-reserved reserved reserved reserved
SETOF non-reserved (cannot be function or type)
SETS non-reserved non-reserved non-reserved
SHARE non-reserved
SHOW non-reserved reserved
SIMILAR reserved (can be function or type) reserved reserved
SIMPLE non-reserved non-reserved non-reserved
SIN reserved
SINH reserved
SIZE non-reserved non-reserved reserved
SKIP non-reserved reserved
SMALLINT non-reserved (cannot be function or type) reserved reserved reserved
SNAPSHOT non-reserved
SOME reserved reserved reserved reserved
SOURCE non-reserved non-reserved
SPACE non-reserved non-reserved reserved
SPECIFIC reserved reserved
SPECIFICTYPE reserved reserved
SPECIFIC_NAME non-reserved non-reserved
SQL non-reserved reserved reserved reserved
SQLCODE reserved
SQLERROR reserved
SQLEXCEPTION reserved reserved
SQLSTATE reserved reserved reserved
SQLWARNING reserved reserved
SQRT reserved reserved
STABLE non-reserved
STANDALONE non-reserved non-reserved non-reserved
START non-reserved reserved reserved
STATE non-reserved non-reserved
STATEMENT non-reserved non-reserved non-reserved
STATIC reserved reserved
STATISTICS non-reserved
STDDEV_POP reserved reserved
STDDEV_SAMP reserved reserved
STDIN non-reserved
STDOUT non-reserved
STORAGE non-reserved
STORED non-reserved
STRICT non-reserved
STRING non-reserved
STRIP non-reserved non-reserved non-reserved
STRUCTURE non-reserved non-reserved
STYLE non-reserved non-reserved
SUBCLASS_ORIGIN non-reserved non-reserved non-reserved
SUBMULTISET reserved reserved
SUBSCRIPTION non-reserved
SUBSET reserved
SUBSTRING non-reserved (cannot be function or type) reserved reserved reserved
SUBSTRING_REGEX reserved reserved
SUCCEEDS reserved reserved
SUM reserved reserved reserved
SUPPORT non-reserved
SYMMETRIC reserved reserved reserved
SYSID non-reserved
SYSTEM non-reserved reserved reserved
SYSTEM_TIME reserved reserved
SYSTEM_USER reserved reserved reserved
T non-reserved non-reserved
TABLE reserved reserved reserved reserved
TABLES non-reserved
TABLESAMPLE reserved (can be function or type) reserved reserved
TABLESPACE non-reserved
TABLE_NAME non-reserved non-reserved non-reserved
TAN reserved
TANH reserved
TEMP non-reserved
TEMPLATE non-reserved
TEMPORARY non-reserved non-reserved non-reserved reserved
TEXT non-reserved
THEN reserved reserved reserved reserved
THROUGH non-reserved
TIES non-reserved non-reserved non-reserved
TIME non-reserved (cannot be function or type) reserved reserved reserved
TIMESTAMP non-reserved (cannot be function or type) reserved reserved reserved
TIMEZONE_HOUR reserved reserved reserved
TIMEZONE_MINUTE reserved reserved reserved
TO reserved, requires AS reserved reserved reserved
TOKEN non-reserved non-reserved
TOP_LEVEL_COUNT non-reserved non-reserved
TRAILING reserved reserved reserved reserved
TRANSACTION non-reserved non-reserved non-reserved reserved
TRANSACTIONS_COMMITTED non-reserved non-reserved
TRANSACTIONS_ROLLED_BACK non-reserved non-reserved
TRANSACTION_ACTIVE non-reserved non-reserved
TRANSFORM non-reserved non-reserved non-reserved
TRANSFORMS non-reserved non-reserved
TRANSLATE reserved reserved reserved
TRANSLATE_REGEX reserved reserved
TRANSLATION reserved reserved reserved
TREAT non-reserved (cannot be function or type) reserved reserved
TRIGGER non-reserved reserved reserved
TRIGGER_CATALOG non-reserved non-reserved
TRIGGER_NAME non-reserved non-reserved
TRIGGER_SCHEMA non-reserved non-reserved
TRIM non-reserved (cannot be function or type) reserved reserved reserved
TRIM_ARRAY reserved reserved
TRUE reserved reserved reserved reserved
TRUNCATE non-reserved reserved reserved
TRUSTED non-reserved
TYPE non-reserved non-reserved non-reserved non-reserved
TYPES non-reserved
UESCAPE non-reserved reserved reserved
UNBOUNDED non-reserved non-reserved non-reserved
UNCOMMITTED non-reserved non-reserved non-reserved non-reserved
UNCONDITIONAL non-reserved
UNDER non-reserved non-reserved
UNENCRYPTED non-reserved
UNION reserved, requires AS reserved reserved reserved
UNIQUE reserved reserved reserved reserved
UNKNOWN non-reserved reserved reserved reserved
UNLINK non-reserved non-reserved
UNLISTEN non-reserved
UNLOGGED non-reserved
UNMATCHED reserved
UNNAMED non-reserved non-reserved non-reserved
UNNEST reserved reserved
UNTIL non-reserved
UNTYPED non-reserved non-reserved
UPDATE non-reserved reserved reserved reserved
UPPER reserved reserved reserved
URI non-reserved non-reserved
USAGE non-reserved non-reserved reserved
USER reserved reserved reserved reserved
USER_DEFINED_TYPE_CATALOG non-reserved non-reserved
USER_DEFINED_TYPE_CODE non-reserved non-reserved
USER_DEFINED_TYPE_NAME non-reserved non-reserved
USER_DEFINED_TYPE_SCHEMA non-reserved non-reserved
USING reserved reserved reserved reserved
UTF16 non-reserved
UTF32 non-reserved
UTF8 non-reserved
VACUUM non-reserved
VALID non-reserved non-reserved non-reserved
VALIDATE non-reserved
VALIDATOR non-reserved
VALUE non-reserved reserved reserved reserved
VALUES non-reserved (cannot be function or type) reserved reserved reserved
VALUE_OF reserved reserved
VARBINARY reserved reserved
VARCHAR non-reserved (cannot be function or type) reserved reserved reserved
VARIADIC reserved
VARYING non-reserved, requires AS reserved reserved reserved
VAR_POP reserved reserved
VAR_SAMP reserved reserved
VERBOSE reserved (can be function or type)
VERSION non-reserved non-reserved non-reserved
VERSIONING reserved reserved
VIEW non-reserved non-reserved non-reserved reserved
VIEWS non-reserved
VOLATILE non-reserved
WHEN reserved reserved reserved reserved
WHENEVER reserved reserved reserved
WHERE reserved, requires AS reserved reserved reserved
WHITESPACE non-reserved non-reserved non-reserved
WIDTH_BUCKET reserved reserved
WINDOW reserved, requires AS reserved reserved
WITH reserved, requires AS reserved reserved reserved
WITHIN non-reserved, requires AS reserved reserved
WITHOUT non-reserved, requires AS reserved reserved
WORK non-reserved non-reserved non-reserved reserved
WRAPPER non-reserved non-reserved non-reserved
WRITE non-reserved non-reserved non-reserved reserved
XML non-reserved reserved reserved
XMLAGG reserved reserved
XMLATTRIBUTES non-reserved (cannot be function or type) reserved reserved
XMLBINARY reserved reserved
XMLCAST reserved reserved
XMLCOMMENT reserved reserved
XMLCONCAT non-reserved (cannot be function or type) reserved reserved
XMLDECLARATION non-reserved non-reserved
XMLDOCUMENT reserved reserved
XMLELEMENT non-reserved (cannot be function or type) reserved reserved
XMLEXISTS non-reserved (cannot be function or type) reserved reserved
XMLFOREST non-reserved (cannot be function or type) reserved reserved
XMLITERATE reserved reserved
XMLNAMESPACES non-reserved (cannot be function or type) reserved reserved
XMLPARSE non-reserved (cannot be function or type) reserved reserved
XMLPI non-reserved (cannot be function or type) reserved reserved
XMLQUERY reserved reserved
XMLROOT non-reserved (cannot be function or type)
XMLSCHEMA non-reserved non-reserved
XMLSERIALIZE non-reserved (cannot be function or type) reserved reserved
XMLTABLE non-reserved (cannot be function or type) reserved reserved
XMLTEXT reserved reserved
XMLVALIDATE reserved reserved
YEAR non-reserved, requires AS reserved reserved reserved
YES non-reserved non-reserved non-reserved
ZONE non-reserved non-reserved non-reserved reserved

View file

@ -42,758 +42,107 @@ export const language = <languages.IMonarchLanguage>{
],
keywords: [
'A',
'ABORT',
'ABS',
'ABSENT',
'ABSOLUTE',
'ACCESS',
'ACCORDING',
'ACTION',
'ADA',
'ADD',
'ADMIN',
'AFTER',
'AGGREGATE',
// This list is generated using `keywords.js`
'ALL',
'ALLOCATE',
'ALSO',
'ALTER',
'ALWAYS',
'ANALYSE',
'ANALYZE',
'AND',
'ANY',
'ARE',
'ARRAY',
'ARRAY_AGG',
'ARRAY_MAX_CARDINALITY',
'AS',
'ASC',
'ASENSITIVE',
'ASSERTION',
'ASSIGNMENT',
'ASYMMETRIC',
'AT',
'ATOMIC',
'ATTRIBUTE',
'ATTRIBUTES',
'AUTHORIZATION',
'AVG',
'BACKWARD',
'BASE64',
'BEFORE',
'BEGIN',
'BEGIN_FRAME',
'BEGIN_PARTITION',
'BERNOULLI',
'BETWEEN',
'BIGINT',
'BINARY',
'BIT',
'BIT_LENGTH',
'BLOB',
'BLOCKED',
'BOM',
'BOOLEAN',
'BOTH',
'BREADTH',
'BY',
'C',
'CACHE',
'CALL',
'CALLED',
'CARDINALITY',
'CASCADE',
'CASCADED',
'CASE',
'CAST',
'CATALOG',
'CATALOG_NAME',
'CEIL',
'CEILING',
'CHAIN',
'CHAR',
'CHARACTER',
'CHARACTERISTICS',
'CHARACTERS',
'CHARACTER_LENGTH',
'CHARACTER_SET_CATALOG',
'CHARACTER_SET_NAME',
'CHARACTER_SET_SCHEMA',
'CHAR_LENGTH',
'CHECK',
'CHECKPOINT',
'CLASS',
'CLASS_ORIGIN',
'CLOB',
'CLOSE',
'CLUSTER',
'COALESCE',
'COBOL',
'COLLATE',
'COLLATION',
'COLLATION_CATALOG',
'COLLATION_NAME',
'COLLATION_SCHEMA',
'COLLECT',
'COLUMN',
'COLUMNS',
'COLUMN_NAME',
'COMMAND_FUNCTION',
'COMMAND_FUNCTION_CODE',
'COMMENT',
'COMMENTS',
'COMMIT',
'COMMITTED',
'CONCURRENTLY',
'CONDITION',
'CONDITION_NUMBER',
'CONFIGURATION',
'CONFLICT',
'CONNECT',
'CONNECTION',
'CONNECTION_NAME',
'CONSTRAINT',
'CONSTRAINTS',
'CONSTRAINT_CATALOG',
'CONSTRAINT_NAME',
'CONSTRAINT_SCHEMA',
'CONSTRUCTOR',
'CONTAINS',
'CONTENT',
'CONTINUE',
'CONTROL',
'CONVERSION',
'CONVERT',
'COPY',
'CORR',
'CORRESPONDING',
'COST',
'COUNT',
'COVAR_POP',
'COVAR_SAMP',
'CREATE',
'CROSS',
'CSV',
'CUBE',
'CUME_DIST',
'CURRENT',
'CURRENT_CATALOG',
'CURRENT_DATE',
'CURRENT_DEFAULT_TRANSFORM_GROUP',
'CURRENT_PATH',
'CURRENT_ROLE',
'CURRENT_ROW',
'CURRENT_SCHEMA',
'CURRENT_TIME',
'CURRENT_TIMESTAMP',
'CURRENT_TRANSFORM_GROUP_FOR_TYPE',
'CURRENT_USER',
'CURSOR',
'CURSOR_NAME',
'CYCLE',
'DATA',
'DATABASE',
'DATALINK',
'DATE',
'DATETIME_INTERVAL_CODE',
'DATETIME_INTERVAL_PRECISION',
'DAY',
'DB',
'DEALLOCATE',
'DEC',
'DECIMAL',
'DECLARE',
'DEFAULT',
'DEFAULTS',
'DEFERRABLE',
'DEFERRED',
'DEFINED',
'DEFINER',
'DEGREE',
'DELETE',
'DELIMITER',
'DELIMITERS',
'DENSE_RANK',
'DEPENDS',
'DEPTH',
'DEREF',
'DERIVED',
'DESC',
'DESCRIBE',
'DESCRIPTOR',
'DETERMINISTIC',
'DIAGNOSTICS',
'DICTIONARY',
'DISABLE',
'DISCARD',
'DISCONNECT',
'DISPATCH',
'DISTINCT',
'DLNEWCOPY',
'DLPREVIOUSCOPY',
'DLURLCOMPLETE',
'DLURLCOMPLETEONLY',
'DLURLCOMPLETEWRITE',
'DLURLPATH',
'DLURLPATHONLY',
'DLURLPATHWRITE',
'DLURLSCHEME',
'DLURLSERVER',
'DLVALUE',
'DO',
'DOCUMENT',
'DOMAIN',
'DOUBLE',
'DROP',
'DYNAMIC',
'DYNAMIC_FUNCTION',
'DYNAMIC_FUNCTION_CODE',
'EACH',
'ELEMENT',
'ELSE',
'EMPTY',
'ENABLE',
'ENCODING',
'ENCRYPTED',
'END',
'END-EXEC',
'END_FRAME',
'END_PARTITION',
'ENFORCED',
'ENUM',
'EQUALS',
'ESCAPE',
'EVENT',
'EVERY',
'EXCEPT',
'EXCEPTION',
'EXCLUDE',
'EXCLUDING',
'EXCLUSIVE',
'EXEC',
'EXECUTE',
'EXISTS',
'EXP',
'EXPLAIN',
'EXPRESSION',
'EXTENSION',
'EXTERNAL',
'EXTRACT',
'FALSE',
'FAMILY',
'FETCH',
'FILE',
'FILTER',
'FINAL',
'FIRST',
'FIRST_VALUE',
'FLAG',
'FLOAT',
'FLOOR',
'FOLLOWING',
'FOR',
'FORCE',
'FOREIGN',
'FORTRAN',
'FORWARD',
'FOUND',
'FRAME_ROW',
'FREE',
'FREEZE',
'FROM',
'FS',
'FULL',
'FUNCTION',
'FUNCTIONS',
'FUSION',
'G',
'GENERAL',
'GENERATED',
'GET',
'GLOBAL',
'GO',
'GOTO',
'GRANT',
'GRANTED',
'GREATEST',
'GROUP',
'GROUPING',
'GROUPS',
'HANDLER',
'HAVING',
'HEADER',
'HEX',
'HIERARCHY',
'HOLD',
'HOUR',
'ID',
'IDENTITY',
'IF',
'IGNORE',
'ILIKE',
'IMMEDIATE',
'IMMEDIATELY',
'IMMUTABLE',
'IMPLEMENTATION',
'IMPLICIT',
'IMPORT',
'IN',
'INCLUDING',
'INCREMENT',
'INDENT',
'INDEX',
'INDEXES',
'INDICATOR',
'INHERIT',
'INHERITS',
'INITIALLY',
'INLINE',
'INNER',
'INOUT',
'INPUT',
'INSENSITIVE',
'INSERT',
'INSTANCE',
'INSTANTIABLE',
'INSTEAD',
'INT',
'INTEGER',
'INTEGRITY',
'INTERSECT',
'INTERSECTION',
'INTERVAL',
'INTO',
'INVOKER',
'IS',
'ISNULL',
'ISOLATION',
'JOIN',
'K',
'KEY',
'KEY_MEMBER',
'KEY_TYPE',
'LABEL',
'LAG',
'LANGUAGE',
'LARGE',
'LAST',
'LAST_VALUE',
'LATERAL',
'LEAD',
'LEADING',
'LEAKPROOF',
'LEAST',
'LEFT',
'LENGTH',
'LEVEL',
'LIBRARY',
'LIKE',
'LIKE_REGEX',
'LIMIT',
'LINK',
'LISTEN',
'LN',
'LOAD',
'LOCAL',
'LOCALTIME',
'LOCALTIMESTAMP',
'LOCATION',
'LOCATOR',
'LOCK',
'LOCKED',
'LOGGED',
'LOWER',
'M',
'MAP',
'MAPPING',
'MATCH',
'MATCHED',
'MATERIALIZED',
'MAX',
'MAXVALUE',
'MAX_CARDINALITY',
'MEMBER',
'MERGE',
'MESSAGE_LENGTH',
'MESSAGE_OCTET_LENGTH',
'MESSAGE_TEXT',
'METHOD',
'MIN',
'MINUTE',
'MINVALUE',
'MOD',
'MODE',
'MODIFIES',
'MODULE',
'MONTH',
'MORE',
'MOVE',
'MULTISET',
'MUMPS',
'NAME',
'NAMES',
'NAMESPACE',
'NATIONAL',
'NATURAL',
'NCHAR',
'NCLOB',
'NESTING',
'NEW',
'NEXT',
'NFC',
'NFD',
'NFKC',
'NFKD',
'NIL',
'NO',
'NONE',
'NORMALIZE',
'NORMALIZED',
'NOT',
'NOTHING',
'NOTIFY',
'NOTNULL',
'NOWAIT',
'NTH_VALUE',
'NTILE',
'NULL',
'NULLABLE',
'NULLIF',
'NULLS',
'NUMBER',
'NUMERIC',
'OBJECT',
'OCCURRENCES_REGEX',
'OCTETS',
'OCTET_LENGTH',
'OF',
'OFF',
'OFFSET',
'OIDS',
'OLD',
'ON',
'ONLY',
'OPEN',
'OPERATOR',
'OPTION',
'OPTIONS',
'OR',
'ORDER',
'ORDERING',
'ORDINALITY',
'OTHERS',
'OUT',
'OUTER',
'OUTPUT',
'OVER',
'OVERLAPS',
'OVERLAY',
'OVERRIDING',
'OWNED',
'OWNER',
'P',
'PAD',
'PARALLEL',
'PARAMETER',
'PARAMETER_MODE',
'PARAMETER_NAME',
'PARAMETER_ORDINAL_POSITION',
'PARAMETER_SPECIFIC_CATALOG',
'PARAMETER_SPECIFIC_NAME',
'PARAMETER_SPECIFIC_SCHEMA',
'PARSER',
'PARTIAL',
'PARTITION',
'PASCAL',
'PASSING',
'PASSTHROUGH',
'PASSWORD',
'PATH',
'PERCENT',
'PERCENTILE_CONT',
'PERCENTILE_DISC',
'PERCENT_RANK',
'PERIOD',
'PERMISSION',
'PLACING',
'PLANS',
'PLI',
'POLICY',
'PORTION',
'POSITION',
'POSITION_REGEX',
'POWER',
'PRECEDES',
'PRECEDING',
'PRECISION',
'PREPARE',
'PREPARED',
'PRESERVE',
'PRIMARY',
'PRIOR',
'PRIVILEGES',
'PROCEDURAL',
'PROCEDURE',
'PROGRAM',
'PUBLIC',
'QUOTE',
'RANGE',
'RANK',
'READ',
'READS',
'REAL',
'REASSIGN',
'RECHECK',
'RECOVERY',
'RECURSIVE',
'REF',
'REFERENCES',
'REFERENCING',
'REFRESH',
'REGR_AVGX',
'REGR_AVGY',
'REGR_COUNT',
'REGR_INTERCEPT',
'REGR_R2',
'REGR_SLOPE',
'REGR_SXX',
'REGR_SXY',
'REGR_SYY',
'REINDEX',
'RELATIVE',
'RELEASE',
'RENAME',
'REPEATABLE',
'REPLACE',
'REPLICA',
'REQUIRING',
'RESET',
'RESPECT',
'RESTART',
'RESTORE',
'RESTRICT',
'RESULT',
'RETURN',
'RETURNED_CARDINALITY',
'RETURNED_LENGTH',
'RETURNED_OCTET_LENGTH',
'RETURNED_SQLSTATE',
'RETURNING',
'RETURNS',
'REVOKE',
'RIGHT',
'ROLE',
'ROLLBACK',
'ROLLUP',
'ROUTINE',
'ROUTINE_CATALOG',
'ROUTINE_NAME',
'ROUTINE_SCHEMA',
'ROW',
'ROWS',
'ROW_COUNT',
'ROW_NUMBER',
'RULE',
'SAVEPOINT',
'SCALE',
'SCHEMA',
'SCHEMA_NAME',
'SCOPE',
'SCOPE_CATALOG',
'SCOPE_NAME',
'SCOPE_SCHEMA',
'SCROLL',
'SEARCH',
'SECOND',
'SECTION',
'SECURITY',
'SELECT',
'SELECTIVE',
'SELF',
'SENSITIVE',
'SEQUENCE',
'SEQUENCES',
'SERIALIZABLE',
'SERVER',
'SERVER_NAME',
'SESSION',
'SESSION_USER',
'SET',
'SETOF',
'SETS',
'SHARE',
'SHOW',
'SIMILAR',
'SIMPLE',
'SIZE',
'SKIP',
'SMALLINT',
'SNAPSHOT',
'SOME',
'SOURCE',
'SPACE',
'SPECIFIC',
'SPECIFICTYPE',
'SPECIFIC_NAME',
'SQL',
'SQLCODE',
'SQLERROR',
'SQLEXCEPTION',
'SQLSTATE',
'SQLWARNING',
'SQRT',
'STABLE',
'STANDALONE',
'START',
'STATE',
'STATEMENT',
'STATIC',
'STATISTICS',
'STDDEV_POP',
'STDDEV_SAMP',
'STDIN',
'STDOUT',
'STORAGE',
'STRICT',
'STRIP',
'STRUCTURE',
'STYLE',
'SUBCLASS_ORIGIN',
'SUBMULTISET',
'SUBSTRING',
'SUBSTRING_REGEX',
'SUCCEEDS',
'SUM',
'SYMMETRIC',
'SYSID',
'SYSTEM',
'SYSTEM_TIME',
'SYSTEM_USER',
'T',
'TABLE',
'TABLES',
'TABLESAMPLE',
'TABLESPACE',
'TABLE_NAME',
'TEMP',
'TEMPLATE',
'TEMPORARY',
'TEXT',
'THEN',
'TIES',
'TIME',
'TIMESTAMP',
'TIMEZONE_HOUR',
'TIMEZONE_MINUTE',
'TO',
'TOKEN',
'TOP_LEVEL_COUNT',
'TRAILING',
'TRANSACTION',
'TRANSACTIONS_COMMITTED',
'TRANSACTIONS_ROLLED_BACK',
'TRANSACTION_ACTIVE',
'TRANSFORM',
'TRANSFORMS',
'TRANSLATE',
'TRANSLATE_REGEX',
'TRANSLATION',
'TREAT',
'TRIGGER',
'TRIGGER_CATALOG',
'TRIGGER_NAME',
'TRIGGER_SCHEMA',
'TRIM',
'TRIM_ARRAY',
'TRUE',
'TRUNCATE',
'TRUSTED',
'TYPE',
'TYPES',
'UESCAPE',
'UNBOUNDED',
'UNCOMMITTED',
'UNDER',
'UNENCRYPTED',
'UNION',
'UNIQUE',
'UNKNOWN',
'UNLINK',
'UNLISTEN',
'UNLOGGED',
'UNNAMED',
'UNNEST',
'UNTIL',
'UNTYPED',
'UPDATE',
'UPPER',
'URI',
'USAGE',
'USER',
'USER_DEFINED_TYPE_CATALOG',
'USER_DEFINED_TYPE_CODE',
'USER_DEFINED_TYPE_NAME',
'USER_DEFINED_TYPE_SCHEMA',
'USING',
'VACUUM',
'VALID',
'VALIDATE',
'VALIDATOR',
'VALUE',
'VALUES',
'VALUE_OF',
'VARBINARY',
'VARCHAR',
'VARIADIC',
'VARYING',
'VAR_POP',
'VAR_SAMP',
'VERBOSE',
'VERSION',
'VERSIONING',
'VIEW',
'VIEWS',
'VOLATILE',
'WHEN',
'WHENEVER',
'WHERE',
'WHITESPACE',
'WIDTH_BUCKET',
'WINDOW',
'WITH',
'WITHIN',
'WITHOUT',
'WORK',
'WRAPPER',
'WRITE',
'XML',
'XMLAGG',
'XMLATTRIBUTES',
'XMLBINARY',
'XMLCAST',
'XMLCOMMENT',
'XMLCONCAT',
'XMLDECLARATION',
'XMLDOCUMENT',
'XMLELEMENT',
'XMLEXISTS',
'XMLFOREST',
'XMLITERATE',
'XMLNAMESPACES',
'XMLPARSE',
'XMLPI',
'XMLQUERY',
'XMLROOT',
'XMLSCHEMA',
'XMLSERIALIZE',
'XMLTABLE',
'XMLTEXT',
'XMLVALIDATE',
'YEAR',
'YES',
'ZONE'
'WITH'
],
operators: [
'AND',
@ -1301,10 +650,10 @@ export const language = <languages.IMonarchLanguage>{
/[\w@#$]+/,
{
cases: {
'@keywords': 'keyword',
'@operators': 'operator',
'@builtinVariables': 'predefined',
'@builtinFunctions': 'predefined',
'@keywords': 'keyword',
'@default': 'identifier'
}
}

612
src/sql/keywords.js Normal file
View file

@ -0,0 +1,612 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
const keywordsSet = new Set();
addArrToSet(keywordsSet, getMicrosoftSQLKeywords());
addArrToSet(keywordsSet, getSQLiteKeywords());
const keywords = setToArr(keywordsSet);
keywords.sort();
console.log(`'${keywords.join("',\n'")}'`);
function addArrToSet(set, arr) {
for (const el of arr) {
set.add(el);
}
}
function setToArr(set) {
const arr = [];
for (const el of set) {
arr.push(el);
}
return arr;
}
function getMicrosoftSQLKeywords() {
// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/reserved-keywords-transact-sql?view=sql-server-ver15
return `
ADD
EXTERNAL
PROCEDURE
ALL
FETCH
PUBLIC
ALTER
FILE
RAISERROR
AND
FILLFACTOR
READ
ANY
FOR
READTEXT
AS
FOREIGN
RECONFIGURE
ASC
FREETEXT
REFERENCES
AUTHORIZATION
FREETEXTTABLE
REPLICATION
BACKUP
FROM
RESTORE
BEGIN
FULL
RESTRICT
BETWEEN
FUNCTION
RETURN
BREAK
GOTO
REVERT
BROWSE
GRANT
REVOKE
BULK
GROUP
RIGHT
BY
HAVING
ROLLBACK
CASCADE
HOLDLOCK
ROWCOUNT
CASE
IDENTITY
ROWGUIDCOL
CHECK
IDENTITY_INSERT
RULE
CHECKPOINT
IDENTITYCOL
SAVE
CLOSE
IF
SCHEMA
CLUSTERED
IN
SECURITYAUDIT
COALESCE
INDEX
SELECT
COLLATE
INNER
SEMANTICKEYPHRASETABLE
COLUMN
INSERT
SEMANTICSIMILARITYDETAILSTABLE
COMMIT
INTERSECT
SEMANTICSIMILARITYTABLE
COMPUTE
INTO
SESSION_USER
CONSTRAINT
IS
SET
CONTAINS
JOIN
SETUSER
CONTAINSTABLE
KEY
SHUTDOWN
CONTINUE
KILL
SOME
CONVERT
LEFT
STATISTICS
CREATE
LIKE
SYSTEM_USER
CROSS
LINENO
TABLE
CURRENT
LOAD
TABLESAMPLE
CURRENT_DATE
MERGE
TEXTSIZE
CURRENT_TIME
NATIONAL
THEN
CURRENT_TIMESTAMP
NOCHECK
TO
CURRENT_USER
NONCLUSTERED
TOP
CURSOR
NOT
TRAN
DATABASE
NULL
TRANSACTION
DBCC
NULLIF
TRIGGER
DEALLOCATE
OF
TRUNCATE
DECLARE
OFF
TRY_CONVERT
DEFAULT
OFFSETS
TSEQUAL
DELETE
ON
UNION
DENY
OPEN
UNIQUE
DESC
OPENDATASOURCE
UNPIVOT
DISK
OPENQUERY
UPDATE
DISTINCT
OPENROWSET
UPDATETEXT
DISTRIBUTED
OPENXML
USE
DOUBLE
OPTION
USER
DROP
OR
VALUES
DUMP
ORDER
VARYING
ELSE
OUTER
VIEW
END
OVER
WAITFOR
ERRLVL
PERCENT
WHEN
ESCAPE
PIVOT
WHERE
EXCEPT
PLAN
WHILE
EXEC
PRECISION
WITH
EXECUTE
PRIMARY
WITHIN GROUP
EXISTS
PRINT
WRITETEXT
EXIT
PROC
ABSOLUTE
EXEC
OVERLAPS
ACTION
EXECUTE
PAD
ADA
EXISTS
PARTIAL
ADD
EXTERNAL
PASCAL
ALL
EXTRACT
POSITION
ALLOCATE
FALSE
PRECISION
ALTER
FETCH
PREPARE
AND
FIRST
PRESERVE
ANY
FLOAT
PRIMARY
ARE
FOR
PRIOR
AS
FOREIGN
PRIVILEGES
ASC
FORTRAN
PROCEDURE
ASSERTION
FOUND
PUBLIC
AT
FROM
READ
AUTHORIZATION
FULL
REAL
AVG
GET
REFERENCES
BEGIN
GLOBAL
RELATIVE
BETWEEN
GO
RESTRICT
BIT
GOTO
REVOKE
BIT_LENGTH
GRANT
RIGHT
BOTH
GROUP
ROLLBACK
BY
HAVING
ROWS
CASCADE
HOUR
SCHEMA
CASCADED
IDENTITY
SCROLL
CASE
IMMEDIATE
SECOND
CAST
IN
SECTION
CATALOG
INCLUDE
SELECT
CHAR
INDEX
SESSION
CHAR_LENGTH
INDICATOR
SESSION_USER
CHARACTER
INITIALLY
SET
CHARACTER_LENGTH
INNER
SIZE
CHECK
INPUT
SMALLINT
CLOSE
INSENSITIVE
SOME
COALESCE
INSERT
SPACE
COLLATE
INT
SQL
COLLATION
INTEGER
SQLCA
COLUMN
INTERSECT
SQLCODE
COMMIT
INTERVAL
SQLERROR
CONNECT
INTO
SQLSTATE
CONNECTION
IS
SQLWARNING
CONSTRAINT
ISOLATION
SUBSTRING
CONSTRAINTS
JOIN
SUM
CONTINUE
KEY
SYSTEM_USER
CONVERT
LANGUAGE
TABLE
CORRESPONDING
LAST
TEMPORARY
COUNT
LEADING
THEN
CREATE
LEFT
TIME
CROSS
LEVEL
TIMESTAMP
CURRENT
LIKE
TIMEZONE_HOUR
CURRENT_DATE
LOCAL
TIMEZONE_MINUTE
CURRENT_TIME
LOWER
TO
CURRENT_TIMESTAMP
MATCH
TRAILING
CURRENT_USER
MAX
TRANSACTION
CURSOR
MIN
TRANSLATE
DATE
MINUTE
TRANSLATION
DAY
MODULE
TRIM
DEALLOCATE
MONTH
TRUE
DEC
NAMES
UNION
DECIMAL
NATIONAL
UNIQUE
DECLARE
NATURAL
UNKNOWN
DEFAULT
NCHAR
UPDATE
DEFERRABLE
NEXT
UPPER
DEFERRED
NO
USAGE
DELETE
NONE
USER
DESC
NOT
USING
DESCRIBE
NULL
VALUE
DESCRIPTOR
NULLIF
VALUES
DIAGNOSTICS
NUMERIC
VARCHAR
DISCONNECT
OCTET_LENGTH
VARYING
DISTINCT
OF
VIEW
DOMAIN
ON
WHEN
DOUBLE
ONLY
WHENEVER
DROP
OPEN
WHERE
ELSE
OPTION
WITH
END
OR
WORK
END-EXEC
ORDER
WRITE
ESCAPE
OUTER
YEAR
EXCEPT
OUTPUT
ZONE
EXCEPTION
`
.split(/\r\n|\r|\n/)
.map((t) => t.trim())
.filter((t) => !!t);
}
function getSQLiteKeywords() {
// https://www.sqlite.org/lang_keywords.html
return `
ABORT
ACTION
ADD
AFTER
ALL
ALTER
ALWAYS
ANALYZE
AND
AS
ASC
ATTACH
AUTOINCREMENT
BEFORE
BEGIN
BETWEEN
BY
CASCADE
CASE
CAST
CHECK
COLLATE
COLUMN
COMMIT
CONFLICT
CONSTRAINT
CREATE
CROSS
CURRENT
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
DATABASE
DEFAULT
DEFERRABLE
DEFERRED
DELETE
DESC
DETACH
DISTINCT
DO
DROP
EACH
ELSE
END
ESCAPE
EXCEPT
EXCLUDE
EXCLUSIVE
EXISTS
EXPLAIN
FAIL
FILTER
FIRST
FOLLOWING
FOR
FOREIGN
FROM
FULL
GENERATED
GLOB
GROUP
GROUPS
HAVING
IF
IGNORE
IMMEDIATE
IN
INDEX
INDEXED
INITIALLY
INNER
INSERT
INSTEAD
INTERSECT
INTO
IS
ISNULL
JOIN
KEY
LAST
LEFT
LIKE
LIMIT
MATCH
MATERIALIZED
NATURAL
NO
NOT
NOTHING
NOTNULL
NULL
NULLS
OF
OFFSET
ON
OR
ORDER
OTHERS
OUTER
OVER
PARTITION
PLAN
PRAGMA
PRECEDING
PRIMARY
QUERY
RAISE
RANGE
RECURSIVE
REFERENCES
REGEXP
REINDEX
RELEASE
RENAME
REPLACE
RESTRICT
RETURNING
RIGHT
ROLLBACK
ROW
ROWS
SAVEPOINT
SELECT
SET
TABLE
TEMP
TEMPORARY
THEN
TIES
TO
TRANSACTION
TRIGGER
UNBOUNDED
UNION
UNIQUE
UPDATE
USING
VACUUM
VALUES
VIEW
VIRTUAL
WHEN
WHERE
WINDOW
WITH
WITHOUT
`
.split(/\r\n|\r|\n/)
.map((t) => t.trim())
.filter((t) => !!t);
}

File diff suppressed because it is too large Load diff