Skip to content

Commit

Permalink
Update list with known MySQL keywords, taken from https://dev.mysql.c…
Browse files Browse the repository at this point in the history
  • Loading branch information
ansgarbecker committed Apr 14, 2024
1 parent 39826ec commit 1df6622
Show file tree
Hide file tree
Showing 3 changed files with 174 additions and 88 deletions.
104 changes: 52 additions & 52 deletions components/synedit/Source/SynHighlighterSQL.pas
Expand Up @@ -934,7 +934,7 @@ implementation
'ALGORITHM,ALL,ALTER,ALWAYS,ANALYSE,ANALYZE,AND,ANY,ARRAY,AS,ASC,' +
'ASENSITIVE,AT,ATTRIBUTE,AUTHENTICATION,AUTOEXTEND_SIZE,AUTO_INCREMENT,' +
'AVG_ROW_LENGTH,BACKUP,BEFORE,BEGIN,BETWEEN,BINLOG,BIT,BLOCK,BOTH,BUCKETS,' +
'BY,CACHE,CALL,CASCADE,CASCADED,CATALOG_NAME,CHAIN,CHALLENGE_RESPONSE,' +
'BULK,BY,CACHE,CALL,CASCADE,CASCADED,CATALOG_NAME,CHAIN,CHALLENGE_RESPONSE,' +
'CHANGE,CHANGED,CHANNEL,CHARACTER,CHARSET,CHECK,CHECKSUM,CIPHER,' +
'CLASS_ORIGIN,CLIENT,CLONE,CODE,COLLATE,COLLATION,COLUMN,COLUMNS,' +
'COLUMN_FORMAT,COLUMN_NAME,COMMENT,COMMIT,COMMITTED,COMPLETION,COMPONENT,' +
Expand All @@ -952,53 +952,53 @@ implementation
'EXTENDED,EXTENT_SIZE,FACTOR,FAILED_LOGIN_ATTEMPTS,FALSE,FAST,FAULTS,' +
'FIELDS,FILE,FILE_BLOCK_SIZE,FILTER,FINISH,FIRST,FIRST_VALUE,FLOAT4,FLOAT8,' +
'FLUSH,FOLLOWING,FOLLOWS,FOR,FORCE,FOREIGN,FOUND,FROM,FULL,FULLTEXT,' +
'FUNCTION,GENERAL,GENERATED,GEOMCOLLECTION,GET,GET_MASTER_PUBLIC_KEY,' +
'GET_SOURCE_PUBLIC_KEY,GLOBAL,GRANT,GRANTS,GROUP,GROUPING,GROUPS,' +
'GROUP_REPLICATION,GTID_ONLY,HAVING,HELP,HIGH_PRIORITY,HISTOGRAM,HISTORY,' +
'HOST,HOSTS,HOUR_MICROSECOND,HOUR_MINUTE,HOUR_SECOND,IDENTIFIED,IGNORE,' +
'IGNORE_SERVER_IDS,IMPORT,IN,INACTIVE,INDEX,INDEXES,INFILE,INITIAL,' +
'INITIAL_SIZE,INITIATE,INNER,INOUT,INSENSITIVE,INSERT,INSERT_METHOD,' +
'INSTALL,INSTANCE,INT1,INT2,INT3,INT4,INT8,INTO,INVISIBLE,INVOKER,IO,' +
'IO_AFTER_GTIDS,IO_BEFORE_GTIDS,IO_THREAD,IPC,IS,ISOLATION,ISSUER,JOIN,' +
'JSON,JSON_TABLE,JSON_VALUE,KEY,KEYRING,KEYS,KEY_BLOCK_SIZE,KILL,LAG,' +
'LANGUAGE,LAST,LAST_VALUE,LATERAL,LEAD,LEADING,LEAVES,LESS,LEVEL,LIKE,' +
'LIMIT,LINEAR,LINES,LIST,LOAD,LOCAL,LOCK,LOCKED,LOCKS,LOGFILE,LOGS,LONG,' +
'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,' +
'MAXVALUE,MAX_CONNECTIONS_PER_HOUR,MAX_QUERIES_PER_HOUR,MAX_ROWS,MAX_SIZE,' +
'MAX_UPDATES_PER_HOUR,MAX_USER_CONNECTIONS,MEDIUM,MEMBER,MESSAGE_TEXT,' +
'MIDDLEINT,MIGRATE,MINUTE_MICROSECOND,MINUTE_SECOND,MIN_ROWS,MOD,MODE,' +
'MODIFIES,MODIFY,MUTEX,MYSQL_ERRNO,NAME,NAMES,NATURAL,NCHAR,NESTED,' +
'NETWORK_NAMESPACE,NEVER,NEW,NEXT,NO,NODEGROUP,NONE,NOT,NOWAIT,NO_WAIT,' +
'NO_WRITE_TO_BINLOG,NTH_VALUE,NTILE,NULL,NULLS,NUMBER,NVARCHAR,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_LOCK_TIME,PATH,PERCENT_RANK,PERSIST,PERSIST_ONLY,' +
'PHASE,PLUGIN,PLUGINS,PLUGIN_DIR,PORT,PRECEDES,PRECEDING,PREPARE,PRESERVE,' +
'PREV,PRIMARY,PRIVILEGES,PRIVILEGE_CHECKS_USER,PROCEDURE,PROCESS,' +
'PROCESSLIST,PROFILE,PROFILES,PROXY,PURGE,QUERY,QUICK,RANDOM,RANGE,RANK,' +
'READ,READS,READ_ONLY,READ_WRITE,REBUILD,RECOVER,RECURSIVE,REDOFILE,' +
'REDO_BUFFER_SIZE,REFERENCE,REFERENCES,REGEXP,REGISTRATION,RELAY,RELAYLOG,' +
'RELAY_LOG_FILE,RELAY_LOG_POS,RELAY_THREAD,RELEASE,RELOAD,REMOTE,REMOVE,' +
'RENAME,REORGANIZE,REPAIR,REPEATABLE,REPLACE,REPLICA,REPLICAS,' +
'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,RESET,' +
'RESIGNAL,RESOURCE,RESPECT,RESTART,RESTORE,RESTRICT,RESUME,RETAIN,RETURN,' +
'RETURNED_SQLSTATE,RETURNING,RETURNS,REUSE,REVOKE,RLIKE,ROLE,ROLLBACK,' +
'ROLLUP,ROTATE,ROUTINE,ROW,ROWS,ROW_FORMAT,ROW_NUMBER,RTREE,SAVEPOINT,' +
'SCHEDULE,SCHEMA,SCHEMAS,SCHEMA_NAME,SECONDARY,SECONDARY_ENGINE,' +
'SECONDARY_ENGINE_ATTRIBUTE,SECONDARY_LOAD,SECONDARY_UNLOAD,' +
'SECOND_MICROSECOND,SECURITY,SELECT,SENSITIVE,SEPARATOR,SERIALIZABLE,' +
'SERVER,SESSION,SET,SHARE,SHOW,SHUTDOWN,SIGNAL,SIMPLE,SKIP,SLAVE,SLOW,' +
'SNAPSHOT,SOCKET,SOME,SONAME,SOUNDS,SOURCE,SOURCE_AUTO_POSITION,' +
'FUNCTION,GENERAL,GENERATE,GENERATED,GEOMCOLLECTION,GET,' +
'GET_MASTER_PUBLIC_KEY,GET_SOURCE_PUBLIC_KEY,GLOBAL,GRANT,GRANTS,GROUP,' +
'GROUPING,GROUPS,GROUP_REPLICATION,GTID_ONLY,HAVING,HELP,HIGH_PRIORITY,' +
'HISTOGRAM,HISTORY,HOST,HOSTS,HOUR_MICROSECOND,HOUR_MINUTE,HOUR_SECOND,' +
'IDENTIFIED,IGNORE,IGNORE_SERVER_IDS,IMPORT,IN,INACTIVE,INDEX,INDEXES,' +
'INFILE,INITIAL,INITIAL_SIZE,INITIATE,INNER,INOUT,INSENSITIVE,INSERT,' +
'INSERT_METHOD,INSTALL,INSTANCE,INT1,INT2,INT3,INT4,INT8,INTERSECT,INTO,' +
'INVISIBLE,INVOKER,IO,IO_AFTER_GTIDS,IO_BEFORE_GTIDS,IO_THREAD,IPC,IS,' +
'ISOLATION,ISSUER,JOIN,JSON,JSON_TABLE,JSON_VALUE,KEY,KEYRING,KEYS,' +
'KEY_BLOCK_SIZE,KILL,LAG,LANGUAGE,LAST,LAST_VALUE,LATERAL,LEAD,LEADING,' +
'LEAVES,LESS,LEVEL,LIKE,LIMIT,LINEAR,LINES,LIST,LOAD,LOCAL,LOCK,LOCKED,' +
'LOCKS,LOGFILE,LOGS,LONG,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,MAXVALUE,MAX_CONNECTIONS_PER_HOUR,' +
'MAX_QUERIES_PER_HOUR,MAX_ROWS,MAX_SIZE,MAX_UPDATES_PER_HOUR,' +
'MAX_USER_CONNECTIONS,MEDIUM,MEMBER,MESSAGE_TEXT,MIDDLEINT,MIGRATE,' +
'MINUTE_MICROSECOND,MINUTE_SECOND,MIN_ROWS,MOD,MODE,MODIFIES,MODIFY,MUTEX,' +
'MYSQL_ERRNO,NAME,NAMES,NATURAL,NCHAR,NESTED,NETWORK_NAMESPACE,NEVER,NEW,' +
'NEXT,NO,NODEGROUP,NONE,NOT,NOWAIT,NO_WAIT,NO_WRITE_TO_BINLOG,NTH_VALUE,' +
'NTILE,NULL,NULLS,NUMBER,NVARCHAR,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,PARSE_GCOL_EXPR,PARTIAL,PARTITION,PARTITIONING,PARTITIONS,' +
'PASSWORD_LOCK_TIME,PATH,PERCENT_RANK,PERSIST,PERSIST_ONLY,PHASE,PLUGIN,' +
'PLUGINS,PLUGIN_DIR,PORT,PRECEDES,PRECEDING,PREPARE,PRESERVE,PREV,PRIMARY,' +
'PRIVILEGES,PRIVILEGE_CHECKS_USER,PROCEDURE,PROCESS,PROCESSLIST,PROFILE,' +
'PROFILES,PROXY,PURGE,QUERY,QUICK,RANDOM,RANGE,RANK,READ,READS,READ_ONLY,' +
'READ_WRITE,REBUILD,RECOVER,RECURSIVE,REDOFILE,REDO_BUFFER_SIZE,REFERENCE,' +
'REFERENCES,REGEXP,REGISTRATION,RELAY,RELAYLOG,RELAY_LOG_FILE,' +
'RELAY_LOG_POS,RELAY_THREAD,RELEASE,RELOAD,REMOTE,REMOVE,RENAME,REORGANIZE,' +
'REPAIR,REPEATABLE,REPLACE,REPLICA,REPLICAS,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,RESET,RESIGNAL,RESOURCE,RESPECT,' +
'RESTART,RESTORE,RESTRICT,RESUME,RETAIN,RETURN,RETURNED_SQLSTATE,RETURNING,' +
'RETURNS,REUSE,REVOKE,RLIKE,ROLE,ROLLBACK,ROLLUP,ROTATE,ROUTINE,ROW,ROWS,' +
'ROW_FORMAT,ROW_NUMBER,RTREE,SAVEPOINT,SCHEDULE,SCHEMA,SCHEMAS,SCHEMA_NAME,' +
'SECONDARY,SECONDARY_ENGINE,SECONDARY_ENGINE_ATTRIBUTE,SECONDARY_LOAD,' +
'SECONDARY_UNLOAD,SECOND_MICROSECOND,SECURITY,SELECT,SENSITIVE,SEPARATOR,' +
'SERIALIZABLE,SERVER,SESSION,SET,SHARE,SHOW,SHUTDOWN,SIGNAL,SIMPLE,SKIP,' +
'SLAVE,SLOW,SNAPSHOT,SOCKET,SOME,SONAME,SOUNDS,SOURCE,SOURCE_AUTO_POSITION,' +
'SOURCE_BIND,SOURCE_COMPRESSION_ALGORITHMS,SOURCE_CONNECT_RETRY,' +
'SOURCE_DELAY,SOURCE_HEARTBEAT_PERIOD,SOURCE_HOST,SOURCE_LOG_FILE,' +
'SOURCE_LOG_POS,SOURCE_PASSWORD,SOURCE_PORT,SOURCE_PUBLIC_KEY_PATH,' +
Expand All @@ -1017,10 +1017,10 @@ implementation
'TABLE_CHECKSUM,TABLE_NAME,TEMPORARY,TERMINATED,THAN,THREAD_PRIORITY,TIES,' +
'TLS,TO,TRAILING,TRANSACTION,TRIGGER,TRIGGERS,TRUE,TYPE,TYPES,UNBOUNDED,' +
'UNCOMMITTED,UNDO,UNDOFILE,UNDO_BUFFER_SIZE,UNINSTALL,UNION,UNIQUE,UNKNOWN,' +
'UNLOCK,UNREGISTER,UPDATE,UPGRADE,USAGE,USE,USER_RESOURCES,USE_FRM,USING,' +
'VALIDATION,VALUE,VALUES,VARCHARACTER,VARIABLES,VARYING,VCPU,VIEW,VIRTUAL,' +
'VISIBLE,WAIT,WARNINGS,WHERE,WINDOW,WITH,WITHOUT,WORK,WRAPPER,WRITE,X509,' +
'XA,XID,XML,XOR,YEAR_MONTH,ZONE';
'UNLOCK,UNREGISTER,UPDATE,UPGRADE,URL,USAGE,USE,USER_RESOURCES,USE_FRM,' +
'USING,VALIDATION,VALUE,VALUES,VARCHARACTER,VARIABLES,VARYING,VCPU,VIEW,' +
'VIRTUAL,VISIBLE,WAIT,WARNINGS,WHERE,WINDOW,WITH,WITHOUT,WORK,WRAPPER,' +
'WRITE,X509,XA,XID,XML,XOR,YEAR_MONTH,ZONE';

