Skip to content

Commit 9eb2056

Browse files
committed
BUG24946089: Fix unique key SQL generation
This patch fixes the unique key SQL generation. UNIQUE INDEX was used in place of UNIQUE KEY which gave rise to this error. Modifed tests to check this.
1 parent 366ee07 commit 9eb2056

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

lib/mysqlx/statement.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1266,7 +1266,7 @@ def _col_definition(self):
12661266
if self._p_key:
12671267
defn = "{0} PRIMARY KEY".format(defn)
12681268
elif self._u_index:
1269-
defn = "{0} UNIQUE INDEX".format(defn)
1269+
defn = "{0} UNIQUE KEY".format(defn)
12701270
if self._ref_table and self._ref_fields:
12711271
ref_table = quote_multipart_identifier(parse_table_name(
12721272
self._default_schema, name))

tests/test_mysqlx_crud.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ def test_create_table(self):
291291
mysqlx.ColumnType.INT).unsigned().not_null().set_default(3)) \
292292
.add_column(mysqlx.ColumnDef('rental_rate',
293293
mysqlx.ColumnType.DECIMAL, 4).decimals(2).not_null() \
294-
.set_default(4.99)) \
294+
.set_default(4.99).unique_index()) \
295295
.add_column(mysqlx.ColumnDef('length', mysqlx.ColumnType.INT) \
296296
.unsigned()) \
297297
.add_column(mysqlx.ColumnDef('replacement_cost',
@@ -313,6 +313,9 @@ def test_create_table(self):
313313
.refers_to(table_a,['language_id']).on_update('Cascade')) \
314314
.execute()
315315
self.assertTrue(film.exists_in_database())
316+
self.assertEqual(1, len(self.node_session.sql('SHOW INDEXES FROM '
317+
'{0}.{1} WHERE COLUMN_NAME = "{2}" AND NOT NON_UNIQUE'.format(
318+
self.schema.name, table_b, 'rental_rate')).execute().fetch_all()))
316319

317320
# Create table like another table
318321
lang = self.schema.create_table(table_c).like(table_a).execute()

0 commit comments

Comments
 (0)