Fix Duplicate table constraints (#19502)

This commit is contained in:
Suman Maharana 2025-01-24 13:35:53 +05:30 committed by GitHub
parent 1e7377c2e4
commit 94ed7e3c1a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 7 deletions

View File

@ -683,7 +683,7 @@ class CommonDbSourceService(
foreign_constraint = self._prepare_foreign_constraints( foreign_constraint = self._prepare_foreign_constraints(
supports_database, column, table_name, schema_name, db_name, columns supports_database, column, table_name, schema_name, db_name, columns
) )
if foreign_constraint: if foreign_constraint and foreign_constraint not in foreign_constraints:
foreign_constraints.append(foreign_constraint) foreign_constraints.append(foreign_constraint)
return foreign_constraints return foreign_constraints
@ -707,7 +707,11 @@ class CommonDbSourceService(
) )
if foreign_table_constraints: if foreign_table_constraints:
if table_constraints: if table_constraints:
table_constraints.extend(foreign_table_constraints) table_constraints.extend(
constraint
for constraint in foreign_table_constraints
if constraint not in table_constraints
)
else: else:
table_constraints = foreign_table_constraints table_constraints = foreign_table_constraints
return table_constraints return table_constraints

View File

@ -226,6 +226,10 @@ class SqlColumnHandlerMixin:
if len(col) == 1: if len(col) == 1:
column_level_unique_constraints.add(col[0]) column_level_unique_constraints.add(col[0])
else: else:
if not any(
tc.constraintType == ConstraintType.UNIQUE and tc.columns == col
for tc in table_constraints
):
table_constraints.append( table_constraints.append(
TableConstraint( TableConstraint(
constraintType=ConstraintType.UNIQUE, constraintType=ConstraintType.UNIQUE,