From 642d93ecfcc916228980074da4d60db56cce73a7 Mon Sep 17 00:00:00 2001 From: Michael Schmidt Date: Tue, 7 Dec 2021 12:53:21 +0100 Subject: [PATCH] N1QL: Updated keywords + minor improvements (#3229) --- components/prism-n1ql.js | 14 +++-- components/prism-n1ql.min.js | 2 +- tests/languages/n1ql/comment_feature.test | 8 ++- tests/languages/n1ql/keyword_feature.test | 70 ++++++++++++++++++++++- 4 files changed, 86 insertions(+), 8 deletions(-) diff --git a/components/prism-n1ql.js b/components/prism-n1ql.js index 4cc745d6a9..0eee0d6615 100644 --- a/components/prism-n1ql.js +++ b/components/prism-n1ql.js @@ -1,6 +1,10 @@ +// https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/index.html + Prism.languages.n1ql = { - 'comment': /\/\*[\s\S]*?(?:$|\*\/)/, - 'parameter': /\$[\w.]+/, + 'comment': { + pattern: /\/\*[\s\S]*?(?:$|\*\/)|--.*/, + greedy: true, + }, 'string': { pattern: /(["'])(?:\\[\s\S]|(?!\1)[^\\]|\1\1)*\1/, greedy: true, @@ -9,8 +13,10 @@ Prism.languages.n1ql = { pattern: /`(?:\\[\s\S]|[^\\`]|``)*`/, greedy: true, }, - 'function': /\b(?:ABS|ACOS|ARRAY_AGG|ARRAY_APPEND|ARRAY_AVG|ARRAY_CONCAT|ARRAY_CONTAINS|ARRAY_COUNT|ARRAY_DISTINCT|ARRAY_FLATTEN|ARRAY_IFNULL|ARRAY_INSERT|ARRAY_INTERSECT|ARRAY_LENGTH|ARRAY_MAX|ARRAY_MIN|ARRAY_POSITION|ARRAY_PREPEND|ARRAY_PUT|ARRAY_RANGE|ARRAY_REMOVE|ARRAY_REPEAT|ARRAY_REPLACE|ARRAY_REVERSE|ARRAY_SORT|ARRAY_STAR|ARRAY_SUM|ARRAY_SYMDIFF|ARRAY_SYMDIFFN|ARRAY_UNION|ASIN|ATAN|ATAN2|AVG|BASE64|BASE64_DECODE|BASE64_ENCODE|BITAND|BITCLEAR|BITNOT|BITOR|BITSET|BITSHIFT|BITTEST|BITXOR|CEIL|CLOCK_LOCAL|CLOCK_MILLIS|CLOCK_STR|CLOCK_TZ|CLOCK_UTC|CONTAINS|CONTAINS_TOKEN|CONTAINS_TOKEN_LIKE|CONTAINS_TOKEN_REGEXP|COS|COUNT|CURL|DATE_ADD_MILLIS|DATE_ADD_STR|DATE_DIFF_MILLIS|DATE_DIFF_STR|DATE_FORMAT_STR|DATE_PART_MILLIS|DATE_PART_STR|DATE_RANGE_MILLIS|DATE_RANGE_STR|DATE_TRUNC_MILLIS|DATE_TRUNC_STR|DECODE_JSON|DEGREES|DURATION_TO_STR|E|ENCODED_SIZE|ENCODE_JSON|EXP|FLOOR|GREATEST|HAS_TOKEN|IFINF|IFMISSING|IFMISSINGORNULL|IFNAN|IFNANORINF|IFNULL|INITCAP|ISARRAY|ISATOM|IsBitSET|ISBOOLEAN|ISNUMBER|ISOBJECT|ISSTRING|LEAST|LENGTH|LN|LOG|LOWER|LTRIM|MAX|META|MILLIS|MILLIS_TO_LOCAL|MILLIS_TO_STR|MILLIS_TO_TZ|MILLIS_TO_UTC|MILLIS_TO_ZONE_NAME|MIN|MISSINGIF|NANIF|NEGINFIF|NOW_LOCAL|NOW_MILLIS|NOW_STR|NOW_TZ|NOW_UTC|NULLIF|OBJECT_ADD|OBJECT_CONCAT|OBJECT_INNER_PAIRS|OBJECT_INNER_VALUES|OBJECT_LENGTH|OBJECT_NAMES|OBJECT_PAIRS|OBJECT_PUT|OBJECT_REMOVE|OBJECT_RENAME|OBJECT_REPLACE|OBJECT_UNWRAP|OBJECT_VALUES|PAIRS|PI|POLY_LENGTH|POSINFIF|POSITION|POWER|RADIANS|RANDOM|REGEXP_CONTAINS|REGEXP_LIKE|REGEXP_POSITION|REGEXP_REPLACE|REPEAT|REPLACE|REVERSE|ROUND|RTRIM|SIGN|SIN|SPLIT|SQRT|STR_TO_DURATION|STR_TO_MILLIS|STR_TO_TZ|STR_TO_UTC|STR_TO_ZONE_NAME|SUBSTR|SUFFIXES|SUM|TAN|TITLE|TOARRAY|TOATOM|TOBOOLEAN|TOKENS|TONUMBER|TOOBJECT|TOSTRING|TRIM|TRUNC|TYPE|UPPER|WEEKDAY_MILLIS|WEEKDAY_STR)(?=\s*\()/i, - 'keyword': /\b(?:ALL|ALTER|ANALYZE|AS|ASC|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|CONNECT|CONTINUE|CORRELATE|COVER|CREATE|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FLATTEN|FOR|FORCE|FROM|FUNCTION|GRANT|GROUP|GSI|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LAST|LEFT|LET|LETTING|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NULL|NUMBER|OBJECT|OFFSET|ON|OPTION|ORDER|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROCEDURE|PUBLIC|RAW|REALM|REDUCE|RENAME|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|SATISFIES|SCHEMA|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TO|TRANSACTION|TRIGGER|TRUNCATE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WITH|WORK|XOR)\b/i, + 'parameter': /\$[\w.]+/, + // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/reservedwords.html#n1ql-reserved-words + 'keyword': /\b(?:ADVISE|ALL|ALTER|ANALYZE|AS|ASC|AT|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|COMMITTED|CONNECT|CONTINUE|CORRELATE|CORRELATED|COVER|CREATE|CURRENT|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FILTER|FLATTEN|FLUSH|FOLLOWING|FOR|FORCE|FROM|FTS|FUNCTION|GOLANG|GRANT|GROUP|GROUPS|GSI|HASH|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|ISOLATION|JAVASCRIPT|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LANGUAGE|LAST|LEFT|LET|LETTING|LEVEL|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NL|NO|NTH_VALUE|NULL|NULLS|NUMBER|OBJECT|OFFSET|ON|OPTION|OPTIONS|ORDER|OTHERS|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PRECEDING|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROBE|PROCEDURE|PUBLIC|RANGE|RAW|REALM|REDUCE|RENAME|RESPECT|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|ROW|ROWS|SATISFIES|SAVEPOINT|SCHEMA|SCOPE|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TIES|TO|TRAN|TRANSACTION|TRIGGER|TRUNCATE|UNBOUNDED|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WINDOW|WITH|WORK|XOR)\b/i, + 'function': /\b[a-z_]\w*(?=\s*\()/i, 'boolean': /\b(?:FALSE|TRUE)\b/i, 'number': /(?:\b\d+\.|\B\.)\d+e[+\-]?\d+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i, 'operator': /[-+*\/%]|!=|==?|\|\||<[>=]?|>=?|\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\b/i, diff --git a/components/prism-n1ql.min.js b/components/prism-n1ql.min.js index e5e828daa1..97ae248231 100644 --- a/components/prism-n1ql.min.js +++ b/components/prism-n1ql.min.js @@ -1 +1 @@ -Prism.languages.n1ql={comment:/\/\*[\s\S]*?(?:$|\*\/)/,parameter:/\$[\w.]+/,string:{pattern:/(["'])(?:\\[\s\S]|(?!\1)[^\\]|\1\1)*\1/,greedy:!0},identifier:{pattern:/`(?:\\[\s\S]|[^\\`]|``)*`/,greedy:!0},function:/\b(?:ABS|ACOS|ARRAY_AGG|ARRAY_APPEND|ARRAY_AVG|ARRAY_CONCAT|ARRAY_CONTAINS|ARRAY_COUNT|ARRAY_DISTINCT|ARRAY_FLATTEN|ARRAY_IFNULL|ARRAY_INSERT|ARRAY_INTERSECT|ARRAY_LENGTH|ARRAY_MAX|ARRAY_MIN|ARRAY_POSITION|ARRAY_PREPEND|ARRAY_PUT|ARRAY_RANGE|ARRAY_REMOVE|ARRAY_REPEAT|ARRAY_REPLACE|ARRAY_REVERSE|ARRAY_SORT|ARRAY_STAR|ARRAY_SUM|ARRAY_SYMDIFF|ARRAY_SYMDIFFN|ARRAY_UNION|ASIN|ATAN|ATAN2|AVG|BASE64|BASE64_DECODE|BASE64_ENCODE|BITAND|BITCLEAR|BITNOT|BITOR|BITSET|BITSHIFT|BITTEST|BITXOR|CEIL|CLOCK_LOCAL|CLOCK_MILLIS|CLOCK_STR|CLOCK_TZ|CLOCK_UTC|CONTAINS|CONTAINS_TOKEN|CONTAINS_TOKEN_LIKE|CONTAINS_TOKEN_REGEXP|COS|COUNT|CURL|DATE_ADD_MILLIS|DATE_ADD_STR|DATE_DIFF_MILLIS|DATE_DIFF_STR|DATE_FORMAT_STR|DATE_PART_MILLIS|DATE_PART_STR|DATE_RANGE_MILLIS|DATE_RANGE_STR|DATE_TRUNC_MILLIS|DATE_TRUNC_STR|DECODE_JSON|DEGREES|DURATION_TO_STR|E|ENCODED_SIZE|ENCODE_JSON|EXP|FLOOR|GREATEST|HAS_TOKEN|IFINF|IFMISSING|IFMISSINGORNULL|IFNAN|IFNANORINF|IFNULL|INITCAP|ISARRAY|ISATOM|IsBitSET|ISBOOLEAN|ISNUMBER|ISOBJECT|ISSTRING|LEAST|LENGTH|LN|LOG|LOWER|LTRIM|MAX|META|MILLIS|MILLIS_TO_LOCAL|MILLIS_TO_STR|MILLIS_TO_TZ|MILLIS_TO_UTC|MILLIS_TO_ZONE_NAME|MIN|MISSINGIF|NANIF|NEGINFIF|NOW_LOCAL|NOW_MILLIS|NOW_STR|NOW_TZ|NOW_UTC|NULLIF|OBJECT_ADD|OBJECT_CONCAT|OBJECT_INNER_PAIRS|OBJECT_INNER_VALUES|OBJECT_LENGTH|OBJECT_NAMES|OBJECT_PAIRS|OBJECT_PUT|OBJECT_REMOVE|OBJECT_RENAME|OBJECT_REPLACE|OBJECT_UNWRAP|OBJECT_VALUES|PAIRS|PI|POLY_LENGTH|POSINFIF|POSITION|POWER|RADIANS|RANDOM|REGEXP_CONTAINS|REGEXP_LIKE|REGEXP_POSITION|REGEXP_REPLACE|REPEAT|REPLACE|REVERSE|ROUND|RTRIM|SIGN|SIN|SPLIT|SQRT|STR_TO_DURATION|STR_TO_MILLIS|STR_TO_TZ|STR_TO_UTC|STR_TO_ZONE_NAME|SUBSTR|SUFFIXES|SUM|TAN|TITLE|TOARRAY|TOATOM|TOBOOLEAN|TOKENS|TONUMBER|TOOBJECT|TOSTRING|TRIM|TRUNC|TYPE|UPPER|WEEKDAY_MILLIS|WEEKDAY_STR)(?=\s*\()/i,keyword:/\b(?:ALL|ALTER|ANALYZE|AS|ASC|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|CONNECT|CONTINUE|CORRELATE|COVER|CREATE|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FLATTEN|FOR|FORCE|FROM|FUNCTION|GRANT|GROUP|GSI|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LAST|LEFT|LET|LETTING|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NULL|NUMBER|OBJECT|OFFSET|ON|OPTION|ORDER|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROCEDURE|PUBLIC|RAW|REALM|REDUCE|RENAME|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|SATISFIES|SCHEMA|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TO|TRANSACTION|TRIGGER|TRUNCATE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WITH|WORK|XOR)\b/i,boolean:/\b(?:FALSE|TRUE)\b/i,number:/(?:\b\d+\.|\B\.)\d+e[+\-]?\d+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/%]|!=|==?|\|\||<[>=]?|>=?|\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\b/i,punctuation:/[;[\](),.{}:]/}; \ No newline at end of file +Prism.languages.n1ql={comment:{pattern:/\/\*[\s\S]*?(?:$|\*\/)|--.*/,greedy:!0},string:{pattern:/(["'])(?:\\[\s\S]|(?!\1)[^\\]|\1\1)*\1/,greedy:!0},identifier:{pattern:/`(?:\\[\s\S]|[^\\`]|``)*`/,greedy:!0},parameter:/\$[\w.]+/,keyword:/\b(?:ADVISE|ALL|ALTER|ANALYZE|AS|ASC|AT|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|COMMITTED|CONNECT|CONTINUE|CORRELATE|CORRELATED|COVER|CREATE|CURRENT|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FILTER|FLATTEN|FLUSH|FOLLOWING|FOR|FORCE|FROM|FTS|FUNCTION|GOLANG|GRANT|GROUP|GROUPS|GSI|HASH|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|ISOLATION|JAVASCRIPT|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LANGUAGE|LAST|LEFT|LET|LETTING|LEVEL|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NL|NO|NTH_VALUE|NULL|NULLS|NUMBER|OBJECT|OFFSET|ON|OPTION|OPTIONS|ORDER|OTHERS|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PRECEDING|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROBE|PROCEDURE|PUBLIC|RANGE|RAW|REALM|REDUCE|RENAME|RESPECT|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|ROW|ROWS|SATISFIES|SAVEPOINT|SCHEMA|SCOPE|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TIES|TO|TRAN|TRANSACTION|TRIGGER|TRUNCATE|UNBOUNDED|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WINDOW|WITH|WORK|XOR)\b/i,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:FALSE|TRUE)\b/i,number:/(?:\b\d+\.|\B\.)\d+e[+\-]?\d+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/%]|!=|==?|\|\||<[>=]?|>=?|\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\b/i,punctuation:/[;[\](),.{}:]/}; \ No newline at end of file diff --git a/tests/languages/n1ql/comment_feature.test b/tests/languages/n1ql/comment_feature.test index f8752fb7d9..e392709fec 100644 --- a/tests/languages/n1ql/comment_feature.test +++ b/tests/languages/n1ql/comment_feature.test @@ -2,13 +2,17 @@ /* foo bar */ +-- comment + ---------------------------------------------------- [ ["comment", "/**/"], - ["comment", "/* foo\r\nbar */"] + ["comment", "/* foo\r\nbar */"], + + ["comment", "-- comment"] ] ---------------------------------------------------- -Checks for comments. \ No newline at end of file +Checks for comments. diff --git a/tests/languages/n1ql/keyword_feature.test b/tests/languages/n1ql/keyword_feature.test index 4e9aace092..83acd3e2e0 100644 --- a/tests/languages/n1ql/keyword_feature.test +++ b/tests/languages/n1ql/keyword_feature.test @@ -1,8 +1,10 @@ +ADVISE ALL ALTER ANALYZE AS ASC +AT BEGIN BINARY BOOLEAN @@ -16,11 +18,14 @@ CLUSTER COLLATE COLLECTION COMMIT +COMMITTED CONNECT CONTINUE CORRELATE +CORRELATED COVER CREATE +CURRENT DATABASE DATASET DATASTORE @@ -40,14 +45,21 @@ EXCLUDE EXECUTE EXPLAIN FETCH +FILTER FLATTEN +FLUSH +FOLLOWING FOR FORCE FROM +FTS FUNCTION +GOLANG GRANT GROUP +GROUPS GSI +HASH HAVING IF IGNORE @@ -62,15 +74,19 @@ INSERT INTERSECT INTO IS +ISOLATION +JAVASCRIPT JOIN KEY KEYS KEYSPACE KNOWN +LANGUAGE LAST LEFT LET LETTING +LEVEL LIMIT LSM MAP @@ -82,13 +98,19 @@ MINUS MISSING NAMESPACE NEST +NL +NO +NTH_VALUE NULL +NULLS NUMBER OBJECT OFFSET ON OPTION +OPTIONS ORDER +OTHERS OUTER OVER PARSE @@ -96,24 +118,32 @@ PARTITION PASSWORD PATH POOL +PRECEDING PREPARE PRIMARY PRIVATE PRIVILEGE +PROBE PROCEDURE PUBLIC +RANGE RAW REALM REDUCE RENAME +RESPECT RETURN RETURNING REVOKE RIGHT ROLE ROLLBACK +ROW +ROWS SATISFIES +SAVEPOINT SCHEMA +SCOPE SELECT SELF SEMI @@ -124,10 +154,13 @@ START STATISTICS STRING SYSTEM +TIES TO +TRAN TRANSACTION TRIGGER TRUNCATE +UNBOUNDED UNDER UNION UNIQUE @@ -146,6 +179,7 @@ VIA VIEW WHERE WHILE +WINDOW WITH WORK XOR @@ -153,11 +187,13 @@ XOR ---------------------------------------------------- [ + ["keyword", "ADVISE"], ["keyword", "ALL"], ["keyword", "ALTER"], ["keyword", "ANALYZE"], ["keyword", "AS"], ["keyword", "ASC"], + ["keyword", "AT"], ["keyword", "BEGIN"], ["keyword", "BINARY"], ["keyword", "BOOLEAN"], @@ -171,11 +207,14 @@ XOR ["keyword", "COLLATE"], ["keyword", "COLLECTION"], ["keyword", "COMMIT"], + ["keyword", "COMMITTED"], ["keyword", "CONNECT"], ["keyword", "CONTINUE"], ["keyword", "CORRELATE"], + ["keyword", "CORRELATED"], ["keyword", "COVER"], ["keyword", "CREATE"], + ["keyword", "CURRENT"], ["keyword", "DATABASE"], ["keyword", "DATASET"], ["keyword", "DATASTORE"], @@ -195,14 +234,21 @@ XOR ["keyword", "EXECUTE"], ["keyword", "EXPLAIN"], ["keyword", "FETCH"], + ["keyword", "FILTER"], ["keyword", "FLATTEN"], + ["keyword", "FLUSH"], + ["keyword", "FOLLOWING"], ["keyword", "FOR"], ["keyword", "FORCE"], ["keyword", "FROM"], + ["keyword", "FTS"], ["keyword", "FUNCTION"], + ["keyword", "GOLANG"], ["keyword", "GRANT"], ["keyword", "GROUP"], + ["keyword", "GROUPS"], ["keyword", "GSI"], + ["keyword", "HASH"], ["keyword", "HAVING"], ["keyword", "IF"], ["keyword", "IGNORE"], @@ -217,15 +263,19 @@ XOR ["keyword", "INTERSECT"], ["keyword", "INTO"], ["keyword", "IS"], + ["keyword", "ISOLATION"], + ["keyword", "JAVASCRIPT"], ["keyword", "JOIN"], ["keyword", "KEY"], ["keyword", "KEYS"], ["keyword", "KEYSPACE"], ["keyword", "KNOWN"], + ["keyword", "LANGUAGE"], ["keyword", "LAST"], ["keyword", "LEFT"], ["keyword", "LET"], ["keyword", "LETTING"], + ["keyword", "LEVEL"], ["keyword", "LIMIT"], ["keyword", "LSM"], ["keyword", "MAP"], @@ -237,13 +287,19 @@ XOR ["keyword", "MISSING"], ["keyword", "NAMESPACE"], ["keyword", "NEST"], + ["keyword", "NL"], + ["keyword", "NO"], + ["keyword", "NTH_VALUE"], ["keyword", "NULL"], + ["keyword", "NULLS"], ["keyword", "NUMBER"], ["keyword", "OBJECT"], ["keyword", "OFFSET"], ["keyword", "ON"], ["keyword", "OPTION"], + ["keyword", "OPTIONS"], ["keyword", "ORDER"], + ["keyword", "OTHERS"], ["keyword", "OUTER"], ["keyword", "OVER"], ["keyword", "PARSE"], @@ -251,24 +307,32 @@ XOR ["keyword", "PASSWORD"], ["keyword", "PATH"], ["keyword", "POOL"], + ["keyword", "PRECEDING"], ["keyword", "PREPARE"], ["keyword", "PRIMARY"], ["keyword", "PRIVATE"], ["keyword", "PRIVILEGE"], + ["keyword", "PROBE"], ["keyword", "PROCEDURE"], ["keyword", "PUBLIC"], + ["keyword", "RANGE"], ["keyword", "RAW"], ["keyword", "REALM"], ["keyword", "REDUCE"], ["keyword", "RENAME"], + ["keyword", "RESPECT"], ["keyword", "RETURN"], ["keyword", "RETURNING"], ["keyword", "REVOKE"], ["keyword", "RIGHT"], ["keyword", "ROLE"], ["keyword", "ROLLBACK"], + ["keyword", "ROW"], + ["keyword", "ROWS"], ["keyword", "SATISFIES"], + ["keyword", "SAVEPOINT"], ["keyword", "SCHEMA"], + ["keyword", "SCOPE"], ["keyword", "SELECT"], ["keyword", "SELF"], ["keyword", "SEMI"], @@ -279,10 +343,13 @@ XOR ["keyword", "STATISTICS"], ["keyword", "STRING"], ["keyword", "SYSTEM"], + ["keyword", "TIES"], ["keyword", "TO"], + ["keyword", "TRAN"], ["keyword", "TRANSACTION"], ["keyword", "TRIGGER"], ["keyword", "TRUNCATE"], + ["keyword", "UNBOUNDED"], ["keyword", "UNDER"], ["keyword", "UNION"], ["keyword", "UNIQUE"], @@ -301,6 +368,7 @@ XOR ["keyword", "VIEW"], ["keyword", "WHERE"], ["keyword", "WHILE"], + ["keyword", "WINDOW"], ["keyword", "WITH"], ["keyword", "WORK"], ["keyword", "XOR"] @@ -308,4 +376,4 @@ XOR ---------------------------------------------------- -Checks for all keywords. \ No newline at end of file +Checks for all keywords.