// PLSQL keywords
MySQLPLSQLKW: UnicodeString =
Expand Down
31 changes: 31 additions & 0 deletions extra/keywords-generator.php
@@ -0,0 +1,31 @@
<?php

function gen_mysql()
{
$funcs = file_get_contents('syn-mysql-funcs.txt');
$funcs = str_replace("\r\n", ',', $funcs);
$funcs = strtoupper($funcs);
$funcs = explode(",", $funcs);
//var_dump($funcs);
$htmlList = file_get_contents('keywords-mysql.html');
// <li class="listitem"><p><code class="literal">ACCESSIBLE</code>
//$htmlList = strtoupper($htmlList);
preg_match_all('#\<li[^\>]*\>\<p[^\>]*\>\<code[^\>]*\>(\w+)\</code\>#i', $htmlList, $matches);
//var_dump($matches);
$keywords = [];
foreach ($matches[1] as $kw) {
$kw = strtoupper($kw);
if(!in_array($kw, $funcs)) {
$keywords[] = $kw;
}
}
$keywords = array_unique($keywords);
asort($keywords);
$keywords = implode(' ', $keywords);
$keywords = wordwrap($keywords, 73, "\r\n");
$keywords = str_replace(' ', ',', $keywords);
$keywords = str_replace("\r\n", ",' +\r\n '", $keywords);
return $keywords;
}

echo gen_mysql();

0 comments on commit 1df6622

Please sign in to comment.