aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/jdbc/example/metadata.java
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2001-10-25 06:00:05 +0000
committerBruce Momjian <bruce@momjian.us>2001-10-25 06:00:05 +0000
commitd2e27b0674e238a4f94f1c190a395a530746d5d3 (patch)
treed654e117fdc20ecb84da14052fad5124c9f32012 /src/interfaces/jdbc/example/metadata.java
parentb81844b1738c584d92330a5ccd0fbd8b603d2886 (diff)
downloadpostgresql-d2e27b0674e238a4f94f1c190a395a530746d5d3.tar.gz
postgresql-d2e27b0674e238a4f94f1c190a395a530746d5d3.zip
pgjindent jdbc files. First time jdbc files were formatted.
Diffstat (limited to 'src/interfaces/jdbc/example/metadata.java')
-rw-r--r--src/interfaces/jdbc/example/metadata.java536
1 files changed, 280 insertions, 256 deletions
diff --git a/src/interfaces/jdbc/example/metadata.java b/src/interfaces/jdbc/example/metadata.java
index 8d674122739..182e4533e0c 100644
--- a/src/interfaces/jdbc/example/metadata.java
+++ b/src/interfaces/jdbc/example/metadata.java
@@ -15,260 +15,284 @@ import java.text.*;
public class metadata
{
- Connection db; // The connection to the database
- Statement st; // Our statement to run queries with
- DatabaseMetaData dbmd; // This defines the structure of the database
-
- /**
- * These are the available tests on DatabaseMetaData
- */
- public void doDatabaseMetaData() throws SQLException {
- if(doTest("getProcedures() - should show all available procedures"))
- displayResult(dbmd.getProcedures(null,null,null));
-
- if(doTest("getProcedures() with pattern - should show all circle procedures"))
- displayResult(dbmd.getProcedures(null,null,"circle%"));
-
- if(doTest("getProcedureColumns() on circle procedures"))
- displayResult(dbmd.getProcedureColumns(null,null,"circle%",null));
-
- if(doTest("getTables()"))
- displayResult(dbmd.getTables(null,null,null,null));
-
- if(doTest("getColumns() - should show all tables, can take a while to run"))
- displayResult(dbmd.getColumns(null,null,null,null));
-
- if(doTest("getColumns() - should show the test_b table"))
- displayResult(dbmd.getColumns(null,null,"test_b",null));
-
- if(doTest("getColumnPrivileges() - should show all tables"))
- displayResult(dbmd.getColumnPrivileges(null,null,null,null));
-
- if(doTest("getPrimaryKeys()"))
- displayResult(dbmd.getPrimaryKeys(null,null,null));
-
- if(doTest("getTypeInfo()"))
- displayResult(dbmd.getTypeInfo());
-
- }
-
- /**
- * These are the available tests on ResultSetMetaData
- */
- public void doResultSetMetaData() throws SQLException {
-
- String sql = "select imagename,descr,source,cost from test_a,test_b,test_c where test_a.id=test_b.imageid and test_a.id=test_c.imageid";
-
- System.out.println("Executing query for tests");
- ResultSet rs = st.executeQuery(sql);
- ResultSetMetaData rsmd = rs.getMetaData();
-
- if(doTest("isCurrency()"))
- System.out.println("isCurrency on col 1 = "+rsmd.isCurrency(1)+" should be false\nisCurrency on col 4 = "+rsmd.isCurrency(4)+" should be true");
-
- // Finally close the query. Now give the user a chance to display the
- // ResultSet.
- //
- // NB: displayResult() actually closes the ResultSet.
- if(doTest("Display query result")) {
- System.out.println("Query: "+sql);
- displayResult(rs);
- } else
- rs.close();
- }
-
- /**
- * This creates some test data
- */
- public void init() throws SQLException {
- System.out.println("Creating some tables");
- cleanup();
- st.executeUpdate("create table test_a (imagename name,image oid,id int4)");
- st.executeUpdate("create table test_b (descr text,imageid int4,id int4)");
- st.executeUpdate("create table test_c (source text,cost money,imageid int4)");
-
- System.out.println("Adding some data");
- st.executeUpdate("insert into test_a values ('test1',0,1)");
- st.executeUpdate("insert into test_b values ('A test description',1,2)");
- st.executeUpdate("insert into test_c values ('nowhere particular','$10.99',1)");
- }
-
- /**
- * This removes the test data
- */
- public void cleanup() throws SQLException {
- try {
- st.executeUpdate("drop table test_a");
- st.executeUpdate("drop table test_b");
- st.executeUpdate("drop table test_c");
- } catch(Exception ex) {
- // We ignore any errors here
- }
- }
-
- public metadata(String args[]) throws ClassNotFoundException, FileNotFoundException, IOException, SQLException
- {
- String url = args[0];
- String usr = args[1];
- String pwd = args[2];
-
- // Load the driver
- Class.forName("org.postgresql.Driver");
-
- // Connect to database
- System.out.println("Connecting to Database URL = " + url);
- db = DriverManager.getConnection(url, usr, pwd);
-
- dbmd = db.getMetaData();
- st = db.createStatement();
-
- // This prints the backend's version
- System.out.println("Connected to "+dbmd.getDatabaseProductName()+" "+dbmd.getDatabaseProductVersion());
-
- init();
-
- System.out.println();
-
- // Now the tests
- if(doTest("Test DatabaseMetaData"))
- doDatabaseMetaData();
-
- if(doTest("Test ResultSetMetaData"))
- doResultSetMetaData();
-
- System.out.println("\nNow closing the connection");
- st.close();
- db.close();
-
- cleanup();
- }
-
- /**
- * This asks if the user requires to run a test.
- */
- public boolean doTest(String s) {
- System.out.println();
- System.out.print(s);
- System.out.print(" Perform test? Y or N:");
- System.out.flush();
- char c = ' ';
- try {
- while(!(c=='n' || c=='y' || c=='N' || c=='Y')) {
- c=(char)System.in.read();
- }
- } catch(IOException ioe) {
- return false;
- }
-
- return c=='y' || c=='Y';
- }
-
- /**
- * This displays a result set.
- * Note: it closes the result once complete.
- */
- public void displayResult(ResultSet rs) throws SQLException
- {
- ResultSetMetaData rsmd = rs.getMetaData();
- int count=0;
-
- // Print the result column names
- int cols = rsmd.getColumnCount();
- for(int i=1;i<=cols;i++)
- System.out.print(rsmd.getColumnLabel(i)+(i<cols?"\t":"\n"));
-
- // now the results
- while(rs.next()) {
- count++;
- for(int i=1;i<=cols;i++) {
- Object o = rs.getObject(i);
- if(rs.wasNull())
- System.out.print("{null}"+(i<cols?"\t":"\n"));
- else
- System.out.print(o.toString()+(i<cols?"\t":"\n"));
- }
- }
-
- System.out.println("Result returned "+count+" rows.");
-
- // finally close the result set
- rs.close();
- }
-
- /**
- * This process / commands (for now just /d)
- */
- public void processSlashCommand(String line) throws SQLException
- {
- if(line.startsWith("\\d")) {
-
- if(line.startsWith("\\d ")) {
- // Display details about a table
- String table=line.substring(3);
- displayResult(dbmd.getColumns(null,null,table,"%"));
- } else {
- String types[] = null;
- if(line.equals("\\d"))
- types=allUserTables;
- else if(line.equals("\\di"))
- types=usrIndices;
- else if(line.equals("\\dt"))
- types=usrTables;
- else if(line.equals("\\ds"))
- types=usrSequences;
- else if(line.equals("\\dS"))
- types=sysTables;
- else
- throw new SQLException("Unsupported \\d command: "+line);
-
- // Display details about all system tables
- //
- // Note: the first two arguments are ignored. To keep to the spec,
- // you must put null here
- //
- displayResult(dbmd.getTables(null,null,"%",types));
- }
- } else
- throw new SQLException("Unsupported \\ command: "+line);
- }
-
- private static final String allUserTables[] = {"TABLE","INDEX","SEQUENCE"};
- private static final String usrIndices[] = {"INDEX"};
- private static final String usrTables[] = {"TABLE"};
- private static final String usrSequences[] = {"SEQUENCE"};
- private static final String sysTables[] = {"SYSTEM TABLE","SYSTEM INDEX"};
-
- /**
- * Display some instructions on how to run the example
- */
- public static void instructions()
- {
- System.out.println("\nThis is not really an example, but is used to test the various methods in\nthe DatabaseMetaData and ResultSetMetaData classes.\n");
- System.out.println("Useage:\n java example.metadata jdbc:postgresql:database user password [debug]\n\nThe debug field can be anything. It's presence will enable DriverManager's\ndebug trace. Unless you want to see screens of debug items, don't put anything in\nhere.");
- System.exit(1);
- }
-
- /**
- * This little lot starts the test
- */
- public static void main(String args[])
- {
- System.out.println("PostgreSQL metdata tester v6.4 rev 1\n");
-
- if(args.length<3)
- instructions();
-
- // This line outputs debug information to stderr. To enable this, simply
- // add an extra parameter to the command line
- if(args.length>3)
- DriverManager.setLogStream(System.err);
-
- // Now run the tests
- try {
- metadata test = new metadata(args);
- } catch(Exception ex) {
- System.err.println("Exception caught.\n"+ex);
- ex.printStackTrace();
- }
- }
+ Connection db; // The connection to the database
+ Statement st; // Our statement to run queries with
+ DatabaseMetaData dbmd; // This defines the structure of the database
+
+ /**
+ * These are the available tests on DatabaseMetaData
+ */
+ public void doDatabaseMetaData() throws SQLException
+ {
+ if (doTest("getProcedures() - should show all available procedures"))
+ displayResult(dbmd.getProcedures(null, null, null));
+
+ if (doTest("getProcedures() with pattern - should show all circle procedures"))
+ displayResult(dbmd.getProcedures(null, null, "circle%"));
+
+ if (doTest("getProcedureColumns() on circle procedures"))
+ displayResult(dbmd.getProcedureColumns(null, null, "circle%", null));
+
+ if (doTest("getTables()"))
+ displayResult(dbmd.getTables(null, null, null, null));
+
+ if (doTest("getColumns() - should show all tables, can take a while to run"))
+ displayResult(dbmd.getColumns(null, null, null, null));
+
+ if (doTest("getColumns() - should show the test_b table"))
+ displayResult(dbmd.getColumns(null, null, "test_b", null));
+
+ if (doTest("getColumnPrivileges() - should show all tables"))
+ displayResult(dbmd.getColumnPrivileges(null, null, null, null));
+
+ if (doTest("getPrimaryKeys()"))
+ displayResult(dbmd.getPrimaryKeys(null, null, null));
+
+ if (doTest("getTypeInfo()"))
+ displayResult(dbmd.getTypeInfo());
+
+ }
+
+ /**
+ * These are the available tests on ResultSetMetaData
+ */
+ public void doResultSetMetaData() throws SQLException
+ {
+
+ String sql = "select imagename,descr,source,cost from test_a,test_b,test_c where test_a.id=test_b.imageid and test_a.id=test_c.imageid";
+
+ System.out.println("Executing query for tests");
+ ResultSet rs = st.executeQuery(sql);
+ ResultSetMetaData rsmd = rs.getMetaData();
+
+ if (doTest("isCurrency()"))
+ System.out.println("isCurrency on col 1 = " + rsmd.isCurrency(1) + " should be false\nisCurrency on col 4 = " + rsmd.isCurrency(4) + " should be true");
+
+ // Finally close the query. Now give the user a chance to display the
+ // ResultSet.
+ //
+ // NB: displayResult() actually closes the ResultSet.
+ if (doTest("Display query result"))
+ {
+ System.out.println("Query: " + sql);
+ displayResult(rs);
+ }
+ else
+ rs.close();
+ }
+
+ /**
+ * This creates some test data
+ */
+ public void init() throws SQLException
+ {
+ System.out.println("Creating some tables");
+ cleanup();
+ st.executeUpdate("create table test_a (imagename name,image oid,id int4)");
+ st.executeUpdate("create table test_b (descr text,imageid int4,id int4)");
+ st.executeUpdate("create table test_c (source text,cost money,imageid int4)");
+
+ System.out.println("Adding some data");
+ st.executeUpdate("insert into test_a values ('test1',0,1)");
+ st.executeUpdate("insert into test_b values ('A test description',1,2)");
+ st.executeUpdate("insert into test_c values ('nowhere particular','$10.99',1)");
+ }
+
+ /**
+ * This removes the test data
+ */
+ public void cleanup() throws SQLException
+ {
+ try
+ {
+ st.executeUpdate("drop table test_a");
+ st.executeUpdate("drop table test_b");
+ st.executeUpdate("drop table test_c");
+ }
+ catch (Exception ex)
+ {
+ // We ignore any errors here
+ }
+ }
+
+ public metadata(String args[]) throws ClassNotFoundException, FileNotFoundException, IOException, SQLException
+ {
+ String url = args[0];
+ String usr = args[1];
+ String pwd = args[2];
+
+ // Load the driver
+ Class.forName("org.postgresql.Driver");
+
+ // Connect to database
+ System.out.println("Connecting to Database URL = " + url);
+ db = DriverManager.getConnection(url, usr, pwd);
+
+ dbmd = db.getMetaData();
+ st = db.createStatement();
+
+ // This prints the backend's version
+ System.out.println("Connected to " + dbmd.getDatabaseProductName() + " " + dbmd.getDatabaseProductVersion());
+
+ init();
+
+ System.out.println();
+
+ // Now the tests
+ if (doTest("Test DatabaseMetaData"))
+ doDatabaseMetaData();
+
+ if (doTest("Test ResultSetMetaData"))
+ doResultSetMetaData();
+
+ System.out.println("\nNow closing the connection");
+ st.close();
+ db.close();
+
+ cleanup();
+ }
+
+ /**
+ * This asks if the user requires to run a test.
+ */
+ public boolean doTest(String s)
+ {
+ System.out.println();
+ System.out.print(s);
+ System.out.print(" Perform test? Y or N:");
+ System.out.flush();
+ char c = ' ';
+ try
+ {
+ while (!(c == 'n' || c == 'y' || c == 'N' || c == 'Y'))
+ {
+ c = (char)System.in.read();
+ }
+ }
+ catch (IOException ioe)
+ {
+ return false;
+ }
+
+ return c == 'y' || c == 'Y';
+ }
+
+ /**
+ * This displays a result set.
+ * Note: it closes the result once complete.
+ */
+ public void displayResult(ResultSet rs) throws SQLException
+ {
+ ResultSetMetaData rsmd = rs.getMetaData();
+ int count = 0;
+
+ // Print the result column names
+ int cols = rsmd.getColumnCount();
+ for (int i = 1;i <= cols;i++)
+ System.out.print(rsmd.getColumnLabel(i) + (i < cols ? "\t" : "\n"));
+
+ // now the results
+ while (rs.next())
+ {
+ count++;
+ for (int i = 1;i <= cols;i++)
+ {
+ Object o = rs.getObject(i);
+ if (rs.wasNull())
+ System.out.print("{null}" + (i < cols ? "\t" : "\n"));
+ else
+ System.out.print(o.toString() + (i < cols ? "\t" : "\n"));
+ }
+ }
+
+ System.out.println("Result returned " + count + " rows.");
+
+ // finally close the result set
+ rs.close();
+ }
+
+ /**
+ * This process / commands (for now just /d)
+ */
+ public void processSlashCommand(String line) throws SQLException
+ {
+ if (line.startsWith("\\d"))
+ {
+
+ if (line.startsWith("\\d "))
+ {
+ // Display details about a table
+ String table = line.substring(3);
+ displayResult(dbmd.getColumns(null, null, table, "%"));
+ }
+ else
+ {
+ String types[] = null;
+ if (line.equals("\\d"))
+ types = allUserTables;
+ else if (line.equals("\\di"))
+ types = usrIndices;
+ else if (line.equals("\\dt"))
+ types = usrTables;
+ else if (line.equals("\\ds"))
+ types = usrSequences;
+ else if (line.equals("\\dS"))
+ types = sysTables;
+ else
+ throw new SQLException("Unsupported \\d command: " + line);
+
+ // Display details about all system tables
+ //
+ // Note: the first two arguments are ignored. To keep to the spec,
+ // you must put null here
+ //
+ displayResult(dbmd.getTables(null, null, "%", types));
+ }
+ }
+ else
+ throw new SQLException("Unsupported \\ command: " + line);
+ }
+
+ private static final String allUserTables[] = {"TABLE", "INDEX", "SEQUENCE"};
+ private static final String usrIndices[] = {"INDEX"};
+ private static final String usrTables[] = {"TABLE"};
+ private static final String usrSequences[] = {"SEQUENCE"};
+ private static final String sysTables[] = {"SYSTEM TABLE", "SYSTEM INDEX"};
+
+ /**
+ * Display some instructions on how to run the example
+ */
+ public static void instructions()
+ {
+ System.out.println("\nThis is not really an example, but is used to test the various methods in\nthe DatabaseMetaData and ResultSetMetaData classes.\n");
+ System.out.println("Useage:\n java example.metadata jdbc:postgresql:database user password [debug]\n\nThe debug field can be anything. It's presence will enable DriverManager's\ndebug trace. Unless you want to see screens of debug items, don't put anything in\nhere.");
+ System.exit(1);
+ }
+
+ /**
+ * This little lot starts the test
+ */
+ public static void main(String args[])
+ {
+ System.out.println("PostgreSQL metdata tester v6.4 rev 1\n");
+
+ if (args.length < 3)
+ instructions();
+
+ // This line outputs debug information to stderr. To enable this, simply
+ // add an extra parameter to the command line
+ if (args.length > 3)
+ DriverManager.setLogStream(System.err);
+
+ // Now run the tests
+ try
+ {
+ metadata test = new metadata(args);
+ }
+ catch (Exception ex)
+ {
+ System.err.println("Exception caught.\n" + ex);
+ ex.printStackTrace();
+ }
+ }
}