summaryrefslogtreecommitdiff
path: root/test/dialect/mysql/test_compiler.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2017-04-05 20:59:42 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2017-04-06 12:12:26 -0400
commit93b11905e599a6d73a85d2085e15385ebf46cdc6 (patch)
tree5d6b770d7e5513cc180d264836fb23811f3755f0 /test/dialect/mysql/test_compiler.py
parent764126039cd25044f0eefd002bb6b49065eed3ce (diff)
downloadsqlalchemy-93b11905e599a6d73a85d2085e15385ebf46cdc6.tar.gz
Consider mysql partition options separately from other table options
Move down all the PARTITION, SUBPARTITION options into a separate segment so that they come out at the end of CREATE TABLE after the table options. Change-Id: Iaa1c823848c93680ca22d72bda1b7c49742b9060 Fixes: #3961
Diffstat (limited to 'test/dialect/mysql/test_compiler.py')
-rw-r--r--test/dialect/mysql/test_compiler.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/dialect/mysql/test_compiler.py b/test/dialect/mysql/test_compiler.py
index 35ff603a8..be5f002e3 100644
--- a/test/dialect/mysql/test_compiler.py
+++ b/test/dialect/mysql/test_compiler.py
@@ -607,6 +607,26 @@ class SQLTest(fixtures.TestBase, AssertsCompiledSQL):
')PARTITION BY KEY(other_id) PARTITIONS 2'
)
+ def test_create_table_with_subpartition(self):
+ t1 = Table(
+ 'testtable', MetaData(),
+ Column('id', Integer(), primary_key=True, autoincrement=True),
+ Column('other_id', Integer(), primary_key=True,
+ autoincrement=False),
+ mysql_partitions='2',
+ mysql_partition_by='KEY(other_id)',
+ mysql_subpartition_by="HASH(some_expr)",
+ mysql_subpartitions='2')
+ self.assert_compile(
+ schema.CreateTable(t1),
+ 'CREATE TABLE testtable ('
+ 'id INTEGER NOT NULL AUTO_INCREMENT, '
+ 'other_id INTEGER NOT NULL, '
+ 'PRIMARY KEY (id, other_id)'
+ ')PARTITION BY KEY(other_id) PARTITIONS 2 '
+ 'SUBPARTITION BY HASH(some_expr) SUBPARTITIONS 2'
+ )
+
def test_create_table_with_partition_hash(self):
t1 = Table(
'testtable', MetaData(),
@@ -623,6 +643,23 @@ class SQLTest(fixtures.TestBase, AssertsCompiledSQL):
')PARTITION BY HASH(other_id) PARTITIONS 2'
)
+ def test_create_table_with_partition_and_other_opts(self):
+ t1 = Table(
+ 'testtable', MetaData(),
+ Column('id', Integer(), primary_key=True, autoincrement=True),
+ Column('other_id', Integer(), primary_key=True,
+ autoincrement=False),
+ mysql_stats_sample_pages='2',
+ mysql_partitions='2', mysql_partition_by='HASH(other_id)')
+ self.assert_compile(
+ schema.CreateTable(t1),
+ 'CREATE TABLE testtable ('
+ 'id INTEGER NOT NULL AUTO_INCREMENT, '
+ 'other_id INTEGER NOT NULL, '
+ 'PRIMARY KEY (id, other_id)'
+ ')STATS_SAMPLE_PAGES=2 PARTITION BY HASH(other_id) PARTITIONS 2'
+ )
+
def test_inner_join(self):
t1 = table('t1', column('x'))
t2 = table('t2', column('y'))