monaco-editor/src/pgsql/pgsql.ts
2020-09-19 01:28:33 +02:00

1359 lines
22 KiB
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import type { languages } from '../fillers/monaco-editor-core';
export const conf: languages.LanguageConfiguration = {
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 = <languages.IMonarchLanguage>{
defaultToken: '',
tokenPostfix: '.sql',
ignoreCase: true,
brackets: [
{ open: '[', close: ']', token: 'delimiter.square' },
{ open: '(', close: ')', token: 'delimiter.parenthesis' }
],
keywords: [
'A',
'ABORT',
'ABS',
'ABSENT',
'ABSOLUTE',
'ACCESS',
'ACCORDING',
'ACTION',
'ADA',
'ADD',
'ADMIN',
'AFTER',
'AGGREGATE',
'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'
],
operators: [
'AND',
'BETWEEN',
'IN',
'LIKE',
'NOT',
'OR',
'IS',
'NULL',
'INTERSECT',
'UNION',
'INNER',
'JOIN',
'LEFT',
'OUTER',
'RIGHT'
],
builtinFunctions: [
'abbrev',
'abs',
'acos',
'acosd',
'age',
'any',
'area',
'array_agg',
'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_to_json',
'array_to_string',
'array_to_tsvector',
'array_upper',
'ascii',
'asin',
'asind',
'atan',
'atan2',
'atan2d',
'atand',
'avg',
'bit',
'bit_and',
'bit_length',
'bit_or',
'bool_and',
'bool_or',
'bound_box',
'box',
'brin_summarize_new_values',
'broadcast',
'btrim',
'cardinality',
'cbrt',
'ceil',
'ceiling',
'center',
'char_length',
'character_length',
'chr',
'circle',
'clock_timestamp',
'coalesce',
'col_description',
'concat',
'concat_ws',
'convert',
'convert_from',
'convert_to',
'corr',
'cos',
'cosd',
'cot',
'cotd',
'count',
'covar_pop',
'covar_samp',
'cume_dist',
'current_catalog',
'current_database',
'current_date',
'current_query',
'current_role',
'current_schema',
'current_schemas',
'current_setting',
'current_time',
'current_timestamp',
'current_user',
'currval',
'cursor_to_xml',
'date_part',
'date_trunc',
'decode',
'degrees',
'dense_rank',
'diameter',
'div',
'encode',
'enum_first',
'enum_last',
'enum_range',
'every',
'exp',
'extract',
'family',
'first_value',
'floor',
'format',
'format_type',
'generate_series',
'generate_subscripts',
'get_bit',
'get_byte',
'get_current_ts_config',
'gin_clean_pending_list',
'greatest',
'grouping',
'has_any_column_privilege',
'has_column_privilege',
'has_database_privilege',
'has_foreign_data_wrapper_privilege',
'has_function_privilege',
'has_language_privilege',
'has_schema_privilege',
'has_sequence_privilege',
'has_server_privilege',
'has_table_privilege',
'has_tablespace_privilege',
'has_type_privilege',
'height',
'host',
'hostmask',
'inet_client_addr',
'inet_client_port',
'inet_merge',
'inet_same_family',
'inet_server_addr',
'inet_server_port',
'initcap',
'isclosed',
'isempty',
'isfinite',
'isopen',
'json_agg',
'json_object',
'json_object_agg',
'json_populate_record',
'json_populate_recordset',
'json_to_record',
'json_to_recordset',
'jsonb_agg',
'jsonb_object_agg',
'justify_days',
'justify_hours',
'justify_interval',
'lag',
'last_value',
'lastval',
'lead',
'least',
'left',
'length',
'line',
'ln',
'localtime',
'localtimestamp',
'log',
'lower',
'lower_inc',
'lower_inf',
'lpad',
'lseg',
'ltrim',
'make_date',
'make_interval',
'make_time',
'make_timestamp',
'make_timestamptz',
'masklen',
'max',
'md5',
'min',
'mod',
'mode',
'netmask',
'network',
'nextval',
'now',
'npoints',
'nth_value',
'ntile',
'nullif',
'num_nonnulls',
'num_nulls',
'numnode',
'obj_description',
'octet_length',
'overlay',
'parse_ident',
'path',
'pclose',
'percent_rank',
'percentile_cont',
'percentile_disc',
'pg_advisory_lock',
'pg_advisory_lock_shared',
'pg_advisory_unlock',
'pg_advisory_unlock_all',
'pg_advisory_unlock_shared',
'pg_advisory_xact_lock',
'pg_advisory_xact_lock_shared',
'pg_backend_pid',
'pg_backup_start_time',
'pg_blocking_pids',
'pg_cancel_backend',
'pg_client_encoding',
'pg_collation_is_visible',
'pg_column_size',
'pg_conf_load_time',
'pg_control_checkpoint',
'pg_control_init',
'pg_control_recovery',
'pg_control_system',
'pg_conversion_is_visible',
'pg_create_logical_replication_slot',
'pg_create_physical_replication_slot',
'pg_create_restore_point',
'pg_current_xlog_flush_location',
'pg_current_xlog_insert_location',
'pg_current_xlog_location',
'pg_database_size',
'pg_describe_object',
'pg_drop_replication_slot',
'pg_export_snapshot',
'pg_filenode_relation',
'pg_function_is_visible',
'pg_get_constraintdef',
'pg_get_expr',
'pg_get_function_arguments',
'pg_get_function_identity_arguments',
'pg_get_function_result',
'pg_get_functiondef',
'pg_get_indexdef',
'pg_get_keywords',
'pg_get_object_address',
'pg_get_owned_sequence',
'pg_get_ruledef',
'pg_get_serial_sequence',
'pg_get_triggerdef',
'pg_get_userbyid',
'pg_get_viewdef',
'pg_has_role',
'pg_identify_object',
'pg_identify_object_as_address',
'pg_index_column_has_property',
'pg_index_has_property',
'pg_indexam_has_property',
'pg_indexes_size',
'pg_is_in_backup',
'pg_is_in_recovery',
'pg_is_other_temp_schema',
'pg_is_xlog_replay_paused',
'pg_last_committed_xact',
'pg_last_xact_replay_timestamp',
'pg_last_xlog_receive_location',
'pg_last_xlog_replay_location',
'pg_listening_channels',
'pg_logical_emit_message',
'pg_logical_slot_get_binary_changes',
'pg_logical_slot_get_changes',
'pg_logical_slot_peek_binary_changes',
'pg_logical_slot_peek_changes',
'pg_ls_dir',
'pg_my_temp_schema',
'pg_notification_queue_usage',
'pg_opclass_is_visible',
'pg_operator_is_visible',
'pg_opfamily_is_visible',
'pg_options_to_table',
'pg_postmaster_start_time',
'pg_read_binary_file',
'pg_read_file',
'pg_relation_filenode',
'pg_relation_filepath',
'pg_relation_size',
'pg_reload_conf',
'pg_replication_origin_create',
'pg_replication_origin_drop',
'pg_replication_origin_oid',
'pg_replication_origin_progress',
'pg_replication_origin_session_is_setup',
'pg_replication_origin_session_progress',
'pg_replication_origin_session_reset',
'pg_replication_origin_session_setup',
'pg_replication_origin_xact_reset',
'pg_replication_origin_xact_setup',
'pg_rotate_logfile',
'pg_size_bytes',
'pg_size_pretty',
'pg_sleep',
'pg_sleep_for',
'pg_sleep_until',
'pg_start_backup',
'pg_stat_file',
'pg_stop_backup',
'pg_switch_xlog',
'pg_table_is_visible',
'pg_table_size',
'pg_tablespace_databases',
'pg_tablespace_location',
'pg_tablespace_size',
'pg_terminate_backend',
'pg_total_relation_size',
'pg_trigger_depth',
'pg_try_advisory_lock',
'pg_try_advisory_lock_shared',
'pg_try_advisory_xact_lock',
'pg_try_advisory_xact_lock_shared',
'pg_ts_config_is_visible',
'pg_ts_dict_is_visible',
'pg_ts_parser_is_visible',
'pg_ts_template_is_visible',
'pg_type_is_visible',
'pg_typeof',
'pg_xact_commit_timestamp',
'pg_xlog_location_diff',
'pg_xlog_replay_pause',
'pg_xlog_replay_resume',
'pg_xlogfile_name',
'pg_xlogfile_name_offset',
'phraseto_tsquery',
'pi',
'plainto_tsquery',
'point',
'polygon',
'popen',
'position',
'power',
'pqserverversion',
'query_to_xml',
'querytree',
'quote_ident',
'quote_literal',
'quote_nullable',
'radians',
'radius',
'random',
'range_merge',
'rank',
'regexp_matches',
'regexp_replace',
'regexp_split_to_array',
'regexp_split_to_table',
'regr_avgx',
'regr_avgy',
'regr_count',
'regr_intercept',
'regr_r2',
'regr_slope',
'regr_sxx',
'regr_sxy',
'regr_syy',
'repeat',
'replace',
'reverse',
'right',
'round',
'row_number',
'row_security_active',
'row_to_json',
'rpad',
'rtrim',
'scale',
'session_user',
'set_bit',
'set_byte',
'set_config',
'set_masklen',
'setseed',
'setval',
'setweight',
'shobj_description',
'sign',
'sin',
'sind',
'split_part',
'sprintf',
'sqrt',
'statement_timestamp',
'stddev',
'stddev_pop',
'stddev_samp',
'string_agg',
'string_to_array',
'strip',
'strpos',
'substr',
'substring',
'sum',
'table_to_xml',
'table_to_xml_and_xmlschema',
'tan',
'tand',
'text',
'timeofday',
'timezone',
'to_ascii',
'to_char',
'to_date',
'to_hex',
'to_json',
'to_number',
'to_regclass',
'to_regnamespace',
'to_regoper',
'to_regoperator',
'to_regproc',
'to_regprocedure',
'to_regrole',
'to_regtype',
'to_timestamp',
'to_tsquery',
'to_tsvector',
'transaction_timestamp',
'translate',
'trim',
'trunc',
'ts_debug',
'ts_delete',
'ts_filter',
'ts_headline',
'ts_lexize',
'ts_parse',
'ts_rank',
'ts_rank_cd',
'ts_rewrite',
'ts_stat',
'ts_token_type',
'tsquery_phrase',
'tsvector_to_array',
'tsvector_update_trigger',
'tsvector_update_trigger_column',
'txid_current',
'txid_current_snapshot',
'txid_snapshot_xip',
'txid_snapshot_xmax',
'txid_snapshot_xmin',
'txid_visible_in_snapshot',
'unnest',
'upper',
'upper_inc',
'upper_inf',
'user',
'var_pop',
'var_samp',
'variance',
'version',
'width',
'width_bucket',
'xml_is_well_formed',
'xml_is_well_formed_content',
'xml_is_well_formed_document',
'xmlagg',
'xmlcomment',
'xmlconcat',
'xmlelement',
'xmlexists',
'xmlforest',
'xmlparse',
'xmlpi',
'xmlroot',
'xmlserialize',
'xpath',
'xpath_exists'
],
builtinVariables: [
// NOT SUPPORTED
],
pseudoColumns: [
// NOT SUPPORTED
],
tokenizer: {
root: [
{ include: '@comments' },
{ include: '@whitespace' },
{ include: '@pseudoColumns' },
{ include: '@numbers' },
{ include: '@strings' },
{ include: '@complexIdentifiers' },
{ include: '@scopes' },
[/[;,.]/, 'delimiter'],
[/[()]/, '@brackets'],
[
/[\w@#$]+/,
{
cases: {
'@keywords': 'keyword',
'@operators': 'operator',
'@builtinVariables': 'predefined',
'@builtinFunctions': 'predefined',
'@default': 'identifier'
}
}
],
[/[<>=!%&+\-*/|~^]/, 'operator']
],
whitespace: [[/\s+/, 'white']],
comments: [
[/--+.*/, 'comment'],
[/\/\*/, { token: 'comment.quote', next: '@comment' }]
],
comment: [
[/[^*/]+/, 'comment'],
// Not supporting nested comments, as nested comments seem to not be standard?
// i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic
// [/\/\*/, { token: 'comment.quote', next: '@push' }], // nested comment not allowed :-(
[/\*\//, { token: 'comment.quote', next: '@pop' }],
[/./, 'comment']
],
pseudoColumns: [
[
/[$][A-Za-z_][\w@#$]*/,
{
cases: {
'@pseudoColumns': 'predefined',
'@default': 'identifier'
}
}
]
],
numbers: [
[/0[xX][0-9a-fA-F]*/, 'number'],
[/[$][+-]*\d*(\.\d*)?/, 'number'],
[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number']
],
strings: [[/'/, { token: 'string', next: '@string' }]],
string: [
[/[^']+/, 'string'],
[/''/, 'string'],
[/'/, { token: 'string', next: '@pop' }]
],
complexIdentifiers: [[/"/, { token: 'identifier.quote', next: '@quotedIdentifier' }]],
quotedIdentifier: [
[/[^"]+/, 'identifier'],
[/""/, 'identifier'],
[/"/, { token: 'identifier.quote', next: '@pop' }]
],
scopes: [
// NOT SUPPORTED
]
}
};