test(postgres): enable test_unique_index_on_alter for postgres (#34719)
* test(postgres): enable test_unique_index_on_alter for postgres * perf(postgres): Prevent redundant unique index creation on new columns
This commit is contained in:
parent
73a1e89eca
commit
5fecde5a6a
2 changed files with 6 additions and 4 deletions
|
|
@ -76,6 +76,8 @@ class PostgresTable(DBTable):
|
|||
|
||||
query = [f"ADD COLUMN `{col.fieldname}` {col.get_definition()}" for col in self.add_column]
|
||||
|
||||
new_column_names = {col.fieldname for col in self.add_column}
|
||||
|
||||
for col in self.change_type:
|
||||
using_clause = ""
|
||||
if col.fieldtype in ("Datetime"):
|
||||
|
|
@ -124,9 +126,10 @@ class PostgresTable(DBTable):
|
|||
|
||||
for col in self.add_unique:
|
||||
# if index key not exists
|
||||
create_contraint_query += 'CREATE UNIQUE INDEX IF NOT EXISTS "unique_{index_name}" ON `{table_name}`(`{field}`);'.format(
|
||||
index_name=col.fieldname, table_name=self.table_name, field=col.fieldname
|
||||
)
|
||||
if col.fieldname not in new_column_names:
|
||||
create_contraint_query += 'CREATE UNIQUE INDEX IF NOT EXISTS "unique_{index_name}" ON `{table_name}`(`{field}`);'.format(
|
||||
index_name=col.fieldname, table_name=self.table_name, field=col.fieldname
|
||||
)
|
||||
|
||||
drop_contraint_query = ""
|
||||
for col in self.drop_index:
|
||||
|
|
|
|||
|
|
@ -139,7 +139,6 @@ class TestDBUpdate(IntegrationTestCase):
|
|||
with self.subTest(f"Checking index {doctype.name} - {field.fieldname}"):
|
||||
self.check_unique_indexes(doctype.name, field.fieldname)
|
||||
|
||||
@run_only_if(db_type_is.MARIADB)
|
||||
def test_unique_index_on_alter(self):
|
||||
"""Only one unique index should be added"""
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue