| 115 | | myoid=rs[0][0] |
|---|
| 116 | | ## get the PK |
|---|
| 117 | | tempCursor.execute("""select c2.relname, i.indisprimary, i.indisunique, |
|---|
| 118 | | pg_catalog.pg_get_indexdef(i.indexrelid) |
|---|
| 119 | | FROM pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_index i |
|---|
| 120 | | WHERE c.oid = %s AND c.oid = i.indrelid AND i.indexrelid = c2.oid |
|---|
| 121 | | AND i.indisprimary =TRUE |
|---|
| 122 | | ORDER BY i.indisprimary DESC, i.indisunique DESC, c2.relname""" % myoid) |
|---|
| | 118 | |
|---|
| | 119 | ## get the PK the code should work well with 7.4 - 8.2 versions |
|---|
| | 120 | |
|---|
| | 121 | sqlstr = """SELECT n.nspname AS schema_name, c.relname AS table_name, |
|---|
| | 122 | c.oid AS table_oid, a.attname AS column_name, idx.n + 1 AS ordinal_position |
|---|
| | 123 | FROM pg_class c, pg_attribute a, pg_index i, pg_namespace n, generate_series(0, 31) idx(n) |
|---|
| | 124 | WHERE c.oid = a.attrelid AND c.oid = i.indrelid AND i.indisprimary AND a.attnum = i.indkey[idx.n] |
|---|
| | 125 | AND NOT a.attisdropped |
|---|
| | 126 | AND has_schema_privilege(n.oid, 'USAGE'::text) |
|---|
| | 127 | AND n.nspname NOT LIKE 'pg!_%s' ESCAPE '!' |
|---|
| | 128 | AND has_table_privilege(c.oid, 'SELECT'::text) |
|---|
| | 129 | AND c.relnamespace = n.oid and c.relname = '%s' and n.nspname = '%s' """ % ('%',localTableName,localSchemaName) |
|---|
| | 130 | |
|---|
| | 131 | tempCursor.execute(sqlstr) |
|---|