1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
from pg import *
# This library file contains some common functions not directly provided by the
# PostGres C library. It offers too a keyword interface for pgmodule connect
# function.
# encapsulate pg connect function for keywords enabling
def doconnect(dbname = None, host = None, port = None, opt = None, tty = None):
return connect(dbname, host, port, opt, tty)
# list all databases on the server
def ListDB(pgcnx):
list = []
for node in pgcnx.query("SELECT datname FROM pg_database").getresult():
list.append(node[0])
return list
# list all tables (classes) in the selected database
def ListTables(pgcnx):
list = []
for node in pgcnx.query("""SELECT relname FROM pg_class
WHERE relkind = 'r' AND
relname !~ '^Inv' AND
relname !~ '^pg_'""").getresult():
list.append(node[0])
return list
# list table fields (attribute) in given table
def ListAllFields(pgcnx, table):
list = []
for node in pgcnx.query("""SELECT c.relname, a.attname, t.typname
FROM pg_class c, pg_attribute a, pg_type t
WHERE c.relname = '%s' AND
a.attnum > 0 AND
a.attrelid = c.oid AND
a.atttypid = t.oid
ORDER BY relname, attname""" % table).getresult():
list.append(node[1], node[2])
return list
|