pgmanager: Add create_conn_listen() which should be used with wait_for_notify. Update wait_for_notify() to not use put_conn(). Add name to ConnectionInfo. Log queries before they are called. Log exceptions. Add notifyexample.
#!/usr/bin/env python3.2
from pgtoolkit import pgbrowser, toolbase, prettysize
class ListDependsTool(toolbase.SimpleTool):
def __init__(self):
toolbase.SimpleTool.__init__(self, name='listdepends', desc='List column dependencies.')
self.parser.add_argument('table', metavar='table', type=str, help='Table name.')
self.parser.add_argument('column', metavar='column', type=str, help='Column name.')
self.parser.add_argument('-s', '--schema', dest='schema', metavar='schema',
type=str, default='public', help='Schema name (default=public).')
self.init()
def main(self):
browser = pgbrowser.PgBrowser(self.pgm.get_conn('target'))
objects = browser.list_column_usage(self.args.table, self.args.column, schema=self.args.schema)
for obj in sorted(objects, key=lambda x: (x['type'], x['schema'], x['name'])):
print(obj['type'], ' ', obj['schema'], '.', obj['name'], sep='')
tool = ListDependsTool()
tool.main()