aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/python/tutorial/syscat.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/python/tutorial/syscat.py')
-rwxr-xr-xsrc/interfaces/python/tutorial/syscat.py149
1 files changed, 0 insertions, 149 deletions
diff --git a/src/interfaces/python/tutorial/syscat.py b/src/interfaces/python/tutorial/syscat.py
deleted file mode 100755
index 46d6d46ae07..00000000000
--- a/src/interfaces/python/tutorial/syscat.py
+++ /dev/null
@@ -1,149 +0,0 @@
-# syscat.py - parses some system catalogs
-# inspired from the PostgreSQL tutorial
-# adapted to Python 1995 by Pascal ANDRE
-
-print """
-__________________________________________________________________
-MODULE SYSCAT.PY : PARSES SOME POSTGRESQL SYSTEM CATALOGS
-
-This module is designed for being imported from python prompt
-
-In order to run the samples included here, first create a connection
-using : cnx = syscat.DB(...)
-
-The "..." should be replaced with whatever arguments you need to open an
-existing database. Usually all you need is the name of the database and,
-in fact, if it is the same as your login name, you can leave it empty.
-
-then start the demo with: syscat.demo(cnx)
-
-Some results may be empty, depending on your base status."
-
-__________________________________________________________________
-"""
-
-from pg import DB
-import sys
-
-# waits for a key
-def wait_key():
- print "Press <enter>"
- sys.stdin.read(1)
-
-# lists all simple indices
-def list_simple_ind(pgcnx):
- result = pgcnx.query("""SELECT bc.relname AS class_name,
- ic.relname AS index_name, a.attname
- 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 i.indnatts = 1
- AND a.attrelid = bc.oid AND a.attisdropped = 'f'
- ORDER BY class_name, index_name, attname""")
- return result
-
-# list all user defined attributes and their type in user-defined classes
-def list_all_attr(pgcnx):
- result = pgcnx.query("""SELECT c.relname, a.attname, t.typname
- FROM pg_class c, pg_attribute a, pg_type t
- 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
-
-# list all user defined base type
-def list_user_base_type(pgcnx):
- result = pgcnx.query("""SELECT u.usename, t.typname
- FROM pg_type t, pg_user u
- WHERE u.usesysid = int2in(int4out(t.typowner))
- AND t.typrelid = '0'::oid and t.typelem = '0'::oid
- AND u.usename <> 'postgres' order by usename, typname""")
- return result
-
-# list all right-unary operators
-def list_right_unary_operator(pgcnx):
- result = pgcnx.query("""SELECT o.oprname AS right_unary,
- lt.typname AS operand, result.typname AS return_type
- FROM pg_operator o, pg_type lt, pg_type result
- WHERE o.oprkind='r' and o.oprleft = lt.oid
- AND o.oprresult = result.oid
- ORDER BY operand""")
- return result
-
-# list all left-unary operators
-def list_left_unary_operator(pgcnx):
- result = pgcnx.query("""SELECT o.oprname AS left_unary,
- rt.typname AS operand, result.typname AS return_type
- FROM pg_operator o, pg_type rt, pg_type result
- WHERE o.oprkind='l' AND o.oprright = rt.oid
- AND o.oprresult = result.oid
- ORDER BY operand""")
- return result
-
-# list all binary operators
-def list_binary_operator(pgcnx):
- result = pgcnx.query("""SELECT o.oprname AS binary_op,
- rt.typname AS right_opr, lt.typname AS left_opr,
- result.typname AS return_type
- FROM pg_operator o, pg_type rt, pg_type lt, pg_type result
- WHERE o.oprkind = 'b' AND o.oprright = rt.oid
- AND o.oprleft = lt.oid AND o.oprresult = result.oid""")
- return result
-
-# returns the name, args and return type from all function of lang l
-def list_lang_func(pgcnx, l):
- result = pgcnx.query("""SELECT p.proname, p.pronargs, t.typname
- FROM pg_proc p, pg_language l, pg_type t
- WHERE p.prolang = l.oid AND p.prorettype = t.oid
- AND l.lanname = '%s'
- ORDER BY proname""" % l)
- return result
-
-# lists all the aggregate functions and the type to which they can be applied
-def list_agg_func(pgcnx):
- result = pgcnx.query("""SELECT p.proname, t.typname
- FROM pg_aggregate a, pg_proc p, pg_type t
- WHERE a.aggfnoid = p.oid
- and p.proargtypes[0] = t.oid
- ORDER BY proname, typname""")
- return result
-
-# lists all the operator classes that can be used with each access method as
-# well as the operators that can be used with the respective operator classes
-def list_op_class(pgcnx):
- result = pgcnx.query("""SELECT am.amname, opc.opcname, opr.oprname
- FROM pg_am am, pg_amop amop, pg_opclass opc, pg_operator opr
- WHERE amop.amopid = am.oid and amop.amopclaid = opc.oid
- AND amop.amopopr = opr.oid order by amname, opcname, oprname""")
- return result
-
-# demo function - runs all examples
-def demo(pgcnx):
- import sys, os
- save_stdout = sys.stdout
- sys.stdout = os.popen("more", "w")
- print "Listing simple indices ..."
- print list_simple_ind(pgcnx)
- print "Listing all attributes ..."
- print list_all_attr(pgcnx)
- print "Listing all user-defined base types ..."
- print list_user_base_type(pgcnx)
- print "Listing all left-unary operators defined ..."
- print list_left_unary_operator(pgcnx)
- print "Listing all right-unary operators defined ..."
- print list_right_unary_operator(pgcnx)
- print "Listing all binary operators ..."
- print list_binary_operator(pgcnx)
- print "Listing C external function linked ..."
- print list_lang_func(pgcnx, 'C')
- print "Listing C internal functions ..."
- print list_lang_func(pgcnx, 'internal')
- print "Listing SQL functions defined ..."
- print list_lang_func(pgcnx, 'sql')
- print "Listing 'aggregate functions' ..."
- print list_agg_func(pgcnx)
- print "Listing 'operator classes' ..."
- print list_op_class(pgcnx)
- del sys.stdout
- sys.stdout = save_stdout