UNPKG

monaco-sql-languages

Version:

SQL languages for the Monaco Editor, based on monaco-languages.

1,050 lines (1,049 loc) 29.6 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { TokenClassConsts } from '../../common/constants'; export const conf = { comments: { lineComment: '--', blockComment: ['/*', '*/'] }, brackets: [ ['{', '}'], ['[', ']'], ['(', ')'] ], autoClosingPairs: [ { open: '{', close: '}' }, { open: '[', close: ']' }, { open: '(', close: ')' }, { open: '"', close: '"' }, { open: "'", close: "'" } ], surroundingPairs: [ { open: '{', close: '}' }, { open: '[', close: ']' }, { open: '(', close: ')' }, { open: '"', close: '"' }, { open: "'", close: "'" } ] }; export const language = { defaultToken: '', tokenPostfix: '.sql', ignoreCase: true, brackets: [ { open: '[', close: ']', token: TokenClassConsts.DELIMITER_SQUARE }, { open: '(', close: ')', token: TokenClassConsts.DELIMITER_PAREN }, { open: '{', close: '}', token: TokenClassConsts.DELIMITER_CURLY } ], keywords: [ 'ALL', 'ANALYSE', 'ANALYZE', 'AND', 'ANY', 'ARRAY', 'AS', 'ASC', 'ASYMMETRIC', 'AUTHORIZATION', 'BINARY', 'BOTH', 'CASE', 'CAST', 'CHECK', 'COLLATE', 'COLLATION', 'COLUMN', 'CONCURRENTLY', 'CONSTRAINT', 'CREATE', 'CROSS', 'CURRENT_CATALOG', 'CURRENT_DATE', 'CURRENT_ROLE', 'CURRENT_SCHEMA', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER', 'DEFAULT', 'DEFERRABLE', 'DESC', 'DISTINCT', 'DO', 'ELSE', 'END', 'EXCEPT', 'FALSE', 'FETCH', 'FOR', 'FOREIGN', 'FREEZE', 'FROM', 'FULL', 'GRANT', 'GROUP', 'HAVING', 'ILIKE', 'IN', 'INITIALLY', 'INNER', 'INTERSECT', 'INTO', 'IS', 'ISNULL', 'JOIN', 'LATERAL', 'LEADING', 'LEFT', 'LIKE', 'LIMIT', 'LOCALTIME', 'LOCALTIMESTAMP', 'NATURAL', 'NOT', 'NOTNULL', 'NULL', 'OFFSET', 'ON', 'ONLY', 'OR', 'ORDER', 'OUTER', 'OVERLAPS', 'PLACING', 'PRIMARY', 'REFERENCES', 'RETURNING', 'RIGHT', 'SELECT', 'SESSION_USER', 'SIMILAR', 'SOME', 'SYMMETRIC', 'TABLE', 'TABLESAMPLE', 'THEN', 'TO', 'TRAILING', 'TRUE', 'UNION', 'UNIQUE', 'USER', 'USING', 'VARIADIC', 'VERBOSE', 'WHEN', 'WHERE', 'WINDOW', 'WITH', // part of non-reserved keywords which is common 'ADD', 'AGGREGATE', 'BY', 'CLUSTER', 'COMMENT', 'DATABASE', 'DELETE', 'DROP', 'EXECUTE', 'EXPLAIN', 'FUNCTION', 'GRANTED', 'IF', 'INDEX', 'INSERT', 'KEY', 'LOAD', 'LOCATION', 'LOCK', 'LOCKED', 'LOGGED', 'MATCH', 'MOVE', 'PARTITION', 'PREPARE', 'PRIVILEGES', 'RANGE', 'READ', 'REASSIGN', 'REFERENCING', 'REFRESH', 'REINDEX', 'RELATIVE', 'RELEASE', 'RENAME', 'REPLACE', 'RESET', 'RETURNS', 'REVOKE', 'ROLE', 'ROLLBACK', 'ROLLUP', 'ROUTINE', 'ROWS', 'RULE', 'SCHEMA', 'SEARCH', 'SET', 'SHOW', 'STORED', 'SUBSCRIPTION', 'TABLES', 'TRANSACTION', 'TRIGGER', 'TRUNCATE', 'UPDATE', 'VALUE', 'VIEW' ], operators: [ // Logical Operators: https://www.postgresql.org/docs/16/functions-logical.html 'AND', 'OR', 'NOT', // Comparison Predicates: https://www.postgresql.org/docs/16/functions-comparison.html 'BETWEEN', 'IS', 'ISNULL', 'NOTNULL', 'NULL', 'TRUE', 'FALSE', // Pattern Matching: https://www.postgresql.org/docs/16/functions-matching.html 'LIKE', 'SIMILAR', 'TO', // https://www.postgresql.org/docs/16/functions-datetime.html 'OVERLAPS', // Grouping Operations:https://www.postgresql.org/docs/16/functions-aggregate.html 'GROUPING', // Subquery Expressions: https://www.postgresql.org/docs/16/functions-subquery.html 'EXISTS', 'IN', 'SOME', 'ALL', 'DISTINCT' ], builtinFunctions: [ // Comparison Functions: https://www.postgresql.org/docs/16/functions-comparison.html 'NUM_NONNULLS', 'NUM_NULLS', // Mathematical Functions:https://www.postgresql.org/docs/16/functions-math.html 'ABS', 'CBRT', 'CEIL', 'CEILING', 'DEGREES', 'DIV', 'ERF', 'ERFC', 'EXP', 'FACTORIAL', 'FLOOR', 'GCD', 'LCM', 'LN', 'LOG', 'LOG10', 'MIN_SCALE', 'MOD', 'PI', 'POWER', 'RADIANS', 'ROUND', 'SCALE', 'SIGN', 'SQRT', 'TRIM_SCALE', 'TRUNC', 'WIDTH_BUCKET', // Random Functions 'RANDOM', 'RANDOM_NORMAL', 'SETSEED', // Trigonometric Functions 'ACOS', 'ACOSD', 'ASIN', 'ASIND', 'ATAN', 'ATAND', 'ATAN2', 'ATAN2D', 'COS', 'COSD', 'COT', 'COTD', 'SIN', 'SIND', 'TAN', 'TAND', // Hyperbolic Functions 'SINH', 'COSH', 'TANH', 'ASINH', 'ACOSH', 'ATANH', // SQL String Functions: https://www.postgresql.org/docs/16/functions-string.html 'BTRIM', 'BIT_LENGTH', 'CHAR_LENGTH', 'CHARACTER_LENGTH', 'LOWER', 'LPAD', 'LTRIM', 'NORMALIZE', 'OCTET_LENGTH', 'OVERLAY', 'POSITION', 'RPAD', 'RTRIM', 'SUBSTRING', 'TRIM', 'UPPER', // Other String Functions 'ASCII', 'CHR', 'CONCAT', 'CONCAT_WS', 'FORMAT', 'INITCAP', 'LEFT', 'LENGTH', 'MD5', 'PARSE_IDENT', 'PG_CLIENT_ENCODING', 'QUOTE_IDENT', 'QUOTE_LITERAL', 'QUOTE_NULLABLE', 'REGEXP_COUNT', 'REGEXP_INSTR', 'REGEXP_LIKE', 'REGEXP_MATCH', 'REGEXP_MATCHS', 'REGEXP_REPLACE', 'REGEXP_SPLIT_TO_ARRAY', 'REGEXP_SPLIT_TO_TABLE', 'REGEXP_SUBSTR', 'REPEAT', 'REPLACE', 'REVERSE', 'RIGHT', 'SPLIT_PART', 'STARTS_WITH', 'STRING_TO_ARRAY', 'STRING_TO_TABLE', 'STRPOS', 'SUBSTR', 'TO_ASCII', 'TO_HEX', 'TRANSLATE', 'UNISTR', // format 'FORMAT', // Binary String Functions:https://www.postgresql.org/docs/16/functions-binarystring.html 'BIT_COUNT', 'GET_BIT', 'GET_BYTE', 'SET_BIT', 'SET_BYTE', 'SHA224', 'SHA256', 'SHA384', 'SHA512', // Text/Binary String Conversion Functions 'CONVERT', 'CONVERT_FROM', 'CONVERT_TO', 'ENCODE', 'DECODE', // Data Type Formatting Functions :https://www.postgresql.org/docs/16/functions-formatting.html 'TO_CHAR', 'TO_DATE', 'TO_NUMBER', 'TO_TIMESTAMP', // Date/Time Functions: https://postgresql.org/docs/16/functions-datetime.html 'AGE', 'CLOCK_TIMESTAMP', 'CURRENT_DATE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'DATE_ADD', 'DATE_BIN', 'DATE_PART', 'DATE_SUBTRACT', 'DATE_TRUNC', 'EXTRACT', 'ISFINITE', 'JUSTIFY_DAYS', 'JUSTIFY_HOURS', 'JUSTIFY_INTERVAL', 'LOCALTIME', 'LOCALTIMESTAMP', 'MAKE_DATE', 'MAKE_INTERVAL', 'MAKE_TIME', 'MAKE_TIMESTAMP', 'MAKE_TIMESTAMPTZ', 'NOW', 'STATEMENT_TIMESTAMP', 'TIMEOFDAY', 'TRANSACTION_TIMESTAMP', 'TO_TIMESTAMP', // Delaying Execution 'PG_SLEEP', 'PG_SLEEP_FOR', 'PG_SLEEP_UNTIL', // Enum Support Functions: https://www.postgresql.org/docs/16/functions-enum.html 'ENUM_FIRST', 'ENUM_LAST', 'ENUM_RANGE', // Geometric Functions: https://www.postgresql.org/docs/16/functions-geometry.html 'AREA', 'CENTER', 'DIAGONAL', 'DIAMETER', 'HEIGHT', 'ISCLOSED', 'ISOPEN', 'NPOINTS', 'PCLOSE', 'POPEN', 'RADIUS', 'SLOPE', 'WIDTH', // Geometric Type Conversion Functions 'BOX', 'BOUND_BOX', 'CIRCLE', 'LINE', 'LSEG', 'PATH', 'POINT', 'POLYGON', // IP Address Functions: https://www.postgresql.org/docs/16/functions-net.html 'ABBREV', 'BROADCAST', 'FAMILY', 'HOST', 'HOSTMASK', 'INET_MERGE', 'INET_SAME_FAMILY', 'MASKLEN', 'NETMASK', 'NETWORK', 'SET_MASKLEN', 'TEXT', // MAC Address Functions 'MACADDR8_SET7BIT', // Text Search Functions:https://www.postgresql.org/docs/16/functions-textsearch.html 'ARRAY_TO_TSVECTOR', 'GET_CURRENT_TS_CONFIG', 'NUMNODE', 'PLAINTO_TSQUERY', 'PHRASETO_TSQURY', 'WEBSEARCH_TO_TSQUERY', 'QUERYTREE', 'SETWEIGHT', 'STRIP', 'TO_TSQUERY', 'TO_TSVECTOR', 'JSON_TO_TSVECTOR', 'TS_DELETE', 'TS_FILTER', 'TS_HEADLINE', 'TS_RANK', 'TS_RANK_CD', 'TS_REWRITE', 'TSQUERY_PHRASE', 'TSVECTOR_TO_ARRAY', 'UNNEST', // Text Search Debugging Functions 'TS_DEBUG', 'TS_LEXIZE', 'TS_PARSE', 'TS_TOKEN_TYPE', 'TS_STAT', // UUID Functions: https://www.postgresql.org/docs/16/functions-uuid.html 'GEN_RANDOM_UUID', // XML Functions: https://www.postgresql.org/docs/16/functions-xml.html 'XMLCOMMENT', 'XMLCONCAT', 'XMLELEMENT', 'XMLFOREST', 'XMLPI', 'XMLROOT', 'XMLAGG', 'XMLEXISTS', 'XML_IS_WELL_FORMED', 'XPATH', 'XPATH_EXISTS', 'XMLTABLE', 'TABLE_TO_XML', 'QUERY_TO_XML', 'CURSOR_TO_XML', 'TABLE_TO_XMLSCHEMA', 'QUERY_TO_XMLSCHEMA', 'CURSOR_TO_XMLSCHEMA', 'TABLE_TO_XML_AND_XMLSCHEMA', 'QUERY_TO_XML_AND_XMLSCHEMA', 'CURSOR_TO_XML_AND_XMLSCHEMA', 'SCHEMA_TO_XML', 'SCHEMA_TO_XMLSCHEMA', 'SCHEMA_TO_XML_AND_XMLSCHEMA', 'DATABSE_TO_XML', 'DATABSE_TO_XMLSCHEMA', 'DATABSE_TO_XML_AND_XMLSCHEMA', 'XMLPARSE', // JSON Functions and Operators: https://www.postgresql.org/docs/16/functions-json.html 'TO_JSON', 'TO_JSONB', 'ARRAY_TO_JSON', 'JSON_ARRAY', 'ROW_TO_JSON', 'JSON_BUILD_ARRAY', 'JSONB_BUILD_ARRAY', 'JSON_OBJECT', 'JSONB_OBJECT', 'JSON_ARRAY_ELEMENTS', 'JSONB_ARRAY_ELEMENTS', 'JSON_ARRAY_ELEMENTS_TEXT', 'JSONB_ARRAY_ELEMENTS_TEXT', 'JSON_ARRAY_LENGTH', 'JSONB_ARRAY_LENGTH', 'JSON_EACH', 'JSONB_EACH', 'JSON_EACH_TEXT', 'JSONB_EACH_TEXT', 'JSON_EXTRACT_PATH', 'JSONB_EXTRACT_PATH', 'JSON_EXTRACT_PATH_TEXT', 'JSONB_EXTRACT_PATH_TEXT', 'JSON_OBJECT_KEYS', 'JSONB_OBJECT_KEYS', 'JSON_POPULATE_RECORD', 'JSONB_POPULATE_RECORD', 'JSON_POPULATE_RECORDSET', 'JSONB_POPULATE_RECORDSET', 'JSON_TO_RECORD', 'JSONB_TO_RECORD', 'JSON_TO_RECORDSET', 'JSONB_TO_RECORDSET', 'JSONB_SET', 'JSONB_SET_LAX', 'JSONB_INSERT', 'JSON_STRIP_NULLS', 'JSONB_STRIP_NULLS', 'JSONB_PATH_EXISTS', 'JSONB_PATH_MATCH', 'JSONB_PATH_QUERY', 'JSONB_PATH_QUERY_ARRAY', 'JSONB_PATH_QUERY_FIRST', 'JSONB_PATH_EXISTS_TZ', 'JSONB_PATH_MATCH_TZ', 'JSONB_PATH_QUERY_TZ', 'JSONB_PATH_QUERY_ARRAY_TZ', 'JSONB_PATH_QUERY_FIRST_TZ', 'JSONB_PRETTY', 'JSONB_TYPEOF', 'JSON_TYPEOF', 'TYPE', 'SIZE', 'DOUBLE', 'DATETIME', 'KEYVALUE', // Sequence Manipulation Functions:https://www.postgresql.org/docs/16/functions-sequence.html 'NEXTVAL', 'SETVAL', 'CURRVAL', 'LASTVAL', // https://www.postgresql.org/docs/16/functions-conditional.html 'COALESCE', 'NULLIF', 'GREATEST', 'LEAST', // https://www.postgresql.org/docs/16/functions-array.html 'ARRAY_APPEND', 'ARRAY_CAT', 'ARRAY_DIMS', 'ARRAY_FILL', 'ARRAY_LENGTH', 'ARRAY_LOWER', 'ARRAY_NDIMS', 'ARRAY_POSITION', 'ARRAY_POSITIONS', 'ARRAY_PREPEND', 'ARRAY_REMOVE', 'ARRAY_REPLACE', 'ARRAY_SAMPLE', 'ARRAY_SHUFFLE', 'ARRAY_TO_STRING', 'ARRAY_UPPER', 'CARDINALITY', 'TRIM_ARRAY', 'UNNEST', // Range Functions: https://www.postgresql.org/docs/16/functions-range.html 'ISEMPTY', 'LOWER_INC', 'UPPER_INC', 'LOWER_INF', 'UPPER_INF', 'RANGE_MERGE', 'MULTIRANGE', // Aggregate Functions: https://www.postgresql.org/docs/16/functions-aggregate.html 'ANY_VALUE', 'ARRAY_AGG', 'AVG', 'BIT_AND', 'BIT_OR', 'BIT_XOR', 'BOOL_AND', 'BOOL_OR', 'EVERY', 'JSON_AGG', 'JSONB_AGG', 'JSON_OBJECT_AGG', 'JSONB_OBJECT_AGG', 'JSON_OBJECT_AGG_STRICT', 'JSONB_OBJECT_AGG_STRICT', 'JSON_OBJECT_AGG_UNIQUE', 'JSONB_OBJECT_AGG_UNIQUE', 'JSON_OBJECT_AGG_UNIQUE_STRICT', 'JSONB_OBJECT_AGG_UNIQUE_STRICT', 'MAX', 'MIN', 'RANGE_AGG', 'RANGE_INTERSECT_AGG', 'JSON_AGG_STRICT', 'JSONB_AGG_STRICT', 'STRING_AGG', 'SUM', 'XMLAGG', 'CORR', 'COVAR_POP', 'COVAR_SAMP', 'REGR_AVGX', 'REGR_AVGY', 'REGR_COUNT', 'REGR_INTERCEPT', 'REGR_R2', 'REGR_SLOPE', 'REGR_SXX', 'REGR_SXY', 'REGR_SYY', 'STDDEV', 'STDDEV_POP', 'STDDEV_SAMP', 'VARIANCE', 'VAR_POP', 'VAR_SAMP', 'PERCENTILE_CONT', 'PERCENTILE_DISC', 'RANK', 'SENSE_RANK', 'PERCENT_RANK', 'CUME_DIST', // Window Functions: https://www.postgresql.org/docs/16/functions-window.html 'ROW_NUMBER', 'DENSE_RANK', 'NTILE', 'LAG', 'LEAD', 'FIRST_VALUE', 'LAST_VALUE', 'NTH_VALUE', // Set Returning Functions:https://www.postgresql.org/docs/16/functions-srf.html 'GENERATE_SERIES', 'GENERATE_SUBSCRIPTS', // Session Information Functions:https://www.postgresql.org/docs/16/functions-info.html 'CURRENT_CATALOG', 'CURRENT_DATABASE', 'CURRENT_QUERY', 'CURRENT_ROLE', 'CURRENT_SCHEMA', 'CURRENT_SCHEMAS', 'CURRENT_USER', 'INET_CLIENT_ADDR', 'INET_CLIENT_PORT', 'INET_SERVER_ADDR', 'INET_SERVER_PORT', 'PG_BACKEND_PID', 'PG_BLOCKING_PIDS', 'PG_CONF_LOAD_TIME', 'PG_CURRENT_LOGFILE', 'PG_MY_TEMP_SCHEMA', 'PG_IS_OTHER_TEMP_SCHEMA', 'PG_JIT_AVAILABLE', 'PG_LISTENING_CHANNELS', 'PG_NOTIFICATION_QUEUE_USAGE', 'PG_POSTMASTER_START_TIME', 'PG_SAFE_SNAPSHOT_BLOCKING_PIDS', 'PG_TRIGGER_DEPTH', 'SESSION_USER', 'SYSTEM_USER', 'USER', 'VERSION', 'HAS_TABLE_PRIVILEGE', 'HAS_ANY_COLUMN_PRIVILEGE', 'HAS_COLUMN_PRIVILEGE', 'HAS_DATABASE_PRIVILEGE', 'HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE', 'HAS_FUNCTION_PRIVILEGE', 'HAS_LANGUAGE_PRIVILEGE', 'HAS_PARAMETER_PRIVILEGE', 'HAS_SCHEMA_PRIVILEGE', 'HAS_SEQUENCE_PRIVILEGE', 'HAS_SERVER_PRIVILEGE', 'HAS_TABLE_PRIVILEGE', 'HAS_TABLESPACE_PRIVILEGE', 'HAS_TYPE_PRIVILEGE', 'PG_HAS_ROLE', 'ROW_SECURITY_ACTIVE', // aclitem Functions 'ACLDEFAULT', 'ACLEXPLODE', 'MAKEACLITEM', // Schema Visibility Inquiry Functions 'PG_COLLACTION_IS_VISIBLE', 'PG_CONVERSION_IS_VISIBLE', 'PG_FUNCTION_IS_VISIBLE', 'PG_OPCLASS_IS_VISIBLE', 'PG_OPERATOR_IS_VISIBLE', 'PG_OPFAMILY_IS_VISIBLE', 'PG_STATISTICS_OBJ_IS_VISIBLE', 'PG_TABLE_IS_VISIBLE', 'PG_TS_CONFIG_IS_VISIBLE', 'PG_TS_DICT_IS_VISIBLE', 'PG_TS_PARSER_IS_VISIBLE', 'PG_TS_TEMPLATE_IS_VISIBLE', 'PG_TYPE_IS_VISIBLE', 'FORMAT_TYPE', 'PG_CHAR_TO_ENCODING', 'PG_ENCODING_TO_CHAR', 'PG_GET_CATALOG_FOREIGN_KEYS', 'PG_GET_CONSTRAINTDEF', 'PG_GET_EXPR', 'PG_GET_FUNCTIONDEF', 'PG_GET_FUNCTION_ARGUMENTS', 'PG_GET_FUNCTION_IDENTIFY_ARGUMENTS', 'PG_GET_FUNCTION_RESULT', 'PG_GET_KEYWORDS', 'PG_GET_PARTKEYDEF', 'PG_GET_RULEDEF', 'PG_GET_SERIAL_SEQUENCE', 'PG_GET_STATISTICSOBJDEF', 'PG_GET_TRIGGERDEF', 'PG_GET_USERBYID', 'PG_GET_VIEWDEF', 'PG_INDEX_COLUMN_HAS_PROPERTY', 'PG_INDEX_HAS_PROPERTY', 'PG_INDEXAM_HAS_PROPERTY', 'PG_OPTIONS_TO_TABLE', 'PG_SETTINGS_GET_FLAGS', 'PG_TABLESPACE_DATABASES', 'PG_TABLESPACE_LOCATION', 'PG_TYPEOF', 'TO_REGCLASS', 'TO_REGCOLLATION', 'TO_REGNAMESPACE', 'TO_REGOPER', 'TO_REGOPERATOR', 'TO_REGPROC', 'TO_REGPROCEDURE', 'TO_REGROLE', 'TO_REGTYPE', // Object Information and Addressing Functions 'PG_DESCRIBE_OBJECT', 'PG_IDENTIFY_OBJECT', 'PG_IDENTIFY_OBJECT_AS_ADDRESS', 'PG_GET_OBJECT_ADDRESS', // Comment Information Functions 'COL_DESCRIPTION', 'OBJ_DESCRIPTION', 'SHOBJ_DESCRIPTION', // Data Validity Checking Functions 'PG_INPUT_IS_VALID', 'PG_INPUT_ERROR_INFO', // Transaction ID and Snapshot Information Functions 'PG_CURRENT_XACT_ID', 'PG_CURRENT_XACT_ID_IF_ASSIGNED', 'PG_XACT_STATUS', 'PG_SNAPSHOT_XIP', 'PG_CURRENT_SNAPSHOT', 'PG_SNAPSHOT_XMAX', 'PG_SNAPSHOT_XMIN', 'PG_VISIBLE_IN_SNAPSHOT', // Deprecated Transaction ID and Snapshot Information Functions 'TXID_CURRENT', 'TXID_CURRENT_IF_ASSIGNED', 'TXID_CURRENT_SNAPSHOT', 'TXID_SNAPSHOT_XIP', 'TXID_SNAPSHOT_XMAX', 'TXID_SNAPSHOT_XMIN', 'TXID_VISIBLE_IN_SNAPSHOT', 'TXID_STATUS', // Committed Transaction Information Functions 'PG_XACT_COMMIT_TIMESTAMP', 'PG_XACT_COMMIT_TIMESTAMP_ORIGIN', 'PG_LAST_COMMITED_XACT', // Control Data Functions 'PG_CONTROL_CHECKPOINT', 'PG_CONTROL_SYSTEM', 'PG_CONTROL_INIT', 'PG_CONTROL_RECOVERY', // System Administration Functions:https://www.postgresql.org/docs/16/functions-admin.html 'CURRENT_SETTING', 'SET_CONFIG', 'PG_CANCEL_BACKEND', 'PG_LOG_BACKEND_MEMORY_CONTEXTS', 'PG_RELOAD_CONF', 'PG_ROTATE_LOGFILE', 'PG_TERMINATE_BACKEND', // Backup Control Functions 'PG_CREATE_RESTORE_POINT', 'PG_CURRENT_WAL_FLUSH_LSN', 'PG_CURRENT_WAL_LSN', 'PG_BACKUP_START', 'PG_BACKUP_STOP', 'PG_SWITCH_WAL', 'PG_WALFILE_NAME', 'PG_WALFILE_NAME_OFFSET', 'PG_SPLIT_WALFILE_NAME', 'PG_WAL_LSN_DIFF', // Recovery Control Functions 'PG_IS_IN_RECOVERY', 'PG_LAST_WAL_REPLAY_LSN', 'PG_LAST_XACT_REPLAY_TIMESTAMP', 'PG_GET_WAL_RESOURCE_MANAGERS', 'PG_IS_WAL_REPLAY_PAUSED', 'PG_GET_WAL_REPLAY_PAUSE_STATE', 'PG_PROMOTE', 'PG_WAL_REPLAY_PAUSE', 'PG_WAL_REPLAY_RESUME', // Snapshot Synchronization Functions 'PG_EXPORT_SNAPSHOT', 'PG_LOG_STANDBY_SNAPSHOT', // Replication Management Functions 'PG_CREATE_PHYSICAL_REPLICATION_SLOT', 'PG_DROP_REPLICATION_SLOT', 'PG_CREATE_LOGICAL_REPLICATION_SLOT', 'PG_COPY_PHYSICAL_REPLICATION_SLOT', 'PG_COPY_LOGICAL_REPLICATION_SLOT', 'PG_LOGICAL_SLOT_GET_CHANGES', 'PG_LOGICAL_SLOT_PEEK_CHANGES', 'PG_LOGICAL_SLOT_GET_BINARY_CHANGES', 'PG_LOGICAL_SLOT_PEEK_BINARY_CHANGES', 'PG_REPLICATION_SLOT_ADVANCE', 'PG_REPLICATION_ORIGIN_CREATE', 'PG_REPLICATION_ORIGIN_DROP', 'PG_REPLICATION_ORIGIN_OID', 'PG_REPLICATION_ORIGIN_SESSION_SETUP', 'PG_REPLICATION_ORIGIN_SESSION_RESET', 'PG_REPLICATION_ORIGIN_SESSION_IS_SETUP', 'PG_REPLICATION_ORIGIN_SESSION_PROGRESS', 'PG_REPLICATION_ORIGIN_XACT_SETUP', 'PG_REPLICATION_ORIGIN_XACT_RESET', 'PG_REPLICATION_ORIGIN_ADVANCE', 'PG_REPLICATION_ORIGIN_PROGRESS', 'PG_LOGICAL_EMIT_MESSAGE', // Database Object Management Functions 'PG_COLUMN_SIZE', 'PG_COLUMN_COMPRESSION', 'PG_DATABASE_SIZE', 'PG_INDEXES_SIZE', 'PG_RELATION_SIZE', 'PG_SIZE_BYTES', 'PG_SIZE_PRETTY', 'PG_TABLE_SIZE', 'PG_TABLESPACE_SIZE', 'PG_TOTAL_RELATION_SIZE', // Database Object Location Functions 'PG_RELATION_FILENODE', 'PG_RELATION_FILEPATH', 'PG_FILENODE_RELATION', // Collation Management Functions 'PG_COLLATION_ACTUAL_VERSION', 'PG_DATABASE_COLLATION_ACTUAL_VERSION', 'PG_IMPORT_SYSTEM_COLLATIONS', // Partitioning Information Functions 'PG_PARTITION_TREE', 'PG_PARTITION_ANCESTORS', 'PG_PARTITION_ROOT', // Index Maintenance Functions 'BRIN_SUMMARIZE_NEW_VALUES', 'BRIN_SUMMARIZE_RANGE', 'BRIN_DESUMMARIZE_RANGE', 'GIN_CLEAN_PENDING_LIST', // Generic File Access Functions 'PG_LS_DIR', 'PG_LS_LOGDIR', 'PG_LS_WALDIR', 'PG_LS_LOGICALSNAPDIR', 'PG_LS_REPLSLOTDIR', 'PG_LS_ARCHIVE_STATUSDIR', 'PG_LS_TMPDIR', 'PG_READ_FILE', 'PG_READ_BINARY_FILE', 'PG_STAT_FILE', // Advisory Lock Functions 'PG_ADVISORY_LOCK', 'PG_ADVISORY_LOCK_SHARED', 'PG_ADVISORY_UNLOCK', 'PG_ADVISORY_UNLOCK_SHARED', 'PG_ADVISORY_UNLOCK_ALL', 'PG_ADVISORY_XACT_LOCK', 'PG_ADVISORY_XACT_LOCK_SHARED', 'PG_TRY_ADVISORY_LOCK', 'PG_TRY_ADVISORY_LOCK_SHARED', 'PG_TRY_ADVISORY_XACT_LOCK', 'PG_TRY_ADVISORY_XACT_LOCK_SHARED', // Trigger Functions:https://www.postgresql.org/docs/16/functions-trigger.html 'SUPPRESS_REDUNDANT_UPDATES_TRIGGER', 'TSVECTOR_UPDATE_TRIGGER', 'TSVECTOR_UPDATE_TRIGGER_COLUMN', // Event Trigger Functions:https://www.postgresql.org/docs/16/functions-event-triggers.html 'PG_EVENT_TRIGGER_DDL_COMMANDS', 'PG_EVENT_TRIGGER_DROPPED_OBJECTS', 'PG_EVENT_TRIGGER_TABLE_REWRITE_OID', 'PG_EVENT_TRIGGER_TABLE_REWRITE_REASON', // Statistics Information Functions:https://www.postgresql.org/docs/16/functions-statistics.html 'PG_MCV_LIST_ITEMS' ], builtinVariables: [ // NOT SUPPORTED ], typeKeywords: [ // monaco-sql-language 自定义属性 // https://www.postgresql.org/docs/16/datatype.html 'SMALLINT', 'INTEGER', 'BIGINT', 'DECIMAL', 'NUMERIC', 'REAL', 'DOUBLE', 'PRECISION', 'SMALLSERIAL', 'SERIAL', 'BIGSERIAL', 'CHARACTER', 'VARYING', 'VARCHAR', 'CHARACTER', 'CAHR', 'BPCHAR', 'TEXT', 'BYTEA', 'JSON', 'GEOMETRY', 'MAP', 'ARRAY', 'INT', 'TIMESTAMP', 'DATE', 'INTERVAL', 'TIME', 'BOOLEAN', 'ENUM', 'NONE', 'INT4RANGE', 'INT8RANGE', 'NUMRANGE', 'TSRANGE', 'TSTZRANGE', 'DATERANGE', 'ANY', 'INTERNAL', 'UNKNOWN' ], scopeKeywords: ['PREPARE', 'END', 'DECLARE', 'CASE', 'WHEN', 'THEN', 'ELSE'], pseudoColumns: [ // Not support ], tokenizer: { root: [ { include: '@comments' }, { include: '@whitespace' }, { include: '@pseudoColumns' }, { include: '@customParams' }, { include: '@numbers' }, { include: '@strings' }, { include: '@complexIdentifiers' }, { include: '@scopes' }, { include: '@complexDataTypes' }, [/[:;,.]/, TokenClassConsts.DELIMITER], [/[\(\)\[\]\{\}]/, '@brackets'], [ /[\w@#$]+/, { cases: { '@scopeKeywords': TokenClassConsts.KEYWORD_SCOPE, '@operators': TokenClassConsts.OPERATOR_KEYWORD, '@typeKeywords': TokenClassConsts.TYPE, '@builtinVariables': TokenClassConsts.VARIABLE, '@builtinFunctions': TokenClassConsts.PREDEFINED, '@keywords': TokenClassConsts.KEYWORD, '@default': TokenClassConsts.IDENTIFIER } } ], [/[<>=!%&+\-*/|~^]/, TokenClassConsts.OPERATOR_SYMBOL] ], whitespace: [[/\s+/, TokenClassConsts.WHITE]], comments: [ [/--+.*/, TokenClassConsts.COMMENT], [/\/\*/, { token: TokenClassConsts.COMMENT_QUOTE, next: '@comment' }] ], comment: [ [/[^*/]+/, TokenClassConsts.COMMENT], // Not supporting nested comments, as nested comments seem to not be standard? // [/\/\*/, { token: 'comment.quote', next: '@push' }], // nested comment not allowed :-( [/\*\//, { token: TokenClassConsts.COMMENT_QUOTE, next: '@pop' }], [/./, TokenClassConsts.COMMENT] ], pseudoColumns: [ // Not support ], customParams: [ [/\${[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE], [/\@\@{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE] ], numbers: [ [/0[xX][0-9a-fA-F]*/, TokenClassConsts.NUMBER_HEX], [/[$][+-]*\d*(\.\d*)?/, TokenClassConsts.NUMBER], [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, TokenClassConsts.NUMBER] ], strings: [ [/'/, { token: TokenClassConsts.STRING, next: '@string' }], [/"/, { token: TokenClassConsts.STRING, next: '@stringDouble' }] ], string: [ [/[^']+/, TokenClassConsts.STRING_ESCAPE], [/''/, TokenClassConsts.STRING], [/'/, { token: TokenClassConsts.STRING, next: '@pop' }] ], stringDouble: [ [/[^"]+/, TokenClassConsts.STRING_ESCAPE], [/""/, TokenClassConsts.STRING], [/"/, { token: TokenClassConsts.STRING, next: '@pop' }] ], complexIdentifiers: [ [/`/, { token: TokenClassConsts.IDENTIFIER_QUOTE, next: '@quotedIdentifier' }] ], quotedIdentifier: [ [/[^`]+/, TokenClassConsts.IDENTIFIER_QUOTE], [/``/, TokenClassConsts.IDENTIFIER_QUOTE], [/`/, { token: TokenClassConsts.IDENTIFIER_QUOTE, next: '@pop' }] ], scopes: [ // Not support ], complexDataTypes: [ [/DOUBLE\s+PRECISION\b/i, { token: TokenClassConsts.TYPE }], [/REFERENCES\b/i, { token: TokenClassConsts.TYPE }] ] } };