summaryrefslogtreecommitdiff
path: root/connectivity/workben/postgresql/ddl.py
diff options
context:
space:
mode:
Diffstat (limited to 'connectivity/workben/postgresql/ddl.py')
-rw-r--r--connectivity/workben/postgresql/ddl.py179
1 files changed, 0 insertions, 179 deletions
diff --git a/connectivity/workben/postgresql/ddl.py b/connectivity/workben/postgresql/ddl.py
deleted file mode 100644
index 151f0b8c1fe1..000000000000
--- a/connectivity/workben/postgresql/ddl.py
+++ /dev/null
@@ -1,179 +0,0 @@
-#*************************************************************************
-#
-# The Contents of this file are made available subject to the terms of
-# either of the following licenses
-#
-# - GNU Lesser General Public License Version 2.1
-# - Sun Industry Standards Source License Version 1.1
-#
-# Sun Microsystems Inc., October, 2000
-#
-# GNU Lesser General Public License Version 2.1
-# =============================================
-# Copyright 2000 by Sun Microsystems, Inc.
-# 901 San Antonio Road, Palo Alto, CA 94303, USA
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License version 2.1, as published by the Free Software Foundation.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-#
-# Sun Industry Standards Source License Version 1.1
-# =================================================
-# The contents of this file are subject to the Sun Industry Standards
-# Source License Version 1.1 (the "License"); You may not use this file
-# except in compliance with the License. You may obtain a copy of the
-# License at http://www.openoffice.org/license.html.
-#
-# Software provided under this License is provided on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-# See the License for the specific provisions governing your rights and
-# obligations concerning the Software.
-#
-# The Initial Developer of the Original Code is: Ralph Thomas
-#
-# Copyright: 2000 by Sun Microsystems, Inc.
-#
-# All Rights Reserved.
-#
-# Contributor(s): Ralph Thomas, Joerg Budischewski
-#
-#*************************************************************************
-from com.sun.star.sdbc import SQLException
-import sys
-
-def dumpResultSet( rs ):
- meta = rs.getMetaData()
- for i in range(1, meta.getColumnCount()+1):
- sys.stdout.write(meta.getColumnName( i ) + "\t")
- sys.stdout.write( "\n" )
- while rs.next():
- for i in range( 1, meta.getColumnCount()+1):
- sys.stdout.write( rs.getString( i ) + "\t" )
- sys.stdout.write( "\n" )
- rs.beforeFirst()
-
-
-
-def executeIgnoringException( stmt, sql ):
- try:
- stmt.executeUpdate(sql)
- except SQLException:
- pass
-
-def cleanGroupsAndUsers( stmt ):
- rs = stmt.executeQuery("SELECT groname FROM pg_group WHERE groname LIKE 'pqsdbc_%'" )
- stmt2 = stmt.getConnection().createStatement()
- while rs.next():
- stmt2.executeUpdate("DROP GROUP " + rs.getString(1) )
-
- rs.close()
- rs = stmt.executeQuery( "SELECT usename FROM pg_user WHERE usename LIKE 'pqsdbc_%'" )
- while rs.next():
- stmt2.executeUpdate( "DROP USER " + rs.getString(1) )
-
-
-
-
-def executeDDLs( connection ):
-
- stmt = connection.createStatement()
-
-
- executeIgnoringException( stmt, "DROP VIEW customer2" )
- executeIgnoringException( stmt, "DROP TABLE orderpos" )
- executeIgnoringException( stmt, "DROP TABLE ordertab" )
- executeIgnoringException( stmt, "DROP TABLE product" )
- executeIgnoringException( stmt, "DROP TABLE customer" )
- executeIgnoringException( stmt, "DROP TABLE blub" )
- executeIgnoringException( stmt, "DROP TABLE foo" )
- executeIgnoringException( stmt, "DROP TABLE nooid" )
- executeIgnoringException( stmt, "DROP TABLE nooid2" )
- cleanGroupsAndUsers( stmt )
- executeIgnoringException( stmt, "DROP DOMAIN pqsdbc_short" )
- executeIgnoringException( stmt, "DROP DOMAIN pqsdbc_amount" )
- executeIgnoringException( stmt, "DROP SCHEMA pqsdbc_test" )
-
- ddls = (
- "BEGIN",
- "CREATE DOMAIN pqsdbc_short AS int2",
- "CREATE DOMAIN pqsdbc_amount AS integer",
- "CREATE USER pqsdbc_joe",
- "CREATE USER pqsdbc_susy",
- "CREATE USER pqsdbc_boss",
- "CREATE USER pqsdbc_customer", # technical user (e.g. a webfrontend)
- "CREATE GROUP pqsdbc_employees WITH USER pqsdbc_joe,pqsdbc_susy",
- "CREATE GROUP pqsdbc_admin WITH USER pqsdbc_susy,pqsdbc_boss",
- "CREATE SCHEMA pqsdbc_test",
- "CREATE TABLE customer ( "+
- "id char(8) UNIQUE PRIMARY KEY, "+
- "name text, " +
- "dummySerial serial UNIQUE) WITH OIDS",
- "COMMENT ON TABLE customer IS 'contains customer attributes'",
- "COMMENT ON COLUMN customer.id IS 'unique id'",
- "CREATE TABLE product ("+
- "id char(8) UNIQUE PRIMARY KEY,"+
- "name text,"+
- "price numeric(10,2),"+
- "image bytea) WITH OIDS",
-
- "CREATE TABLE ordertab ( "+
- "id char(8) UNIQUE PRIMARY KEY,"+
- "customerid char(8) CONSTRAINT cust REFERENCES customer(id) ON DELETE CASCADE ON UPDATE RESTRICT,"+
- "orderdate char(8),"+
- "delivered boolean ) WITH OIDS",
- "CREATE TABLE orderpos ( "+
- "orderid char(8) REFERENCES ordertab(id),"+
- "id char(3),"+
- "productid char(8) REFERENCES product(id),"+
- "amount pqsdbc_amount,"+
- "shortamount pqsdbc_short,"+
- "PRIMARY KEY (orderid,id)) WITH OIDS",
- "CREATE TABLE nooid ("+
- "id char(8) UNIQUE PRIMARY KEY,"+
- "name text) "+
- "WITHOUT OIDS",
- "CREATE TABLE nooid2 ("+
- "id serial UNIQUE PRIMARY KEY,"+
- "name text) "+
- "WITHOUT OIDS",
- "CREATE VIEW customer2 AS SELECT id,name FROM customer",
- "GRANT SELECT ON TABLE customer,product,orderpos,ordertab TO pqsdbc_customer",
- "GRANT SELECT ON TABLE product TO GROUP pqsdbc_employees",
- "GRANT SELECT,UPDATE, INSERT ON TABLE customer TO GROUP pqsdbc_employees",
- "GRANT ALL ON TABLE orderpos,ordertab TO GROUP pqsdbc_employees, GROUP pqsdbc_admin",
- "GRANT ALL ON TABLE customer TO GROUP pqsdbc_admin", # the admin is allowed to delete customers
- "GRANT ALL ON TABLE product TO pqsdbc_boss", # only the boss may change the product table
- "INSERT INTO public.customer VALUES ('C1','John Doe')",
- "INSERT INTO \"public\" . \"customer\" VALUES ('C2','Bruce Springsteen')",
-
- "INSERT INTO \"public\".product VALUES ('PZZ2','Pizza Mista',6.95,'\\003foo\\005')",
- "INSERT INTO product VALUES ('PZZ5','Pizza Funghi',5.95,'\\001foo\\005')",
- "INSERT INTO product VALUES ('PAS1','Lasagne',5.49,NULL)",
-
- "INSERT INTO ordertab VALUES ( '1', 'C2', '20030403','true')",
- "INSERT INTO ordertab VALUES ( '2', 'C1', '20030402','false')",
-
- "INSERT INTO orderpos VALUES ( '1','001', 'PZZ2',2,0)",
- "INSERT INTO orderpos VALUES ( '1','002', 'PZZ5',3,-1)",
- "INSERT INTO orderpos VALUES ( '2','001', 'PAS1',5,1)",
- "INSERT INTO orderpos VALUES ( '2','002', 'PZZ2',3,2)",
- "COMMIT" )
- for i in ddls:
- stmt.executeUpdate(i)
-
- connection.getTables() # force refresh of metadata
-
- stmt.close()