From 49ec848d29357ed544e741e5146c99617380c6ea Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Tue, 19 Oct 2021 15:40:50 -0400 Subject: [PATCH] refactor: add unit test for differing behavior of MySQL and MariaDB reserved word lists --- test/dialect/mysql/test_compiler.py | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/test/dialect/mysql/test_compiler.py b/test/dialect/mysql/test_compiler.py index c6c3bf99d5..126d69c9cd 100644 --- a/test/dialect/mysql/test_compiler.py +++ b/test/dialect/mysql/test_compiler.py @@ -80,6 +80,38 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL): "mysql_table.`master_ssl_verify_server_cert` FROM mysql_table", ) + def test_reserved_words_mysql_vs_mariadb(self): + # note: in the event that MariaDB adds "lead" to the list of reserved words + # at https://mariadb.com/kb/en/reserved-words/ this test will need to be + # updated. Similarly, if MySQL adds page_checksum as a reserved word, this + # will need to be updated. As of Oct. 19, 2021 this test is valid. + # + # values were taken from diff in Github pull request 7207 + table = Table( + "rw_table", + MetaData(), + Column("lead", Integer), + Column("master_ssl_verify_server_cert", Integer), + Column("page_checksum", Integer), + ) + x = select(table) + + self.assert_compile( + x, + "SELECT rw_table.lead, " + "rw_table.`master_ssl_verify_server_cert`, " + "rw_table.`page_checksum` FROM rw_table", + dialect="mariadb", + ) + + self.assert_compile( + x, + "SELECT rw_table.`lead`, " + "rw_table.`master_ssl_verify_server_cert`, " + "rw_table.page_checksum FROM rw_table", + dialect="mysql", + ) + def test_create_index_simple(self): m = MetaData() tbl = Table("testtbl", m, Column("data", String(255))) -- 2.47.3