text: # mysql/reserved_words.py
  # Copyright (C) 2005-2022 the SQLAlchemy authors and contributors
  # <see AUTHORS file>
  #
  # This module is part of SQLAlchemy and is released under
  # the MIT License: https://www.opensource.org/licenses/mit-license.php
  
  # generated using:
  # https://gist.github.com/kkirsche/4f31f2153ed7a3248be1ec44ca6ddbc9
  #
  # https://mariadb.com/kb/en/reserved-words/
  # includes: Reserved Words, Oracle Mode (separate set unioned)
  # excludes: Exceptions, Function Names
  RESERVED_WORDS_MARIADB = {
      "accessible",
      "add",
      "all",
      "alter",
      "analyze",
      "and",
      "as",
      "asc",
      "asensitive",
      "before",
      "between",
      "bigint",
      "binary",
      "blob",
      "both",
      "by",
      "call",
      "cascade",
      "case",
      "change",
      "char",
      "character",
      "check",
      "collate",
      "column",
      "condition",
      "constraint",
      "continue",
      "convert",
      "create",
      "cross",
      "current_date",
      "current_role",
      "current_time",
      "current_timestamp",
      "current_user",
      "cursor",
      "database",
      "databases",
      "day_hour",
      "day_microsecond",
      "day_minute",
      "day_second",
      "dec",
      "decimal",
      "declare",
      "default",
      "delayed",
      "delete",
      "desc",
      "describe",
      "deterministic",
      "distinct",
      "distinctrow",
      "div",
      "do_domain_ids",
      "double",
      "drop",
      "dual",
      "each",
      "else",
      "elseif",
      "enclosed",
      "escaped",
      "except",
      "exists",
      "exit",
      "explain",
      "false",
      "fetch",
      "float",
      "float4",
      "float8",
      "for",
      "force",
      "foreign",
      "from",
      "fulltext",
      "general",
      "grant",
      "group",
      "having",
      "high_priority",
      "hour_microsecond",
      "hour_minute",
      "hour_second",
      "if",
      "ignore",
      "ignore_domain_ids",
      "ignore_server_ids",
      "in",
      "index",
      "infile",
      "inner",
      "inout",
      "insensitive",
      "insert",
      "int",
      "int1",
      "int2",
      "int3",
      "int4",
      "int8",
      "integer",
      "intersect",
      "interval",
      "into",
      "is",
      "iterate",
      "join",
      "key",
      "keys",
      "kill",
      "leading",
      "leave",
      "left",
      "like",
      "limit",
      "linear",
      "lines",
      "load",
      "localtime",
      "localtimestamp",
      "lock",
      "long",
      "longblob",
      "longtext",
      "loop",
      "low_priority",
      "master_heartbeat_period",
      "master_ssl_verify_server_cert",
      "match",
      "maxvalue",
      "mediumblob",
      "mediumint",
      "mediumtext",
      "middleint",
      "minute_microsecond",
      "minute_second",
      "mod",
      "modifies",
      "natural",
      "no_write_to_binlog",
      "not",
      "null",
      "numeric",
      "offset",
      "on",
      "optimize",
      "option",
      "optionally",
      "or",
      "order",
      "out",
      "outer",
      "outfile",
      "over",
      "page_checksum",
      "parse_vcol_expr",
      "partition",
      "position",
      "precision",
      "primary",
      "procedure",
      "purge",
      "range",
      "read",
      "read_write",
      "reads",
      "real",
      "recursive",
      "ref_system_id",
      "references",
      "regexp",
      "release",
      "rename",
      "repeat",
      "replace",
      "require",
      "resignal",
      "restrict",
      "return",
      "returning",
      "revoke",
      "right",
      "rlike",
      "rows",
      "schema",
      "schemas",
      "second_microsecond",
      "select",
      "sensitive",
      "separator",
      "set",
      "show",
      "signal",
      "slow",
      "smallint",
      "spatial",
      "specific",
      "sql",
      "sql_big_result",
      "sql_calc_found_rows",
      "sql_small_result",
      "sqlexception",
      "sqlstate",
      "sqlwarning",
      "ssl",
      "starting",
      "stats_auto_recalc",
      "stats_persistent",
      "stats_sample_pages",
      "straight_join",
      "table",
      "terminated",
      "then",
      "tinyblob",
      "tinyint",
      "tinytext",
      "to",
      "trailing",
      "trigger",
      "true",
      "undo",
      "union",
      "unique",
      "unlock",
      "unsigned",
      "update",
      "usage",
      "use",
      "using",
      "utc_date",
      "utc_time",
      "utc_timestamp",
      "values",
      "varbinary",
      "varchar",
      "varcharacter",
      "varying",
      "when",
      "where",
      "while",
      "window",
      "with",
      "write",
      "xor",
      "year_month",
      "zerofill",
  }.union(
      {
          "body",
          "elsif",
          "goto",
          "history",
          "others",
          "package",
          "period",
          "raise",
          "rowtype",
          "system",
          "system_time",
          "versioning",
          "without",
      }
  )
  
  # https://dev.mysql.com/doc/refman/8.0/en/keywords.html
  # https://dev.mysql.com/doc/refman/5.7/en/keywords.html
  # https://dev.mysql.com/doc/refman/5.6/en/keywords.html
  # includes: MySQL x.0 Keywords and Reserved Words
  # excludes: MySQL x.0 New Keywords and Reserved Words,
  #       MySQL x.0 Removed Keywords and Reserved Words
  RESERVED_WORDS_MYSQL = {
      "accessible",
      "add",
      "admin",
      "all",
      "alter",
      "analyze",
      "and",
      "array",
      "as",
      "asc",
      "asensitive",
      "before",
      "between",
      "bigint",
      "binary",
      "blob",
      "both",
      "by",
      "call",
      "cascade",
      "case",
      "change",
      "char",
      "character",
      "check",
      "collate",
      "column",
      "condition",
      "constraint",
      "continue",
      "convert",
      "create",
      "cross",
      "cube",
      "cume_dist",
      "current_date",
      "current_time",
      "current_timestamp",
      "current_user",
      "cursor",
      "database",
      "databases",
      "day_hour",
      "day_microsecond",
      "day_minute",
      "day_second",
      "dec",
      "decimal",
      "declare",
      "default",
      "delayed",
      "delete",
      "dense_rank",
      "desc",
      "describe",
      "deterministic",
      "distinct",
      "distinctrow",
      "div",
      "double",
      "drop",
      "dual",
      "each",
      "else",
      "elseif",
      "empty",
      "enclosed",
      "escaped",
      "except",
      "exists",
      "exit",
      "explain",
      "false",
      "fetch",
      "first_value",
      "float",
      "float4",
      "float8",
      "for",
      "force",
      "foreign",
      "from",
      "fulltext",
      "function",
      "general",
      "generated",
      "get",
      "get_master_public_key",
      "grant",
      "group",
      "grouping",
      "groups",
      "having",
      "high_priority",
      "hour_microsecond",
      "hour_minute",
      "hour_second",
      "if",
      "ignore",
      "ignore_server_ids",
      "in",
      "index",
      "infile",
      "inner",
      "inout",
      "insensitive",
      "insert",
      "int",
      "int1",
      "int2",
      "int3",
      "int4",
      "int8",
      "integer",
      "interval",
      "into",
      "io_after_gtids",
      "io_before_gtids",
      "is",
      "iterate",
      "join",
      "json_table",
      "key",
      "keys",
      "kill",
      "lag",
      "last_value",
      "lateral",
      "lead",
      "leading",
      "leave",
      "left",
      "like",
      "limit",
      "linear",
      "lines",
      "load",
      "localtime",
      "localtimestamp",
      "lock",
      "long",
      "longblob",
      "longtext",
      "loop",
      "low_priority",
      "master_bind",
      "master_heartbeat_period",
      "master_ssl_verify_server_cert",
      "match",
      "maxvalue",
      "mediumblob",
      "mediumint",
      "mediumtext",
      "member",
      "middleint",
      "minute_microsecond",
      "minute_second",
      "mod",
      "modifies",
      "natural",
      "no_write_to_binlog",
      "not",
      "nth_value",
      "ntile",
      "null",
      "numeric",
      "of",
      "on",
      "optimize",
      "optimizer_costs",
      "option",
      "optionally",
      "or",
      "order",
      "out",
      "outer",
      "outfile",
      "over",
      "parse_gcol_expr",
      "partition",
      "percent_rank",
      "persist",
      "persist_only",
      "precision",
      "primary",
      "procedure",
      "purge",
      "range",
      "rank",
      "read",
      "read_write",
      "reads",
      "real",
      "recursive",
      "references",
      "regexp",
      "release",
      "rename",
      "repeat",
      "replace",
      "require",
      "resignal",
      "restrict",
      "return",
      "revoke",
      "right",
      "rlike",
      "role",
      "row",
      "row_number",
      "rows",
      "schema",
      "schemas",
      "second_microsecond",
      "select",
      "sensitive",
      "separator",
      "set",
      "show",
      "signal",
      "slow",
      "smallint",
      "spatial",
      "specific",
      "sql",
      "sql_after_gtids",
      "sql_before_gtids",
      "sql_big_result",
      "sql_calc_found_rows",
      "sql_small_result",
      "sqlexception",
      "sqlstate",
      "sqlwarning",
      "ssl",
      "starting",
      "stored",
      "straight_join",
      "system",
      "table",
      "terminated",
      "then",
      "tinyblob",
      "tinyint",
      "tinytext",
      "to",
      "trailing",
      "trigger",
      "true",
      "undo",
      "union",
      "unique",
      "unlock",
      "unsigned",
      "update",
      "usage",
      "use",
      "using",
      "utc_date",
      "utc_time",
      "utc_timestamp",
      "values",
      "varbinary",
      "varchar",
      "varcharacter",
      "varying",
      "virtual",
      "when",
      "where",
      "while",
      "window",
      "with",
      "write",
      "xor",
      "year_month",
      "zerofill",
  }
  