From 4ed52cbd2bcdd019221bc6f97ac6e67a8530512a Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 27 Oct 2021 09:08:08 +0200 Subject: [PATCH] Update mysq, pgsql and sqll keywords (fixes microsoft/monaco-editor#2706) --- src/mysql/keywords.js | 32 ++ src/mysql/keywords.mysql.txt | 750 ++++++++++++++++++++++++++ src/mysql/mysql.test.ts | 2 +- src/mysql/mysql.ts | 412 +-------------- src/pgsql/keywords.js | 30 ++ src/pgsql/keywords.postgresql.txt | 827 +++++++++++++++++++++++++++++ src/pgsql/pgsql.ts | 657 +---------------------- src/sql/keywords.js | 612 +++++++++++++++++++++ src/sql/sql.ts | 847 ++++++------------------------ 9 files changed, 2435 insertions(+), 1734 deletions(-) create mode 100644 src/mysql/keywords.js create mode 100644 src/mysql/keywords.mysql.txt create mode 100644 src/pgsql/keywords.js create mode 100644 src/pgsql/keywords.postgresql.txt create mode 100644 src/sql/keywords.js diff --git a/src/mysql/keywords.js b/src/mysql/keywords.js new file mode 100644 index 00000000..7e11b68c --- /dev/null +++ b/src/mysql/keywords.js @@ -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; +} diff --git a/src/mysql/keywords.mysql.txt b/src/mysql/keywords.mysql.txt new file mode 100644 index 00000000..17a3aea3 --- /dev/null +++ b/src/mysql/keywords.mysql.txt @@ -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) diff --git a/src/mysql/mysql.test.ts b/src/mysql/mysql.test.ts index 81341ab8..a8111a25 100644 --- a/src/mysql/mysql.test.ts +++ b/src/mysql/mysql.test.ts @@ -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' } ] } ], diff --git a/src/mysql/mysql.ts b/src/mysql/mysql.ts index a3eafdc1..97483a5b 100644 --- a/src/mysql/mysql.ts +++ b/src/mysql/mysql.ts @@ -42,233 +42,109 @@ export const language = { ], 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 = { '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 = { /[\w@]+/, { cases: { - '@keywords': 'keyword', '@operators': 'operator', '@builtinVariables': 'predefined', '@builtinFunctions': 'predefined', + '@keywords': 'keyword', '@default': 'identifier' } } diff --git a/src/pgsql/keywords.js b/src/pgsql/keywords.js new file mode 100644 index 00000000..94134d9b --- /dev/null +++ b/src/pgsql/keywords.js @@ -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; +} diff --git a/src/pgsql/keywords.postgresql.txt b/src/pgsql/keywords.postgresql.txt new file mode 100644 index 00000000..f62579d9 --- /dev/null +++ b/src/pgsql/keywords.postgresql.txt @@ -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 diff --git a/src/pgsql/pgsql.ts b/src/pgsql/pgsql.ts index 895f35e5..14bdc3c3 100644 --- a/src/pgsql/pgsql.ts +++ b/src/pgsql/pgsql.ts @@ -42,758 +42,107 @@ export const language = { ], 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 = { /[\w@#$]+/, { cases: { - '@keywords': 'keyword', '@operators': 'operator', '@builtinVariables': 'predefined', '@builtinFunctions': 'predefined', + '@keywords': 'keyword', '@default': 'identifier' } } diff --git a/src/sql/keywords.js b/src/sql/keywords.js new file mode 100644 index 00000000..9573a25f --- /dev/null +++ b/src/sql/keywords.js @@ -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); +} diff --git a/src/sql/sql.ts b/src/sql/sql.ts index 1624ca8a..066d6cc4 100644 --- a/src/sql/sql.ts +++ b/src/sql/sql.ts @@ -42,915 +42,372 @@ export const language = { ], keywords: [ - 'ABORT_AFTER_WAIT', - 'ABSENT', + // This list is generated using `keywords.js` + 'ABORT', 'ABSOLUTE', - 'ACCENT_SENSITIVITY', 'ACTION', - 'ACTIVATION', - 'ACTIVE', + 'ADA', 'ADD', - 'ADDRESS', - 'ADMIN', - 'AES', - 'AES_128', - 'AES_192', - 'AES_256', - 'AFFINITY', 'AFTER', - 'AGGREGATE', - 'ALGORITHM', - 'ALL_CONSTRAINTS', - 'ALL_ERRORMSGS', - 'ALL_INDEXES', - 'ALL_LEVELS', - 'ALL_SPARSE_COLUMNS', - 'ALLOW_CONNECTIONS', - 'ALLOW_MULTIPLE_EVENT_LOSS', - 'ALLOW_PAGE_LOCKS', - 'ALLOW_ROW_LOCKS', - 'ALLOW_SINGLE_EVENT_LOSS', - 'ALLOW_SNAPSHOT_ISOLATION', - 'ALLOWED', + 'ALL', + 'ALLOCATE', 'ALTER', - 'ANONYMOUS', - 'ANSI_DEFAULTS', - 'ANSI_NULL_DEFAULT', - 'ANSI_NULL_DFLT_OFF', - 'ANSI_NULL_DFLT_ON', - 'ANSI_NULLS', - 'ANSI_PADDING', - 'ANSI_WARNINGS', - 'APPEND', - 'APPLICATION', - 'APPLICATION_LOG', - 'ARITHABORT', - 'ARITHIGNORE', + 'ALWAYS', + 'ANALYZE', + 'AND', + 'ANY', + 'ARE', 'AS', 'ASC', - 'ASSEMBLY', - 'ASYMMETRIC', - 'ASYNCHRONOUS_COMMIT', + 'ASSERTION', 'AT', - 'ATOMIC', 'ATTACH', - 'ATTACH_REBUILD_LOG', - 'AUDIT', - 'AUDIT_GUID', - 'AUTHENTICATION', 'AUTHORIZATION', - 'AUTO', - 'AUTO_CLEANUP', - 'AUTO_CLOSE', - 'AUTO_CREATE_STATISTICS', - 'AUTO_SHRINK', - 'AUTO_UPDATE_STATISTICS', - 'AUTO_UPDATE_STATISTICS_ASYNC', - 'AUTOMATED_BACKUP_PREFERENCE', - 'AUTOMATIC', - 'AVAILABILITY', - 'AVAILABILITY_MODE', + 'AUTOINCREMENT', + 'AVG', 'BACKUP', - 'BACKUP_PRIORITY', - 'BASE64', - 'BATCHSIZE', + 'BEFORE', 'BEGIN', - 'BEGIN_DIALOG', - 'BIGINT', - 'BINARY', - 'BINDING', + 'BETWEEN', 'BIT', - 'BLOCKERS', - 'BLOCKSIZE', - 'BOUNDING_BOX', + 'BIT_LENGTH', + 'BOTH', 'BREAK', - 'BROKER', - 'BROKER_INSTANCE', 'BROWSE', - 'BUCKET_COUNT', - 'BUFFER', - 'BUFFERCOUNT', 'BULK', - 'BULK_LOGGED', 'BY', - 'CACHE', - 'CALL', - 'CALLED', - 'CALLER', - 'CAP_CPU_PERCENT', 'CASCADE', + 'CASCADED', 'CASE', + 'CAST', 'CATALOG', - 'CATCH', - 'CELLS_PER_OBJECT', - 'CERTIFICATE', - 'CHANGE_RETENTION', - 'CHANGE_TRACKING', - 'CHANGES', 'CHAR', 'CHARACTER', + 'CHARACTER_LENGTH', + 'CHAR_LENGTH', 'CHECK', - 'CHECK_CONSTRAINTS', - 'CHECK_EXPIRATION', - 'CHECK_POLICY', - 'CHECKALLOC', - 'CHECKCATALOG', - 'CHECKCONSTRAINTS', - 'CHECKDB', - 'CHECKFILEGROUP', - 'CHECKIDENT', 'CHECKPOINT', - 'CHECKTABLE', - 'CLASSIFIER_FUNCTION', - 'CLEANTABLE', - 'CLEANUP', - 'CLEAR', 'CLOSE', - 'CLUSTER', 'CLUSTERED', - 'CODEPAGE', + 'COALESCE', 'COLLATE', - 'COLLECTION', + 'COLLATION', 'COLUMN', - 'COLUMN_SET', - 'COLUMNS', - 'COLUMNSTORE', - 'COLUMNSTORE_ARCHIVE', 'COMMIT', - 'COMMITTED', - 'COMPATIBILITY_LEVEL', - 'COMPRESSION', 'COMPUTE', - 'CONCAT', - 'CONCAT_NULL_YIELDS_NULL', - 'CONFIGURATION', + 'CONFLICT', 'CONNECT', + 'CONNECTION', 'CONSTRAINT', - 'CONTAINMENT', - 'CONTENT', - 'CONTEXT', + 'CONSTRAINTS', + 'CONTAINS', + 'CONTAINSTABLE', 'CONTINUE', - 'CONTINUE_AFTER_ERROR', - 'CONTRACT', - 'CONTRACT_NAME', - 'CONTROL', - 'CONVERSATION', - 'COOKIE', - 'COPY_ONLY', - 'COUNTER', - 'CPU', + 'CONVERT', + 'CORRESPONDING', + 'COUNT', 'CREATE', - 'CREATE_NEW', - 'CREATION_DISPOSITION', - 'CREDENTIAL', - 'CRYPTOGRAPHIC', - 'CUBE', + 'CROSS', 'CURRENT', 'CURRENT_DATE', + 'CURRENT_TIME', + 'CURRENT_TIMESTAMP', + 'CURRENT_USER', 'CURSOR', - 'CURSOR_CLOSE_ON_COMMIT', - 'CURSOR_DEFAULT', - 'CYCLE', - 'DATA', - 'DATA_COMPRESSION', - 'DATA_PURITY', 'DATABASE', - 'DATABASE_DEFAULT', - 'DATABASE_MIRRORING', - 'DATABASE_SNAPSHOT', - 'DATAFILETYPE', 'DATE', - 'DATE_CORRELATION_OPTIMIZATION', - 'DATEFIRST', - 'DATEFORMAT', - 'DATETIME', - 'DATETIME2', - 'DATETIMEOFFSET', 'DAY', - 'DAYOFYEAR', - 'DAYS', - 'DB_CHAINING', 'DBCC', - 'DBREINDEX', - 'DDL_DATABASE_LEVEL_EVENTS', - 'DEADLOCK_PRIORITY', 'DEALLOCATE', 'DEC', 'DECIMAL', 'DECLARE', - 'DECRYPTION', 'DEFAULT', - 'DEFAULT_DATABASE', - 'DEFAULT_FULLTEXT_LANGUAGE', - 'DEFAULT_LANGUAGE', - 'DEFAULT_SCHEMA', - 'DEFINITION', - 'DELAY', - 'DELAYED_DURABILITY', + 'DEFERRABLE', + 'DEFERRED', 'DELETE', - 'DELETED', - 'DENSITY_VECTOR', 'DENY', - 'DEPENDENTS', - 'DES', 'DESC', - 'DESCRIPTION', - 'DESX', - 'DHCP', + 'DESCRIBE', + 'DESCRIPTOR', + 'DETACH', 'DIAGNOSTICS', - 'DIALOG', - 'DIFFERENTIAL', - 'DIRECTORY_NAME', - 'DISABLE', - 'DISABLE_BROKER', - 'DISABLED', + 'DISCONNECT', 'DISK', 'DISTINCT', 'DISTRIBUTED', - 'DOCUMENT', + 'DO', + 'DOMAIN', 'DOUBLE', 'DROP', - 'DROP_EXISTING', - 'DROPCLEANBUFFERS', 'DUMP', - 'DURABILITY', - 'DYNAMIC', - 'EDITION', - 'ELEMENTS', + 'EACH', 'ELSE', - 'EMERGENCY', - 'EMPTY', - 'EMPTYFILE', - 'ENABLE', - 'ENABLE_BROKER', - 'ENABLED', - 'ENCRYPTION', 'END', - 'ENDPOINT', - 'ENDPOINT_URL', + 'END-EXEC', 'ERRLVL', - 'ERROR', - 'ERROR_BROKER_CONVERSATIONS', - 'ERRORFILE', 'ESCAPE', - 'ESTIMATEONLY', - 'EVENT', - 'EVENT_RETENTION_MODE', + 'EXCEPT', + 'EXCEPTION', + 'EXCLUDE', + 'EXCLUSIVE', 'EXEC', - 'EXECUTABLE', 'EXECUTE', + 'EXISTS', 'EXIT', - 'EXPAND', - 'EXPIREDATE', - 'EXPIRY_DATE', - 'EXPLICIT', - 'EXTENDED_LOGICAL_CHECKS', - 'EXTENSION', + 'EXPLAIN', 'EXTERNAL', - 'EXTERNAL_ACCESS', - 'FAIL_OPERATION', - 'FAILOVER', - 'FAILOVER_MODE', - 'FAILURE_CONDITION_LEVEL', + 'EXTRACT', + 'FAIL', 'FALSE', - 'FAN_IN', - 'FAST', - 'FAST_FORWARD', 'FETCH', - 'FIELDTERMINATOR', 'FILE', - 'FILEGROUP', - 'FILEGROWTH', - 'FILELISTONLY', - 'FILENAME', - 'FILEPATH', - 'FILESTREAM', - 'FILESTREAM_ON', - 'FILETABLE_COLLATE_FILENAME', - 'FILETABLE_DIRECTORY', - 'FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME', - 'FILETABLE_NAMESPACE', - 'FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME', - 'FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME', 'FILLFACTOR', - 'FILTERING', - 'FIRE_TRIGGERS', + 'FILTER', 'FIRST', - 'FIRSTROW', 'FLOAT', - 'FMTONLY', 'FOLLOWING', 'FOR', - 'FORCE', - 'FORCE_FAILOVER_ALLOW_DATA_LOSS', - 'FORCE_SERVICE_ALLOW_DATA_LOSS', - 'FORCED', - 'FORCEPLAN', - 'FORCESCAN', - 'FORCESEEK', 'FOREIGN', - 'FORMATFILE', - 'FORMSOF', - 'FORWARD_ONLY', - 'FREE', - 'FREEPROCCACHE', - 'FREESESSIONCACHE', - 'FREESYSTEMCACHE', + 'FORTRAN', + 'FOUND', + 'FREETEXT', + 'FREETEXTTABLE', 'FROM', 'FULL', - 'FULLSCAN', - 'FULLTEXT', 'FUNCTION', - 'GB', - 'GEOGRAPHY_AUTO_GRID', - 'GEOGRAPHY_GRID', - 'GEOMETRY_AUTO_GRID', - 'GEOMETRY_GRID', + 'GENERATED', 'GET', + 'GLOB', 'GLOBAL', 'GO', 'GOTO', - 'GOVERNOR', 'GRANT', - 'GRIDS', 'GROUP', - 'GROUP_MAX_REQUESTS', - 'HADR', - 'HASH', - 'HASHED', + 'GROUPS', 'HAVING', - 'HEADERONLY', - 'HEALTH_CHECK_TIMEOUT', - 'HELP', - 'HIERARCHYID', - 'HIGH', - 'HINT', - 'HISTOGRAM', 'HOLDLOCK', - 'HONOR_BROKER_PRIORITY', 'HOUR', - 'HOURS', 'IDENTITY', - 'IDENTITY_INSERT', - 'IDENTITY_VALUE', 'IDENTITYCOL', + 'IDENTITY_INSERT', 'IF', - 'IGNORE_CONSTRAINTS', - 'IGNORE_DUP_KEY', - 'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX', - 'IGNORE_TRIGGERS', - 'IMAGE', + 'IGNORE', 'IMMEDIATE', - 'IMPERSONATE', - 'IMPLICIT_TRANSACTIONS', - 'IMPORTANCE', + 'IN', 'INCLUDE', - 'INCREMENT', - 'INCREMENTAL', 'INDEX', - 'INDEXDEFRAG', - 'INFINITE', - 'INFLECTIONAL', - 'INIT', - 'INITIATOR', + 'INDEXED', + 'INDICATOR', + 'INITIALLY', + 'INNER', 'INPUT', - 'INPUTBUFFER', 'INSENSITIVE', 'INSERT', - 'INSERTED', 'INSTEAD', 'INT', 'INTEGER', + 'INTERSECT', + 'INTERVAL', 'INTO', - 'IO', - 'IP', - 'ISABOUT', + 'IS', + 'ISNULL', 'ISOLATION', - 'JOB', - 'KB', - 'KEEP', - 'KEEP_CDC', - 'KEEP_NULLS', - 'KEEP_REPLICATION', - 'KEEPDEFAULTS', - 'KEEPFIXED', - 'KEEPIDENTITY', - 'KEEPNULLS', - 'KERBEROS', + 'JOIN', 'KEY', - 'KEY_SOURCE', - 'KEYS', - 'KEYSET', 'KILL', - 'KILOBYTES_PER_BATCH', - 'LABELONLY', 'LANGUAGE', 'LAST', - 'LASTROW', + 'LEADING', + 'LEFT', 'LEVEL', - 'LEVEL_1', - 'LEVEL_2', - 'LEVEL_3', - 'LEVEL_4', - 'LIFETIME', + 'LIKE', 'LIMIT', 'LINENO', - 'LIST', - 'LISTENER', - 'LISTENER_IP', - 'LISTENER_PORT', 'LOAD', - 'LOADHISTORY', - 'LOB_COMPACTION', 'LOCAL', - 'LOCAL_SERVICE_NAME', - 'LOCK_ESCALATION', - 'LOCK_TIMEOUT', - 'LOGIN', - 'LOGSPACE', - 'LOOP', - 'LOW', - 'MANUAL', - 'MARK', - 'MARK_IN_USE_FOR_REMOVAL', - 'MASTER', - 'MAX_CPU_PERCENT', - 'MAX_DISPATCH_LATENCY', - 'MAX_DOP', - 'MAX_DURATION', - 'MAX_EVENT_SIZE', - 'MAX_FILES', - 'MAX_IOPS_PER_VOLUME', - 'MAX_MEMORY', - 'MAX_MEMORY_PERCENT', - 'MAX_QUEUE_READERS', - 'MAX_ROLLOVER_FILES', - 'MAX_SIZE', - 'MAXDOP', - 'MAXERRORS', - 'MAXLENGTH', - 'MAXRECURSION', - 'MAXSIZE', - 'MAXTRANSFERSIZE', - 'MAXVALUE', - 'MB', - 'MEDIADESCRIPTION', - 'MEDIANAME', - 'MEDIAPASSWORD', - 'MEDIUM', - 'MEMBER', - 'MEMORY_OPTIMIZED', - 'MEMORY_OPTIMIZED_DATA', - 'MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT', - 'MEMORY_PARTITION_MODE', + 'LOWER', + 'MATCH', + 'MATERIALIZED', + 'MAX', 'MERGE', - 'MESSAGE', - 'MESSAGE_FORWARD_SIZE', - 'MESSAGE_FORWARDING', - 'MICROSECOND', - 'MILLISECOND', - 'MIN_CPU_PERCENT', - 'MIN_IOPS_PER_VOLUME', - 'MIN_MEMORY_PERCENT', + 'MIN', 'MINUTE', - 'MINUTES', - 'MINVALUE', - 'MIRROR', - 'MIRROR_ADDRESS', - 'MODIFY', - 'MONEY', + 'MODULE', 'MONTH', - 'MOVE', - 'MULTI_USER', - 'MUST_CHANGE', - 'NAME', - 'NANOSECOND', + 'NAMES', 'NATIONAL', - 'NATIVE_COMPILATION', + 'NATURAL', 'NCHAR', - 'NEGOTIATE', - 'NESTED_TRIGGERS', - 'NEW_ACCOUNT', - 'NEW_BROKER', - 'NEW_PASSWORD', - 'NEWNAME', 'NEXT', 'NO', - 'NO_BROWSETABLE', - 'NO_CHECKSUM', - 'NO_COMPRESSION', - 'NO_EVENT_LOSS', - 'NO_INFOMSGS', - 'NO_TRUNCATE', - 'NO_WAIT', 'NOCHECK', - 'NOCOUNT', - 'NOEXEC', - 'NOEXPAND', - 'NOFORMAT', - 'NOINDEX', - 'NOINIT', - 'NOLOCK', - 'NON', - 'NON_TRANSACTED_ACCESS', 'NONCLUSTERED', 'NONE', - 'NORECOMPUTE', - 'NORECOVERY', - 'NORESEED', - 'NORESET', - 'NOREWIND', - 'NORMAL', - 'NOSKIP', - 'NOTIFICATION', - 'NOTRUNCATE', - 'NOUNLOAD', - 'NOWAIT', - 'NTEXT', - 'NTLM', - 'NUMANODE', + 'NOT', + 'NOTHING', + 'NOTNULL', + 'NULL', + 'NULLIF', + 'NULLS', 'NUMERIC', - 'NUMERIC_ROUNDABORT', - 'NVARCHAR', - 'OBJECT', + 'OCTET_LENGTH', 'OF', 'OFF', - 'OFFLINE', 'OFFSET', 'OFFSETS', - 'OLD_ACCOUNT', - 'OLD_PASSWORD', 'ON', - 'ON_FAILURE', - 'ONLINE', 'ONLY', 'OPEN', - 'OPEN_EXISTING', - 'OPENTRAN', - 'OPTIMISTIC', - 'OPTIMIZE', + 'OPENDATASOURCE', + 'OPENQUERY', + 'OPENROWSET', + 'OPENXML', 'OPTION', + 'OR', 'ORDER', - 'OUT', + 'OTHERS', + 'OUTER', 'OUTPUT', - 'OUTPUTBUFFER', 'OVER', - 'OVERRIDE', - 'OWNER', - 'OWNERSHIP', - 'PAD_INDEX', - 'PAGE', - 'PAGE_VERIFY', - 'PAGECOUNT', - 'PAGLOCK', - 'PARAMETERIZATION', - 'PARSEONLY', + 'OVERLAPS', + 'PAD', 'PARTIAL', 'PARTITION', - 'PARTITIONS', - 'PARTNER', - 'PASSWORD', - 'PATH', - 'PER_CPU', - 'PER_NODE', + 'PASCAL', 'PERCENT', - 'PERMISSION_SET', - 'PERSISTED', - 'PHYSICAL_ONLY', + 'PIVOT', 'PLAN', - 'POISON_MESSAGE_HANDLING', - 'POOL', - 'POPULATION', - 'PORT', + 'POSITION', + 'PRAGMA', 'PRECEDING', 'PRECISION', + 'PREPARE', + 'PRESERVE', 'PRIMARY', - 'PRIMARY_ROLE', 'PRINT', 'PRIOR', - 'PRIORITY', - 'PRIORITY_LEVEL', - 'PRIVATE', 'PRIVILEGES', 'PROC', - 'PROCCACHE', 'PROCEDURE', - 'PROCEDURE_NAME', - 'PROCESS', - 'PROFILE', - 'PROPERTY', - 'PROPERTY_DESCRIPTION', - 'PROPERTY_INT_ID', - 'PROPERTY_SET_GUID', - 'PROVIDER', - 'PROVIDER_KEY_NAME', 'PUBLIC', - 'PUT', - 'QUARTER', 'QUERY', - 'QUERY_GOVERNOR_COST_LIMIT', - 'QUEUE', - 'QUEUE_DELAY', - 'QUOTED_IDENTIFIER', + 'RAISE', 'RAISERROR', 'RANGE', - 'RAW', - 'RC2', - 'RC4', - 'RC4_128', 'READ', - 'READ_COMMITTED_SNAPSHOT', - 'READ_ONLY', - 'READ_ONLY_ROUTING_LIST', - 'READ_ONLY_ROUTING_URL', - 'READ_WRITE', - 'READ_WRITE_FILEGROUPS', - 'READCOMMITTED', - 'READCOMMITTEDLOCK', - 'READONLY', - 'READPAST', 'READTEXT', - 'READUNCOMMITTED', - 'READWRITE', 'REAL', - 'REBUILD', - 'RECEIVE', - 'RECOMPILE', 'RECONFIGURE', - 'RECOVERY', 'RECURSIVE', - 'RECURSIVE_TRIGGERS', 'REFERENCES', - 'REGENERATE', - 'RELATED_CONVERSATION', - 'RELATED_CONVERSATION_GROUP', + 'REGEXP', + 'REINDEX', 'RELATIVE', - 'REMOTE', - 'REMOTE_PROC_TRANSACTIONS', - 'REMOTE_SERVICE_NAME', - 'REMOVE', - 'REORGANIZE', - 'REPAIR_ALLOW_DATA_LOSS', - 'REPAIR_FAST', - 'REPAIR_REBUILD', - 'REPEATABLE', - 'REPEATABLEREAD', - 'REPLICA', + 'RELEASE', + 'RENAME', + 'REPLACE', 'REPLICATION', - 'REQUEST_MAX_CPU_TIME_SEC', - 'REQUEST_MAX_MEMORY_GRANT_PERCENT', - 'REQUEST_MEMORY_GRANT_TIMEOUT_SEC', - 'REQUIRED', - 'RESAMPLE', - 'RESEED', - 'RESERVE_DISK_SPACE', - 'RESET', - 'RESOURCE', - 'RESTART', 'RESTORE', 'RESTRICT', - 'RESTRICTED_USER', - 'RESULT', - 'RESUME', - 'RETAINDAYS', - 'RETENTION', 'RETURN', - 'RETURNS', + 'RETURNING', 'REVERT', 'REVOKE', - 'REWIND', - 'REWINDONLY', - 'ROBUST', - 'ROLE', + 'RIGHT', 'ROLLBACK', - 'ROLLUP', - 'ROOT', - 'ROUTE', 'ROW', 'ROWCOUNT', 'ROWGUIDCOL', - 'ROWLOCK', 'ROWS', - 'ROWS_PER_BATCH', - 'ROWTERMINATOR', - 'ROWVERSION', - 'RSA_1024', - 'RSA_2048', - 'RSA_512', 'RULE', - 'SAFE', - 'SAFETY', - 'SAMPLE', 'SAVE', - 'SCHEDULER', + 'SAVEPOINT', 'SCHEMA', - 'SCHEMA_AND_DATA', - 'SCHEMA_ONLY', - 'SCHEMABINDING', - 'SCHEME', 'SCROLL', - 'SCROLL_LOCKS', - 'SEARCH', 'SECOND', - 'SECONDARY', - 'SECONDARY_ONLY', - 'SECONDARY_ROLE', - 'SECONDS', - 'SECRET', - 'SECURITY_LOG', + 'SECTION', 'SECURITYAUDIT', 'SELECT', - 'SELECTIVE', - 'SELF', - 'SEND', - 'SENT', - 'SEQUENCE', - 'SERIALIZABLE', - 'SERVER', - 'SERVICE', - 'SERVICE_BROKER', - 'SERVICE_NAME', + 'SEMANTICKEYPHRASETABLE', + 'SEMANTICSIMILARITYDETAILSTABLE', + 'SEMANTICSIMILARITYTABLE', 'SESSION', - 'SESSION_TIMEOUT', + 'SESSION_USER', 'SET', - 'SETS', 'SETUSER', - 'SHOW_STATISTICS', - 'SHOWCONTIG', - 'SHOWPLAN', - 'SHOWPLAN_ALL', - 'SHOWPLAN_TEXT', - 'SHOWPLAN_XML', - 'SHRINKDATABASE', - 'SHRINKFILE', 'SHUTDOWN', - 'SID', - 'SIGNATURE', - 'SIMPLE', - 'SINGLE_BLOB', - 'SINGLE_CLOB', - 'SINGLE_NCLOB', - 'SINGLE_USER', - 'SINGLETON', 'SIZE', - 'SKIP', - 'SMALLDATETIME', 'SMALLINT', - 'SMALLMONEY', - 'SNAPSHOT', - 'SORT_IN_TEMPDB', - 'SOURCE', - 'SPARSE', - 'SPATIAL', - 'SPATIAL_WINDOW_MAX_CELLS', - 'SPECIFICATION', - 'SPLIT', + 'SOME', + 'SPACE', 'SQL', - 'SQL_VARIANT', - 'SQLPERF', - 'STANDBY', - 'START', - 'START_DATE', - 'STARTED', - 'STARTUP_STATE', - 'STAT_HEADER', - 'STATE', - 'STATEMENT', - 'STATIC', - 'STATISTICAL_SEMANTICS', + 'SQLCA', + 'SQLCODE', + 'SQLERROR', + 'SQLSTATE', + 'SQLWARNING', 'STATISTICS', - 'STATISTICS_INCREMENTAL', - 'STATISTICS_NORECOMPUTE', - 'STATS', - 'STATS_STREAM', - 'STATUS', - 'STATUSONLY', - 'STOP', - 'STOP_ON_ERROR', - 'STOPAT', - 'STOPATMARK', - 'STOPBEFOREMARK', - 'STOPLIST', - 'STOPPED', - 'SUBJECT', - 'SUBSCRIPTION', - 'SUPPORTED', - 'SUSPEND', - 'SWITCH', - 'SYMMETRIC', - 'SYNCHRONOUS_COMMIT', - 'SYNONYM', - 'SYSNAME', - 'SYSTEM', + 'SUBSTRING', + 'SUM', + 'SYSTEM_USER', 'TABLE', - 'TABLERESULTS', 'TABLESAMPLE', - 'TABLOCK', - 'TABLOCKX', - 'TAKE', - 'TAPE', - 'TARGET', - 'TARGET_RECOVERY_TIME', - 'TB', - 'TCP', - 'TEXT', - 'TEXTIMAGE_ON', + 'TEMP', + 'TEMPORARY', 'TEXTSIZE', 'THEN', - 'THESAURUS', - 'THROW', 'TIES', 'TIME', - 'TIMEOUT', - 'TIMER', 'TIMESTAMP', - 'TINYINT', + 'TIMEZONE_HOUR', + 'TIMEZONE_MINUTE', 'TO', 'TOP', - 'TORN_PAGE_DETECTION', - 'TRACEOFF', - 'TRACEON', - 'TRACESTATUS', - 'TRACK_CAUSALITY', - 'TRACK_COLUMNS_UPDATED', + 'TRAILING', 'TRAN', 'TRANSACTION', - 'TRANSFER', - 'TRANSFORM_NOISE_WORDS', + 'TRANSLATE', + 'TRANSLATION', 'TRIGGER', - 'TRIPLE_DES', - 'TRIPLE_DES_3KEY', + 'TRIM', 'TRUE', 'TRUNCATE', - 'TRUNCATEONLY', - 'TRUSTWORTHY', - 'TRY', - 'TSQL', - 'TWO_DIGIT_YEAR_CUTOFF', - 'TYPE', - 'TYPE_WARNING', + 'TRY_CONVERT', + 'TSEQUAL', 'UNBOUNDED', - 'UNCHECKED', - 'UNCOMMITTED', - 'UNDEFINED', + 'UNION', 'UNIQUE', - 'UNIQUEIDENTIFIER', 'UNKNOWN', - 'UNLIMITED', - 'UNLOAD', - 'UNSAFE', + 'UNPIVOT', 'UPDATE', 'UPDATETEXT', - 'UPDATEUSAGE', - 'UPDLOCK', - 'URL', + 'UPPER', + 'USAGE', 'USE', - 'USED', 'USER', - 'USEROPTIONS', 'USING', - 'VALID_XML', - 'VALIDATION', + 'VACUUM', 'VALUE', 'VALUES', - 'VARBINARY', 'VARCHAR', 'VARYING', - 'VERIFYONLY', - 'VERSION', 'VIEW', - 'VIEW_METADATA', - 'VIEWS', - 'VISIBILITY', - 'WAIT_AT_LOW_PRIORITY', + 'VIRTUAL', 'WAITFOR', - 'WEEK', - 'WEIGHT', - 'WELL_FORMED_XML', 'WHEN', + 'WHENEVER', 'WHERE', 'WHILE', - 'WINDOWS', + 'WINDOW', 'WITH', - 'WITHIN', + 'WITHIN GROUP', 'WITHOUT', - 'WITNESS', 'WORK', - 'WORKLOAD', + 'WRITE', 'WRITETEXT', - 'XACT_ABORT', - 'XLOCK', - 'XMAX', - 'XMIN', - 'XML', - 'XMLDATA', - 'XMLNAMESPACES', - 'XMLSCHEMA', - 'XQUERY', - 'XSINIL', 'YEAR', - 'YMAX', - 'YMIN' + 'ZONE' ], operators: [ // Logical @@ -1326,10 +783,10 @@ export const language = { /[\w@#$]+/, { cases: { - '@keywords': 'keyword', '@operators': 'operator', '@builtinVariables': 'predefined', '@builtinFunctions': 'predefined', + '@keywords': 'keyword', '@default': 'identifier' } }