diff --git a/src/interfaces/python/pg.py b/src/interfaces/python/pg.py index d9d34d872c..6a8d8ac78a 100644 --- a/src/interfaces/python/pg.py +++ b/src/interfaces/python/pg.py @@ -69,7 +69,8 @@ class DB: WHERE pg_class.oid = pg_attribute.attrelid AND pg_class.oid = pg_index.indrelid AND pg_index.indkey[0] = pg_attribute.attnum AND - pg_index.indisprimary = 't'""").getresult(): + pg_index.indisprimary = 't' AND + pg_attribute.attisdropped = 'f'""").getresult(): self.__pkeys__[rel] = att # wrap query for debugging @@ -111,7 +112,8 @@ class DB: WHERE pg_class.relname = '%s' AND pg_attribute.attnum > 0 AND pg_attribute.attrelid = pg_class.oid AND - pg_attribute.atttypid = pg_type.oid""" + pg_attribute.atttypid = pg_type.oid AND + pg_attribute.attisdropped = 'f'""" l = {} for attname, typname in self.db.query(query % cl).getresult(): diff --git a/src/interfaces/python/tutorial/syscat.py b/src/interfaces/python/tutorial/syscat.py index f45d62470d..1ab1d5840c 100755 --- a/src/interfaces/python/tutorial/syscat.py +++ b/src/interfaces/python/tutorial/syscat.py @@ -37,7 +37,7 @@ def list_simple_ind(pgcnx): FROM pg_class bc, pg_class ic, pg_index i, pg_attribute a WHERE i.indrelid = bc.oid AND i.indexrelid = bc.oid AND i.indkey[0] = a.attnum AND a.attrelid = bc.oid - AND i.indproc = '0'::oid + AND i.indproc = '0'::oid AND a.attisdropped = 'f' ORDER BY class_name, index_name, attname""") return result @@ -48,6 +48,7 @@ def list_all_attr(pgcnx): WHERE c.relkind = 'r' and c.relname !~ '^pg_' AND c.relname !~ '^Inv' and a.attnum > 0 AND a.attrelid = c.oid and a.atttypid = t.oid + AND a.attisdropped = 'f' ORDER BY relname, attname""") return result