Also sort the listing of reserved words.
Fixes: #4783
Change-Id: I8a7370a424d7c78efb4916d3307600b8e85f98ac
--- /dev/null
+.. change::
+ :tags: usecase, mysql
+ :tickets: 4783
+
+ Added reserved words ARRAY and MEMBER to the MySQL reserved words list, as
+ MySQL 8.0 has now made these reserved.
+
RESERVED_WORDS = set(
[
+ "accessible",
"accessible",
"add",
+ "admin",
"all",
"alter",
"analyze",
"and",
+ "array", # 8.0
"as",
"asc",
"asensitive",
"check",
"collate",
"column",
+ "columns",
"condition",
"constraint",
"continue",
"convert",
"create",
"cross",
+ "cume_dist",
"current_date",
"current_time",
"current_timestamp",
"each",
"else",
"elseif",
+ "empty",
"enclosed",
"escaped",
+ "except",
"exists",
"exit",
"explain",
"false",
"fetch",
+ "fields",
+ "first_value",
"float",
"float4",
"float8",
"foreign",
"from",
"fulltext",
+ "function",
+ "general",
+ "generated",
+ "get",
"grant",
"group",
+ "grouping",
+ "groups",
"having",
"high_priority",
"hour_microsecond",
"hour_second",
"if",
"ignore",
+ "ignore_server_ids",
"in",
"index",
"infile",
"integer",
"interval",
"into",
+ "io_after_gtids",
+ "io_before_gtids",
"is",
"iterate",
"join",
+ "json_table",
"key",
"keys",
"kill",
+ "last_value",
"leading",
"leave",
"left",
"like",
"limit",
"linear",
+ "linear",
"lines",
"load",
"localtime",
"longtext",
"loop",
"low_priority",
+ "master_bind",
+ "master_heartbeat_period",
+ "master_ssl_verify_server_cert",
"master_ssl_verify_server_cert",
"match",
+ "maxvalue",
"mediumblob",
"mediumint",
"mediumtext",
+ "member", # 8.0
"middleint",
"minute_microsecond",
"minute_second",
"mod",
"modifies",
"natural",
- "not",
"no_write_to_binlog",
+ "not",
+ "nth_value",
+ "ntile",
"null",
"numeric",
+ "of",
"on",
+ "one_shot",
"optimize",
+ "optimizer_costs",
"option",
"optionally",
"or",
"out",
"outer",
"outfile",
+ "over",
+ "partition",
+ "percent_rank",
+ "persist",
+ "persist_only",
"precision",
"primary",
+ "privileges",
"procedure",
"purge",
"range",
+ "range",
+ "rank",
"read",
- "reads",
+ "read_only",
"read_only",
"read_write",
+ "read_write", # 5.1
+ "reads",
"real",
+ "recursive",
"references",
"regexp",
"release",
"repeat",
"replace",
"require",
+ "resignal",
"restrict",
"return",
"revoke",
"right",
"rlike",
+ "role",
+ "row",
+ "row_number",
+ "rows",
"schema",
"schemas",
"second_microsecond",
"separator",
"set",
"show",
+ "signal",
+ "slow", # 5.5
"smallint",
+ "soname",
"spatial",
"specific",
"sql",
- "sqlexception",
- "sqlstate",
- "sqlwarning",
+ "sql_after_gtids",
+ "sql_before_gtids", # 5.6
"sql_big_result",
"sql_calc_found_rows",
"sql_small_result",
+ "sqlexception",
+ "sqlstate",
+ "sqlwarning",
"ssl",
"starting",
+ "stored",
"straight_join",
+ "system",
"table",
+ "tables", # 4.1
"terminated",
"then",
"tinyblob",
"varchar",
"varcharacter",
"varying",
+ "virtual", # 5.7
"when",
"where",
"while",
+ "window", # 8.0
"with",
"write",
"x509",
"xor",
"year_month",
"zerofill", # 5.0
- "columns",
- "fields",
- "privileges",
- "soname",
- "tables", # 4.1
- "accessible",
- "linear",
- "master_ssl_verify_server_cert",
- "range",
- "read_only",
- "read_write", # 5.1
- "general",
- "ignore_server_ids",
- "master_heartbeat_period",
- "maxvalue",
- "resignal",
- "signal",
- "slow", # 5.5
- "get",
- "io_after_gtids",
- "io_before_gtids",
- "master_bind",
- "one_shot",
- "partition",
- "sql_after_gtids",
- "sql_before_gtids", # 5.6
- "generated",
- "optimizer_costs",
- "stored",
- "virtual", # 5.7
- "admin",
- "cume_dist",
- "empty",
- "except",
- "first_value",
- "grouping",
- "function",
- "groups",
- "json_table",
- "last_value",
- "nth_value",
- "ntile",
- "of",
- "over",
- "percent_rank",
- "persist",
- "persist_only",
- "rank",
- "recursive",
- "role",
- "row",
- "rows",
- "row_number",
- "system",
- "window", # 8.0
]
)