Well, that certainly appeared to be very straight forward. pg.py and
syscat.py scripts were both modified. pg.py uses it to cache a list of pks (which is seemingly does for every db connection) and various attributes. syscat uses it to walk the list of system tables and queries the various attributes from these tables. In both cases, it seemingly makes sense to apply what you've requested. Greg Copeland
This commit is contained in:
parent
147aa84c1a
commit
4f1ac055f1
2 changed files with 6 additions and 3 deletions
|
@ -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():
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue