@@ -462,24 +462,41 @@ def get_unique_constraints(self, connection, table_name, schema=None, **kw):
462462 table_name = self .denormalize_name (table_name )
463463 syskeycol = self .sys_keycoluse
464464 sysconst = self .sys_tabconst
465- query = sql .select (syskeycol .c .constname , syskeycol .c .colname ).\
466- where (and_ (
467- syskeycol .c .constname == sysconst .c .constname ,
468- sysconst .c .tabname == table_name ,
469- sysconst .c .tabschema == current_schema ,
470- sysconst .c .type == 'U' )).\
471- order_by (syskeycol .c .constname )
465+ query = (
466+ sql .select (syskeycol .c .constname , syskeycol .c .colname )
467+ .select_from (
468+ join (
469+ syskeycol ,
470+ sysconst ,
471+ and_ (
472+ syskeycol .c .constname == sysconst .c .constname ,
473+ syskeycol .c .tabschema == sysconst .c .tabschema ,
474+ syskeycol .c .tabname == sysconst .c .tabname ,
475+ ),
476+ )
477+ )
478+ .where (
479+ and_ (
480+ sysconst .c .tabname == table_name ,
481+ sysconst .c .tabschema == current_schema ,
482+ sysconst .c .type == "U" ,
483+ )
484+ )
485+ .order_by (syskeycol .c .constname )
486+ )
472487 uniqueConsts = []
473488 currConst = None
474489 for r in connection .execute (query ):
475490 if currConst == r [0 ]:
476- uniqueConsts [- 1 ][' column_names' ].append (self .normalize_name (r [1 ]))
491+ uniqueConsts [- 1 ][" column_names" ].append (self .normalize_name (r [1 ]))
477492 else :
478493 currConst = r [0 ]
479- uniqueConsts .append ({
480- 'name' : self .normalize_name (currConst ),
481- 'column_names' : [self .normalize_name (r [1 ])],
482- })
494+ uniqueConsts .append (
495+ {
496+ "name" : self .normalize_name (currConst ),
497+ "column_names" : [self .normalize_name (r [1 ])],
498+ }
499+ )
483500 return uniqueConsts
484501
485502
@@ -779,7 +796,7 @@ def get_indexes(self, connection, table_name, schema=None, **kw):
779796 current_schema = self .denormalize_name (
780797 schema or self .default_schema_name )
781798 table_name = self .denormalize_name (table_name )
782-
799+
783800 sysidx = self .sys_indexes
784801 syskey = self .sys_keys
785802
@@ -1170,22 +1187,39 @@ def get_unique_constraints(self, connection, table_name, schema=None, **kw):
11701187 table_name = self .denormalize_name (table_name )
11711188 syskeycol = self .sys_keycoluse
11721189 sysconst = self .sys_tabconst
1173- query = sql .select (syskeycol .c .constname , syskeycol .c .colname ).\
1174- where (and_ (
1175- syskeycol .c .constname == sysconst .c .constname ,
1176- sysconst .c .tabname == table_name ,
1177- sysconst .c .tabschema == current_schema ,
1178- sysconst .c .type == 'U' )).\
1179- order_by (syskeycol .c .constname )
1190+ query = (
1191+ sql .select (syskeycol .c .constname , syskeycol .c .colname )
1192+ .select_from (
1193+ join (
1194+ syskeycol ,
1195+ sysconst ,
1196+ and_ (
1197+ syskeycol .c .constname == sysconst .c .constname ,
1198+ syskeycol .c .tabschema == sysconst .c .tabschema ,
1199+ syskeycol .c .tabname == sysconst .c .tabname ,
1200+ ),
1201+ )
1202+ )
1203+ .where (
1204+ and_ (
1205+ sysconst .c .tabname == table_name ,
1206+ sysconst .c .tabschema == current_schema ,
1207+ sysconst .c .type == "U" ,
1208+ )
1209+ )
1210+ .order_by (syskeycol .c .constname )
1211+ )
11801212 uniqueConsts = []
11811213 currConst = None
11821214 for r in connection .execute (query ):
11831215 if currConst == r [0 ]:
1184- uniqueConsts [- 1 ][' column_names' ].append (self .normalize_name (r [1 ]))
1216+ uniqueConsts [- 1 ][" column_names" ].append (self .normalize_name (r [1 ]))
11851217 else :
11861218 currConst = r [0 ]
1187- uniqueConsts .append ({
1188- 'name' : self .normalize_name (currConst ),
1189- 'column_names' : [self .normalize_name (r [1 ])],
1190- })
1219+ uniqueConsts .append (
1220+ {
1221+ "name" : self .normalize_name (currConst ),
1222+ "column_names" : [self .normalize_name (r [1 ])],
1223+ }
1224+ )
11911225 return uniqueConsts
0 commit comments