eric6/ThirdParty/Pygments/pygments/lexers/_mysql_builtins.py

changeset 8258
82b608e352ec
parent 8257
28146736bbfc
child 8259
2bbec88047dd
--- a/eric6/ThirdParty/Pygments/pygments/lexers/_mysql_builtins.py	Tue Apr 20 19:47:39 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1282 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-    pygments.lexers._mysql_builtins
-    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-    Self-updating data files for the MySQL lexer.
-
-    :copyright: Copyright 2020 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
-"""
-
-
-MYSQL_CONSTANTS = (
-    'false',
-    'null',
-    'true',
-    'unknown',
-)
-
-
-# At this time, no easily-parsed, definitive list of data types
-# has been found in the MySQL source code or documentation. (The
-# `sql/sql_yacc.yy` file is definitive but is difficult to parse.)
-# Therefore these types are currently maintained manually.
-#
-# Some words in this list -- like "long", "national", "precision",
-# and "varying" -- appear to only occur in combination with other
-# data type keywords. Therefore they are included as separate words
-# even though they do not naturally occur in syntax separately.
-#
-# This list is also used to strip data types out of the list of
-# MySQL keywords, which is automatically updated later in the file.
-#
-MYSQL_DATATYPES = (
-    # Numeric data types
-    'bigint',
-    'bit',
-    'bool',
-    'boolean',
-    'dec',
-    'decimal',
-    'double',
-    'fixed',
-    'float',
-    'float4',
-    'float8',
-    'int',
-    'int1',
-    'int2',
-    'int3',
-    'int4',
-    'int8',
-    'integer',
-    'mediumint',
-    'middleint',
-    'numeric',
-    'precision',
-    'real',
-    'serial',
-    'smallint',
-    'tinyint',
-
-    # Date and time data types
-    'date',
-    'datetime',
-    'time',
-    'timestamp',
-    'year',
-
-    # String data types
-    'binary',
-    'blob',
-    'char',
-    'enum',
-    'long',
-    'longblob',
-    'longtext',
-    'mediumblob',
-    'mediumtext',
-    'national',
-    'nchar',
-    'nvarchar',
-    'set',
-    'text',
-    'tinyblob',
-    'tinytext',
-    'varbinary',
-    'varchar',
-    'varcharacter',
-    'varying',
-
-    # Spatial data types
-    'geometry',
-    'geometrycollection',
-    'linestring',
-    'multilinestring',
-    'multipoint',
-    'multipolygon',
-    'point',
-    'polygon',
-
-    # JSON data types
-    'json',
-)
-
-# Everything below this line is auto-generated from the MySQL source code.
-# Run this file in Python and it will update itself.
-# -----------------------------------------------------------------------------
-
-MYSQL_FUNCTIONS = (
-    'abs',
-    'acos',
-    'adddate',
-    'addtime',
-    'aes_decrypt',
-    'aes_encrypt',
-    'any_value',
-    'asin',
-    'atan',
-    'atan2',
-    'benchmark',
-    'bin',
-    'bin_to_uuid',
-    'bit_and',
-    'bit_count',
-    'bit_length',
-    'bit_or',
-    'bit_xor',
-    'can_access_column',
-    'can_access_database',
-    'can_access_event',
-    'can_access_resource_group',
-    'can_access_routine',
-    'can_access_table',
-    'can_access_trigger',
-    'can_access_view',
-    'cast',
-    'ceil',
-    'ceiling',
-    'char_length',
-    'character_length',
-    'coercibility',
-    'compress',
-    'concat',
-    'concat_ws',
-    'connection_id',
-    'conv',
-    'convert_cpu_id_mask',
-    'convert_interval_to_user_interval',
-    'convert_tz',
-    'cos',
-    'cot',
-    'count',
-    'crc32',
-    'curdate',
-    'current_role',
-    'curtime',
-    'date_add',
-    'date_format',
-    'date_sub',
-    'datediff',
-    'dayname',
-    'dayofmonth',
-    'dayofweek',
-    'dayofyear',
-    'degrees',
-    'elt',
-    'exp',
-    'export_set',
-    'extract',
-    'extractvalue',
-    'field',
-    'find_in_set',
-    'floor',
-    'format_bytes',
-    'format_pico_time',
-    'found_rows',
-    'from_base64',
-    'from_days',
-    'from_unixtime',
-    'get_dd_column_privileges',
-    'get_dd_create_options',
-    'get_dd_index_private_data',
-    'get_dd_index_sub_part_length',
-    'get_dd_property_key_value',
-    'get_dd_tablespace_private_data',
-    'get_lock',
-    'greatest',
-    'group_concat',
-    'gtid_subset',
-    'gtid_subtract',
-    'hex',
-    'icu_version',
-    'ifnull',
-    'inet6_aton',
-    'inet6_ntoa',
-    'inet_aton',
-    'inet_ntoa',
-    'instr',
-    'internal_auto_increment',
-    'internal_avg_row_length',
-    'internal_check_time',
-    'internal_checksum',
-    'internal_data_free',
-    'internal_data_length',
-    'internal_dd_char_length',
-    'internal_get_comment_or_error',
-    'internal_get_dd_column_extra',
-    'internal_get_enabled_role_json',
-    'internal_get_hostname',
-    'internal_get_mandatory_roles_json',
-    'internal_get_partition_nodegroup',
-    'internal_get_username',
-    'internal_get_view_warning_or_error',
-    'internal_index_column_cardinality',
-    'internal_index_length',
-    'internal_is_enabled_role',
-    'internal_is_mandatory_role',
-    'internal_keys_disabled',
-    'internal_max_data_length',
-    'internal_table_rows',
-    'internal_tablespace_autoextend_size',
-    'internal_tablespace_data_free',
-    'internal_tablespace_extent_size',
-    'internal_tablespace_extra',
-    'internal_tablespace_free_extents',
-    'internal_tablespace_id',
-    'internal_tablespace_initial_size',
-    'internal_tablespace_logfile_group_name',
-    'internal_tablespace_logfile_group_number',
-    'internal_tablespace_maximum_size',
-    'internal_tablespace_row_format',
-    'internal_tablespace_status',
-    'internal_tablespace_total_extents',
-    'internal_tablespace_type',
-    'internal_tablespace_version',
-    'internal_update_time',
-    'is_free_lock',
-    'is_ipv4',
-    'is_ipv4_compat',
-    'is_ipv4_mapped',
-    'is_ipv6',
-    'is_used_lock',
-    'is_uuid',
-    'is_visible_dd_object',
-    'isnull',
-    'json_array',
-    'json_array_append',
-    'json_array_insert',
-    'json_arrayagg',
-    'json_contains',
-    'json_contains_path',
-    'json_depth',
-    'json_extract',
-    'json_insert',
-    'json_keys',
-    'json_length',
-    'json_merge',
-    'json_merge_patch',
-    'json_merge_preserve',
-    'json_object',
-    'json_objectagg',
-    'json_overlaps',
-    'json_pretty',
-    'json_quote',
-    'json_remove',
-    'json_replace',
-    'json_schema_valid',
-    'json_schema_validation_report',
-    'json_search',
-    'json_set',
-    'json_storage_free',
-    'json_storage_size',
-    'json_type',
-    'json_unquote',
-    'json_valid',
-    'last_day',
-    'last_insert_id',
-    'lcase',
-    'least',
-    'length',
-    'like_range_max',
-    'like_range_min',
-    'ln',
-    'load_file',
-    'locate',
-    'log',
-    'log10',
-    'log2',
-    'lower',
-    'lpad',
-    'ltrim',
-    'make_set',
-    'makedate',
-    'maketime',
-    'master_pos_wait',
-    'max',
-    'mbrcontains',
-    'mbrcoveredby',
-    'mbrcovers',
-    'mbrdisjoint',
-    'mbrequals',
-    'mbrintersects',
-    'mbroverlaps',
-    'mbrtouches',
-    'mbrwithin',
-    'md5',
-    'mid',
-    'min',
-    'monthname',
-    'name_const',
-    'now',
-    'nullif',
-    'oct',
-    'octet_length',
-    'ord',
-    'period_add',
-    'period_diff',
-    'pi',
-    'position',
-    'pow',
-    'power',
-    'ps_current_thread_id',
-    'ps_thread_id',
-    'quote',
-    'radians',
-    'rand',
-    'random_bytes',
-    'regexp_instr',
-    'regexp_like',
-    'regexp_replace',
-    'regexp_substr',
-    'release_all_locks',
-    'release_lock',
-    'remove_dd_property_key',
-    'reverse',
-    'roles_graphml',
-    'round',
-    'rpad',
-    'rtrim',
-    'sec_to_time',
-    'session_user',
-    'sha',
-    'sha1',
-    'sha2',
-    'sign',
-    'sin',
-    'sleep',
-    'soundex',
-    'space',
-    'sqrt',
-    'st_area',
-    'st_asbinary',
-    'st_asgeojson',
-    'st_astext',
-    'st_aswkb',
-    'st_aswkt',
-    'st_buffer',
-    'st_buffer_strategy',
-    'st_centroid',
-    'st_contains',
-    'st_convexhull',
-    'st_crosses',
-    'st_difference',
-    'st_dimension',
-    'st_disjoint',
-    'st_distance',
-    'st_distance_sphere',
-    'st_endpoint',
-    'st_envelope',
-    'st_equals',
-    'st_exteriorring',
-    'st_geohash',
-    'st_geomcollfromtext',
-    'st_geomcollfromtxt',
-    'st_geomcollfromwkb',
-    'st_geometrycollectionfromtext',
-    'st_geometrycollectionfromwkb',
-    'st_geometryfromtext',
-    'st_geometryfromwkb',
-    'st_geometryn',
-    'st_geometrytype',
-    'st_geomfromgeojson',
-    'st_geomfromtext',
-    'st_geomfromwkb',
-    'st_interiorringn',
-    'st_intersection',
-    'st_intersects',
-    'st_isclosed',
-    'st_isempty',
-    'st_issimple',
-    'st_isvalid',
-    'st_latfromgeohash',
-    'st_latitude',
-    'st_length',
-    'st_linefromtext',
-    'st_linefromwkb',
-    'st_linestringfromtext',
-    'st_linestringfromwkb',
-    'st_longfromgeohash',
-    'st_longitude',
-    'st_makeenvelope',
-    'st_mlinefromtext',
-    'st_mlinefromwkb',
-    'st_mpointfromtext',
-    'st_mpointfromwkb',
-    'st_mpolyfromtext',
-    'st_mpolyfromwkb',
-    'st_multilinestringfromtext',
-    'st_multilinestringfromwkb',
-    'st_multipointfromtext',
-    'st_multipointfromwkb',
-    'st_multipolygonfromtext',
-    'st_multipolygonfromwkb',
-    'st_numgeometries',
-    'st_numinteriorring',
-    'st_numinteriorrings',
-    'st_numpoints',
-    'st_overlaps',
-    'st_pointfromgeohash',
-    'st_pointfromtext',
-    'st_pointfromwkb',
-    'st_pointn',
-    'st_polyfromtext',
-    'st_polyfromwkb',
-    'st_polygonfromtext',
-    'st_polygonfromwkb',
-    'st_simplify',
-    'st_srid',
-    'st_startpoint',
-    'st_swapxy',
-    'st_symdifference',
-    'st_touches',
-    'st_transform',
-    'st_union',
-    'st_validate',
-    'st_within',
-    'st_x',
-    'st_y',
-    'statement_digest',
-    'statement_digest_text',
-    'std',
-    'stddev',
-    'stddev_pop',
-    'stddev_samp',
-    'str_to_date',
-    'strcmp',
-    'subdate',
-    'substr',
-    'substring',
-    'substring_index',
-    'subtime',
-    'sum',
-    'sysdate',
-    'system_user',
-    'tan',
-    'time_format',
-    'time_to_sec',
-    'timediff',
-    'to_base64',
-    'to_days',
-    'to_seconds',
-    'trim',
-    'ucase',
-    'uncompress',
-    'uncompressed_length',
-    'unhex',
-    'unix_timestamp',
-    'updatexml',
-    'upper',
-    'uuid',
-    'uuid_short',
-    'uuid_to_bin',
-    'validate_password_strength',
-    'var_pop',
-    'var_samp',
-    'variance',
-    'version',
-    'wait_for_executed_gtid_set',
-    'wait_until_sql_thread_after_gtids',
-    'weekday',
-    'weekofyear',
-    'yearweek',
-)
-
-
-MYSQL_OPTIMIZER_HINTS = (
-    'bka',
-    'bnl',
-    'dupsweedout',
-    'firstmatch',
-    'group_index',
-    'hash_join',
-    'index',
-    'index_merge',
-    'intoexists',
-    'join_fixed_order',
-    'join_index',
-    'join_order',
-    'join_prefix',
-    'join_suffix',
-    'loosescan',
-    'materialization',
-    'max_execution_time',
-    'merge',
-    'mrr',
-    'no_bka',
-    'no_bnl',
-    'no_group_index',
-    'no_hash_join',
-    'no_icp',
-    'no_index',
-    'no_index_merge',
-    'no_join_index',
-    'no_merge',
-    'no_mrr',
-    'no_order_index',
-    'no_range_optimization',
-    'no_semijoin',
-    'no_skip_scan',
-    'order_index',
-    'qb_name',
-    'resource_group',
-    'semijoin',
-    'set_var',
-    'skip_scan',
-    'subquery',
-)
-
-
-MYSQL_KEYWORDS = (
-    'accessible',
-    'account',
-    'action',
-    'active',
-    'add',
-    'admin',
-    'after',
-    'against',
-    'aggregate',
-    'algorithm',
-    'all',
-    'alter',
-    'always',
-    'analyze',
-    'and',
-    'any',
-    'array',
-    'as',
-    'asc',
-    'ascii',
-    'asensitive',
-    'at',
-    'attribute',
-    'auto_increment',
-    'autoextend_size',
-    'avg',
-    'avg_row_length',
-    'backup',
-    'before',
-    'begin',
-    'between',
-    'binlog',
-    'block',
-    'both',
-    'btree',
-    'buckets',
-    'by',
-    'byte',
-    'cache',
-    'call',
-    'cascade',
-    'cascaded',
-    'case',
-    'catalog_name',
-    'chain',
-    'change',
-    'changed',
-    'channel',
-    'character',
-    'charset',
-    'check',
-    'checksum',
-    'cipher',
-    'class_origin',
-    'client',
-    'clone',
-    'close',
-    'coalesce',
-    'code',
-    'collate',
-    'collation',
-    'column',
-    'column_format',
-    'column_name',
-    'columns',
-    'comment',
-    'commit',
-    'committed',
-    'compact',
-    'completion',
-    'component',
-    'compressed',
-    'compression',
-    'concurrent',
-    'condition',
-    'connection',
-    'consistent',
-    'constraint',
-    'constraint_catalog',
-    'constraint_name',
-    'constraint_schema',
-    'contains',
-    'context',
-    'continue',
-    'convert',
-    'cpu',
-    'create',
-    'cross',
-    'cube',
-    'cume_dist',
-    'current',
-    'current_date',
-    'current_time',
-    'current_timestamp',
-    'current_user',
-    'cursor',
-    'cursor_name',
-    'data',
-    'database',
-    'databases',
-    'datafile',
-    'day',
-    'day_hour',
-    'day_microsecond',
-    'day_minute',
-    'day_second',
-    'deallocate',
-    'declare',
-    'default',
-    'default_auth',
-    'definer',
-    'definition',
-    'delay_key_write',
-    'delayed',
-    'delete',
-    'dense_rank',
-    'desc',
-    'describe',
-    'description',
-    'deterministic',
-    'diagnostics',
-    'directory',
-    'disable',
-    'discard',
-    'disk',
-    'distinct',
-    'distinctrow',
-    'div',
-    'do',
-    'drop',
-    'dual',
-    'dumpfile',
-    'duplicate',
-    'dynamic',
-    'each',
-    'else',
-    'elseif',
-    'empty',
-    'enable',
-    'enclosed',
-    'encryption',
-    'end',
-    'ends',
-    'enforced',
-    'engine',
-    'engine_attribute',
-    'engines',
-    'error',
-    'errors',
-    'escape',
-    'escaped',
-    'event',
-    'events',
-    'every',
-    'except',
-    'exchange',
-    'exclude',
-    'execute',
-    'exists',
-    'exit',
-    'expansion',
-    'expire',
-    'explain',
-    'export',
-    'extended',
-    'extent_size',
-    'failed_login_attempts',
-    'false',
-    'fast',
-    'faults',
-    'fetch',
-    'fields',
-    'file',
-    'file_block_size',
-    'filter',
-    'first',
-    'first_value',
-    'flush',
-    'following',
-    'follows',
-    'for',
-    'force',
-    'foreign',
-    'format',
-    'found',
-    'from',
-    'full',
-    'fulltext',
-    'function',
-    'general',
-    'generated',
-    'geomcollection',
-    'get',
-    'get_format',
-    'get_master_public_key',
-    'global',
-    'grant',
-    'grants',
-    'group',
-    'group_replication',
-    'grouping',
-    'groups',
-    'handler',
-    'hash',
-    'having',
-    'help',
-    'high_priority',
-    'histogram',
-    'history',
-    'host',
-    'hosts',
-    'hour',
-    'hour_microsecond',
-    'hour_minute',
-    'hour_second',
-    'identified',
-    'if',
-    'ignore',
-    'ignore_server_ids',
-    'import',
-    'in',
-    'inactive',
-    'index',
-    'indexes',
-    'infile',
-    'initial_size',
-    'inner',
-    'inout',
-    'insensitive',
-    'insert',
-    'insert_method',
-    'install',
-    'instance',
-    'interval',
-    'into',
-    'invisible',
-    'invoker',
-    'io',
-    'io_after_gtids',
-    'io_before_gtids',
-    'io_thread',
-    'ipc',
-    'is',
-    'isolation',
-    'issuer',
-    'iterate',
-    'join',
-    'json_table',
-    'json_value',
-    'key',
-    'key_block_size',
-    'keys',
-    'kill',
-    'lag',
-    'language',
-    'last',
-    'last_value',
-    'lateral',
-    'lead',
-    'leading',
-    'leave',
-    'leaves',
-    'left',
-    'less',
-    'level',
-    'like',
-    'limit',
-    'linear',
-    'lines',
-    'list',
-    'load',
-    'local',
-    'localtime',
-    'localtimestamp',
-    'lock',
-    'locked',
-    'locks',
-    'logfile',
-    'logs',
-    'loop',
-    'low_priority',
-    'master',
-    'master_auto_position',
-    'master_bind',
-    'master_compression_algorithms',
-    'master_connect_retry',
-    'master_delay',
-    'master_heartbeat_period',
-    'master_host',
-    'master_log_file',
-    'master_log_pos',
-    'master_password',
-    'master_port',
-    'master_public_key_path',
-    '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_ciphersuites',
-    'master_tls_version',
-    'master_user',
-    'master_zstd_compression_level',
-    'match',
-    'max_connections_per_hour',
-    'max_queries_per_hour',
-    'max_rows',
-    'max_size',
-    'max_updates_per_hour',
-    'max_user_connections',
-    'maxvalue',
-    'medium',
-    'member',
-    'memory',
-    'merge',
-    'message_text',
-    'microsecond',
-    'migrate',
-    'min_rows',
-    'minute',
-    'minute_microsecond',
-    'minute_second',
-    'mod',
-    'mode',
-    'modifies',
-    'modify',
-    'month',
-    'mutex',
-    'mysql_errno',
-    'name',
-    'names',
-    'natural',
-    'ndb',
-    'ndbcluster',
-    'nested',
-    'network_namespace',
-    'never',
-    'new',
-    'next',
-    'no',
-    'no_wait',
-    'no_write_to_binlog',
-    'nodegroup',
-    'none',
-    'not',
-    'nowait',
-    'nth_value',
-    'ntile',
-    'null',
-    'nulls',
-    'number',
-    'of',
-    'off',
-    'offset',
-    'oj',
-    'old',
-    'on',
-    'one',
-    'only',
-    'open',
-    'optimize',
-    'optimizer_costs',
-    'option',
-    'optional',
-    'optionally',
-    'options',
-    'or',
-    'order',
-    'ordinality',
-    'organization',
-    'others',
-    'out',
-    'outer',
-    'outfile',
-    'over',
-    'owner',
-    'pack_keys',
-    'page',
-    'parser',
-    'partial',
-    'partition',
-    'partitioning',
-    'partitions',
-    'password',
-    'password_lock_time',
-    'path',
-    'percent_rank',
-    'persist',
-    'persist_only',
-    'phase',
-    'plugin',
-    'plugin_dir',
-    'plugins',
-    'port',
-    'precedes',
-    'preceding',
-    'prepare',
-    'preserve',
-    'prev',
-    'primary',
-    'privilege_checks_user',
-    'privileges',
-    'procedure',
-    'process',
-    'processlist',
-    'profile',
-    'profiles',
-    'proxy',
-    'purge',
-    'quarter',
-    'query',
-    'quick',
-    'random',
-    'range',
-    'rank',
-    'read',
-    'read_only',
-    'read_write',
-    'reads',
-    'rebuild',
-    'recover',
-    'recursive',
-    'redo_buffer_size',
-    'redundant',
-    'reference',
-    'references',
-    'regexp',
-    'relay',
-    'relay_log_file',
-    'relay_log_pos',
-    'relay_thread',
-    'relaylog',
-    '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',
-    'require_row_format',
-    'require_table_primary_key_check',
-    'reset',
-    'resignal',
-    'resource',
-    'respect',
-    'restart',
-    'restore',
-    'restrict',
-    'resume',
-    'retain',
-    'return',
-    'returned_sqlstate',
-    'returning',
-    'returns',
-    'reuse',
-    'reverse',
-    'revoke',
-    'right',
-    'rlike',
-    'role',
-    'rollback',
-    'rollup',
-    'rotate',
-    'routine',
-    'row',
-    'row_count',
-    'row_format',
-    'row_number',
-    'rows',
-    'rtree',
-    'savepoint',
-    'schedule',
-    'schema',
-    'schema_name',
-    'schemas',
-    'second',
-    'second_microsecond',
-    'secondary',
-    'secondary_engine',
-    'secondary_engine_attribute',
-    'secondary_load',
-    'secondary_unload',
-    'security',
-    'select',
-    'sensitive',
-    'separator',
-    'serializable',
-    'server',
-    'session',
-    'share',
-    'show',
-    'shutdown',
-    'signal',
-    'signed',
-    'simple',
-    'skip',
-    'slave',
-    'slow',
-    'snapshot',
-    'socket',
-    'some',
-    'soname',
-    'sounds',
-    'source',
-    'spatial',
-    'specific',
-    'sql',
-    'sql_after_gtids',
-    'sql_after_mts_gaps',
-    'sql_before_gtids',
-    'sql_big_result',
-    'sql_buffer_result',
-    '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',
-    'sqlexception',
-    'sqlstate',
-    'sqlwarning',
-    'srid',
-    'ssl',
-    'stacked',
-    'start',
-    'starting',
-    'starts',
-    'stats_auto_recalc',
-    'stats_persistent',
-    'stats_sample_pages',
-    'status',
-    'stop',
-    'storage',
-    'stored',
-    'straight_join',
-    'stream',
-    'string',
-    'subclass_origin',
-    'subject',
-    'subpartition',
-    'subpartitions',
-    'super',
-    'suspend',
-    'swaps',
-    'switches',
-    'system',
-    'table',
-    'table_checksum',
-    'table_name',
-    'tables',
-    'tablespace',
-    'temporary',
-    'temptable',
-    'terminated',
-    'than',
-    'then',
-    'thread_priority',
-    'ties',
-    'timestampadd',
-    'timestampdiff',
-    'tls',
-    'to',
-    'trailing',
-    'transaction',
-    'trigger',
-    'triggers',
-    'true',
-    'truncate',
-    'type',
-    'types',
-    'unbounded',
-    'uncommitted',
-    'undefined',
-    'undo',
-    'undo_buffer_size',
-    'undofile',
-    'unicode',
-    'uninstall',
-    'union',
-    'unique',
-    'unknown',
-    'unlock',
-    'unsigned',
-    'until',
-    'update',
-    'upgrade',
-    'usage',
-    'use',
-    'use_frm',
-    'user',
-    'user_resources',
-    'using',
-    'utc_date',
-    'utc_time',
-    'utc_timestamp',
-    'validation',
-    'value',
-    'values',
-    'variables',
-    'vcpu',
-    'view',
-    'virtual',
-    'visible',
-    'wait',
-    'warnings',
-    'week',
-    'weight_string',
-    'when',
-    'where',
-    'while',
-    'window',
-    'with',
-    'without',
-    'work',
-    'wrapper',
-    'write',
-    'x509',
-    'xa',
-    'xid',
-    'xml',
-    'xor',
-    'year_month',
-    'zerofill',
-)
-
-
-if __name__ == '__main__':  # pragma: no cover
-    import re
-    from urllib.request import urlopen
-
-    from pygments.util import format_lines
-
-    # MySQL source code
-    SOURCE_URL = 'https://github.com/mysql/mysql-server/raw/8.0'
-    LEX_URL = SOURCE_URL + '/sql/lex.h'
-    ITEM_CREATE_URL = SOURCE_URL + '/sql/item_create.cc'
-
-
-    def update_myself():
-        # Pull content from lex.h.
-        lex_file = urlopen(LEX_URL).read().decode('utf8', errors='ignore')
-        keywords = parse_lex_keywords(lex_file)
-        functions = parse_lex_functions(lex_file)
-        optimizer_hints = parse_lex_optimizer_hints(lex_file)
-
-        # Parse content in item_create.cc.
-        item_create_file = urlopen(ITEM_CREATE_URL).read().decode('utf8', errors='ignore')
-        functions.update(parse_item_create_functions(item_create_file))
-
-        # Remove data types from the set of keywords.
-        keywords -= set(MYSQL_DATATYPES)
-
-        update_content('MYSQL_FUNCTIONS', tuple(sorted(functions)))
-        update_content('MYSQL_KEYWORDS', tuple(sorted(keywords)))
-        update_content('MYSQL_OPTIMIZER_HINTS', tuple(sorted(optimizer_hints)))
-
-
-    def parse_lex_keywords(f):
-        """Parse keywords in lex.h."""
-
-        results = set()
-        for m in re.finditer(r'{SYM(?:_HK)?\("(?P<keyword>[a-z0-9_]+)",', f, flags=re.I):
-            results.add(m.group('keyword').lower())
-
-        if not results:
-            raise ValueError('No keywords found')
-
-        return results
-
-
-    def parse_lex_optimizer_hints(f):
-        """Parse optimizer hints in lex.h."""
-
-        results = set()
-        for m in re.finditer(r'{SYM_H\("(?P<keyword>[a-z0-9_]+)",', f, flags=re.I):
-            results.add(m.group('keyword').lower())
-
-        if not results:
-            raise ValueError('No optimizer hints found')
-
-        return results
-
-
-    def parse_lex_functions(f):
-        """Parse MySQL function names from lex.h."""
-
-        results = set()
-        for m in re.finditer(r'{SYM_FN?\("(?P<function>[a-z0-9_]+)",', f, flags=re.I):
-            results.add(m.group('function').lower())
-
-        if not results:
-            raise ValueError('No lex functions found')
-
-        return results
-
-
-    def parse_item_create_functions(f):
-        """Parse MySQL function names from item_create.cc."""
-
-        results = set()
-        for m in re.finditer(r'{"(?P<function>[^"]+?)",\s*SQL_F[^(]+?\(', f, flags=re.I):
-            results.add(m.group('function').lower())
-
-        if not results:
-            raise ValueError('No item_create functions found')
-
-        return results
-
-
-    def update_content(field_name, content):
-        """Overwrite this file with content parsed from MySQL's source code."""
-
-        with open(__file__) as f:
-            data = f.read()
-
-        # Line to start/end inserting
-        re_match = re.compile(r'^%s\s*=\s*\($.*?^\s*\)$' % field_name, re.M | re.S)
-        m = re_match.search(data)
-        if not m:
-            raise ValueError('Could not find an existing definition for %s' % field_name)
-
-        new_block = format_lines(field_name, content)
-        data = data[:m.start()] + new_block + data[m.end():]
-
-        with open(__file__, 'w', newline='\n') as f:
-            f.write(data)
-
-    update_myself()

eric ide

mercurial