]> granicus.if.org Git - postgresql/commitdiff
Indent jdbc case labels using pgjindent.
authorBruce Momjian <bruce@momjian.us>
Mon, 19 Nov 2001 23:16:46 +0000 (23:16 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 19 Nov 2001 23:16:46 +0000 (23:16 +0000)
32 files changed:
src/interfaces/jdbc/example/ImageViewer.java
src/interfaces/jdbc/example/Unicode.java
src/interfaces/jdbc/example/basic.java
src/interfaces/jdbc/example/blobtest.java
src/interfaces/jdbc/example/corba/StockClient.java
src/interfaces/jdbc/example/datestyle.java
src/interfaces/jdbc/example/metadata.java
src/interfaces/jdbc/example/psql.java
src/interfaces/jdbc/example/threadsafe.java
src/interfaces/jdbc/org/postgresql/Connection.java
src/interfaces/jdbc/org/postgresql/PG_Stream.java
src/interfaces/jdbc/org/postgresql/PostgresqlDataSource.java
src/interfaces/jdbc/org/postgresql/Statement.java
src/interfaces/jdbc/org/postgresql/core/BytePoolDim1.java
src/interfaces/jdbc/org/postgresql/core/BytePoolDim2.java
src/interfaces/jdbc/org/postgresql/core/QueryExecutor.java
src/interfaces/jdbc/org/postgresql/fastpath/Fastpath.java
src/interfaces/jdbc/org/postgresql/geometric/PGpath.java
src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java
src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java
src/interfaces/jdbc/org/postgresql/jdbc1/ResultSet.java
src/interfaces/jdbc/org/postgresql/jdbc1/ResultSetMetaData.java
src/interfaces/jdbc/org/postgresql/jdbc2/Array.java
src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java
src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java
src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java
src/interfaces/jdbc/org/postgresql/jdbc2/ResultSetMetaData.java
src/interfaces/jdbc/org/postgresql/test/jdbc2/BlobTest.java
src/interfaces/jdbc/org/postgresql/test/jdbc2/ResultSetTest.java
src/interfaces/jdbc/org/postgresql/util/PGtokenizer.java
src/interfaces/jdbc/org/postgresql/xa/XADataSourceImpl.java
src/tools/pgindent/pgjindent

index 9540bfa67edaafc5c19adf39638db0c36aea39de..f61a8870e7be88c0e336b4bd0ed838bef5806a5b 100644 (file)
@@ -291,7 +291,6 @@ public class ImageViewer implements ItemListener
 
                public void run()
                {
-
                        // Now the real import stuff
                        if (name != null && dir != null)
                        {
index 0d84c719a509ae9038dea8607d865c3eb6eefbf2..2312742235ba8224a2fcee0ef3afecfcb59b8671 100644 (file)
@@ -214,21 +214,21 @@ public class Unicode
                {
                        switch (mode)
                        {
-                       case CREATE:
-                               log("Exception creating database", sqle);
-                               break;
-                       case INSERT:
-                               log("Exception inserting block " + blockNum, sqle);
-                               break;
-                       case SELECT:
-                               log("Exception selecting block " + blockNum, sqle);
-                               break;
-                       case LIKE:
-                               log("Exception doing LIKE on block " + blockNum, sqle);
-                               break;
-                       default:
-                               log("Exception", sqle);
-                               break;
+                               case CREATE:
+                                       log("Exception creating database", sqle);
+                                       break;
+                               case INSERT:
+                                       log("Exception inserting block " + blockNum, sqle);
+                                       break;
+                               case SELECT:
+                                       log("Exception selecting block " + blockNum, sqle);
+                                       break;
+                               case LIKE:
+                                       log("Exception doing LIKE on block " + blockNum, sqle);
+                                       break;
+                               default:
+                                       log("Exception", sqle);
+                                       break;
                        }
                }
                catch (ClassNotFoundException cnfe)
index 61b35abc4590579f8183e579ef8bf60216d13e5b..f01cb9cb8c572ea4e8962343581feefc85d88389 100644 (file)
@@ -6,7 +6,7 @@ import java.text.*;
 
 /*
  *
- * $Id: basic.java,v 1.9 2001/11/19 22:43:13 momjian Exp $
+ * $Id: basic.java,v 1.10 2001/11/19 23:16:44 momjian Exp $
  *
  * This example tests the basic components of the JDBC driver, and shows
  * how even the simplest of queries can be implemented.
@@ -137,6 +137,7 @@ public class basic
                // Now run the query again, showing a more efficient way of getting the
                // result if you don't know what column number a value is in
 
+
                System.out.println("performing another query");
                rs = st.executeQuery("select * from basic where b>1");
                if (rs != null)
@@ -163,6 +164,7 @@ public class basic
 
                // Now test maxrows by setting it to 3 rows
 
+
                st.setMaxRows(3);
                System.out.println("performing a query limited to " + st.getMaxRows());
                rs = st.executeQuery("select a, b from basic");
index bfa0cc42959d2981236d0bd42cd99181dcdb36e8..271026250dd63ee646675e9d9f84b13e8ea65326 100644 (file)
@@ -61,7 +61,6 @@ public class blobtest
                System.out.println("Now closing the connection");
                s.close();
                db.close();
-
        }
 
        /*
@@ -171,7 +170,6 @@ public class blobtest
                lobj.unlink(oid);
        }
 
-       //=======================================================================
        // This tests the Blob interface of the JDBC 2.0 specification
        public void jdbc2api(int oid) throws SQLException, IOException
        {
@@ -218,8 +216,6 @@ public class blobtest
                db.setAutoCommit(false);
        }
 
-       //=======================================================================
-
        public static void instructions()
        {
                System.err.println("java example.blobtest jdbc-url user password [debug]");
index 3ccb28c7fd84cecda877635e93477999dd0a03bd..519bf49f97dde6660a384232512e931c876a63eb 100644 (file)
@@ -9,7 +9,7 @@ import org.omg.CosNaming.*;
  *
  * It has no GUI, just a text frontend to keep it simple.
  *
- * $Id: StockClient.java,v 1.3 2001/11/19 22:43:13 momjian Exp $
+ * $Id: StockClient.java,v 1.4 2001/11/19 23:16:45 momjian Exp $
  */
 public class StockClient
 {
@@ -116,29 +116,29 @@ public class StockClient
                        int i = getMenu("Main", 5);
                        switch (i)
                        {
-                       case 0:
-                               run = false;
-                               break;
+                               case 0:
+                                       run = false;
+                                       break;
 
-                       case 1:
-                               displayItem();
-                               break;
+                               case 1:
+                                       displayItem();
+                                       break;
 
-                       case 2:
-                               bookOut();
-                               break;
+                               case 2:
+                                       bookOut();
+                                       break;
 
-                       case 3:
-                               bookIn();
-                               break;
+                               case 3:
+                                       bookIn();
+                                       break;
 
-                       case 4:
-                               order(0);
-                               break;
+                               case 4:
+                                       order(0);
+                                       break;
 
-                       case 5:
-                               displayAll();
-                               break;
+                               case 5:
+                                       displayAll();
+                                       break;
                        }
                }
        }
index 6e503552b70d21a98e03c8443f1468fce93ddfa4..4cf40159ca128b4b4143bb870be96e15b764c615 100644 (file)
@@ -9,7 +9,6 @@ import java.text.*;
  *
  * To use this example, you need a database to be in existence. This example
  * will create a table called datestyle.
- *
  */
 
 public class datestyle
@@ -105,7 +104,6 @@ public class datestyle
                ps.setDate(1, standard);
                ps.executeUpdate();
                ps.close();
-
        }
 
        /*
index 6cd2802456c478a285323068df7b657e05b42a60..468af6b959894f43e1770ebbf11aae3321e7313b 100644 (file)
@@ -218,7 +218,6 @@ public class metadata
        {
                if (line.startsWith("\\d"))
                {
-
                        if (line.startsWith("\\d "))
                        {
                                // Display details about a table
index 697198ce3a6195f0849cc68462b76f82d3ef1a82..a5af214d57438c2a094d0750595d4990b6a3baf3 100644 (file)
@@ -50,7 +50,7 @@ public class psql
                // Now the main loop.
                int tt = 0, lineno = 1;
                while (tt != StreamTokenizer.TT_EOF && ! done)
-               { // done added by CWJ to permit \q command
+               {
                        System.out.print("[" + lineno + "] ");
                        System.out.flush();
 
@@ -72,7 +72,6 @@ public class psql
                System.out.println("Now closing the connection");
                st.close();
                db.close();
-
        }
 
        /*
index ceb1ef8f6f5d3694aebebd782c77d2edcfefd2e3..cca7be75beec695d903e8868091c0fe601315100 100644 (file)
@@ -53,7 +53,6 @@ public class threadsafe
                System.out.println("Now closing the connection");
                st.close();
                db.close();
-
        }
 
        /*
@@ -108,7 +107,6 @@ public class threadsafe
                        System.out.println("Waiting for threads to run");
                        while (thread1.isAlive() || thread2.isAlive() || thread3.isAlive())
                                thread0.yield();
-
                }
                finally
                {
index 239e4dc7d24fc6b51a2574c4f34e8f7195c0b5e8..93bfa677811a5c0d0bd3236ac67fd76db0b88c34 100644 (file)
@@ -11,7 +11,7 @@ import org.postgresql.util.*;
 import org.postgresql.core.*;
 
 /*
- * $Id: Connection.java,v 1.36 2001/11/19 22:33:37 momjian Exp $
+ * $Id: Connection.java,v 1.37 2001/11/19 23:16:45 momjian Exp $
  *
  * This abstract class is used by org.postgresql.Driver to open either the JDBC1 or
  * JDBC2 versions of the Connection class.
@@ -115,7 +115,7 @@ public abstract class Connection
                this_url = url;
                PG_DATABASE = database;
                PG_USER = info.getProperty("user");
-               PG_PASSWORD = info.getProperty("password","");
+               PG_PASSWORD = info.getProperty("password", "");
                PG_PORT = port;
                PG_HOST = host;
                PG_STATUS = CONNECTION_BAD;
@@ -168,88 +168,88 @@ public abstract class Connection
                                int beresp = pg_stream.ReceiveChar();
                                switch (beresp)
                                {
-                               case 'E':
-                                       // An error occured, so pass the error message to the
-                                       // user.
-                                       //
-                                       // The most common one to be thrown here is:
-                                       // "User authentication failed"
-                                       //
-                                       throw new SQLException(pg_stream.ReceiveString(encoding));
-
-                               case 'R':
-                                       // Get the type of request
-                                       areq = pg_stream.ReceiveIntegerR(4);
-
-                                       // Get the crypt password salt if there is one
-                                       if (areq == AUTH_REQ_CRYPT)
-                                       {
-                                               byte[] rst = new byte[2];
-                                               rst[0] = (byte)pg_stream.ReceiveChar();
-                                               rst[1] = (byte)pg_stream.ReceiveChar();
-                                               salt = new String(rst, 0, 2);
-                                               DriverManager.println("Crypt salt=" + salt);
-                                       }
-
-                                       // Or get the md5 password salt if there is one
-                                       if (areq == AUTH_REQ_MD5)
-                                       {
-                                               byte[] rst = new byte[4];
-                                               rst[0] = (byte)pg_stream.ReceiveChar();
-                                               rst[1] = (byte)pg_stream.ReceiveChar();
-                                               rst[2] = (byte)pg_stream.ReceiveChar();
-                                               rst[3] = (byte)pg_stream.ReceiveChar();
-                                               salt = new String(rst, 0, 4);
-                                               DriverManager.println("MD5 salt=" + salt);
-                                       }
-
-                                       // now send the auth packet
-                                       switch (areq)
-                                       {
-                                       case AUTH_REQ_OK:
-                                           break;
-                                               
-                                       case AUTH_REQ_KRB4:
-                                               DriverManager.println("postgresql: KRB4");
-                                               throw new PSQLException("postgresql.con.kerb4");
-
-                                       case AUTH_REQ_KRB5:
-                                               DriverManager.println("postgresql: KRB5");
-                                               throw new PSQLException("postgresql.con.kerb5");
-
-                                       case AUTH_REQ_PASSWORD:
-                                               DriverManager.println("postgresql: PASSWORD");
-                                               pg_stream.SendInteger(5 + PG_PASSWORD.length(), 4);
-                                               pg_stream.Send(PG_PASSWORD.getBytes());
-                                               pg_stream.SendInteger(0, 1);
-                                               pg_stream.flush();
-                                               break;
-
-                                       case AUTH_REQ_CRYPT:
-                                               DriverManager.println("postgresql: CRYPT");
-                                               String crypted = UnixCrypt.crypt(salt, PG_PASSWORD);
-                                               pg_stream.SendInteger(5 + crypted.length(), 4);
-                                               pg_stream.Send(crypted.getBytes());
-                                               pg_stream.SendInteger(0, 1);
-                                               pg_stream.flush();
-                                               break;
-
-                                       case AUTH_REQ_MD5:
-                                               DriverManager.println("postgresql: MD5");
-                                               byte[] digest = MD5Digest.encode(PG_USER, PG_PASSWORD, salt);
-                                               pg_stream.SendInteger(5 + digest.length, 4);
-                                               pg_stream.Send(digest);
-                                               pg_stream.SendInteger(0, 1);
-                                               pg_stream.flush();
+                                       case 'E':
+                                               // An error occured, so pass the error message to the
+                                               // user.
+                                               //
+                                               // The most common one to be thrown here is:
+                                               // "User authentication failed"
+                                               //
+                                               throw new SQLException(pg_stream.ReceiveString(encoding));
+
+                                       case 'R':
+                                               // Get the type of request
+                                               areq = pg_stream.ReceiveIntegerR(4);
+
+                                               // Get the crypt password salt if there is one
+                                               if (areq == AUTH_REQ_CRYPT)
+                                               {
+                                                       byte[] rst = new byte[2];
+                                                       rst[0] = (byte)pg_stream.ReceiveChar();
+                                                       rst[1] = (byte)pg_stream.ReceiveChar();
+                                                       salt = new String(rst, 0, 2);
+                                                       DriverManager.println("Crypt salt=" + salt);
+                                               }
+
+                                               // Or get the md5 password salt if there is one
+                                               if (areq == AUTH_REQ_MD5)
+                                               {
+                                                       byte[] rst = new byte[4];
+                                                       rst[0] = (byte)pg_stream.ReceiveChar();
+                                                       rst[1] = (byte)pg_stream.ReceiveChar();
+                                                       rst[2] = (byte)pg_stream.ReceiveChar();
+                                                       rst[3] = (byte)pg_stream.ReceiveChar();
+                                                       salt = new String(rst, 0, 4);
+                                                       DriverManager.println("MD5 salt=" + salt);
+                                               }
+
+                                               // now send the auth packet
+                                               switch (areq)
+                                               {
+                                                       case AUTH_REQ_OK:
+                                                               break;
+
+                                                       case AUTH_REQ_KRB4:
+                                                               DriverManager.println("postgresql: KRB4");
+                                                               throw new PSQLException("postgresql.con.kerb4");
+
+                                                       case AUTH_REQ_KRB5:
+                                                               DriverManager.println("postgresql: KRB5");
+                                                               throw new PSQLException("postgresql.con.kerb5");
+
+                                                       case AUTH_REQ_PASSWORD:
+                                                               DriverManager.println("postgresql: PASSWORD");
+                                                               pg_stream.SendInteger(5 + PG_PASSWORD.length(), 4);
+                                                               pg_stream.Send(PG_PASSWORD.getBytes());
+                                                               pg_stream.SendInteger(0, 1);
+                                                               pg_stream.flush();
+                                                               break;
+
+                                                       case AUTH_REQ_CRYPT:
+                                                               DriverManager.println("postgresql: CRYPT");
+                                                               String crypted = UnixCrypt.crypt(salt, PG_PASSWORD);
+                                                               pg_stream.SendInteger(5 + crypted.length(), 4);
+                                                               pg_stream.Send(crypted.getBytes());
+                                                               pg_stream.SendInteger(0, 1);
+                                                               pg_stream.flush();
+                                                               break;
+
+                                                       case AUTH_REQ_MD5:
+                                                               DriverManager.println("postgresql: MD5");
+                                                               byte[] digest = MD5Digest.encode(PG_USER, PG_PASSWORD, salt);
+                                                               pg_stream.SendInteger(5 + digest.length, 4);
+                                                               pg_stream.Send(digest);
+                                                               pg_stream.SendInteger(0, 1);
+                                                               pg_stream.flush();
+                                                               break;
+
+                                                       default:
+                                                               throw new PSQLException("postgresql.con.auth", new Integer(areq));
+                                               }
                                                break;
 
                                        default:
-                                               throw new PSQLException("postgresql.con.auth", new Integer(areq));
-                                       }
-                                       break;
-
-                               default:
-                                       throw new PSQLException("postgresql.con.authfail");
+                                               throw new PSQLException("postgresql.con.authfail");
                                }
                        }
                        while (areq != AUTH_REQ_OK);
@@ -265,28 +265,28 @@ public abstract class Connection
                int beresp = pg_stream.ReceiveChar();
                switch (beresp)
                {
-               case 'K':
-                       pid = pg_stream.ReceiveInteger(4);
-                       ckey = pg_stream.ReceiveInteger(4);
-                       break;
-               case 'E':
-               case 'N':
-                       throw new SQLException(pg_stream.ReceiveString(encoding));
-               default:
-                       throw new PSQLException("postgresql.con.setup");
+                       case 'K':
+                               pid = pg_stream.ReceiveInteger(4);
+                               ckey = pg_stream.ReceiveInteger(4);
+                               break;
+                       case 'E':
+                       case 'N':
+                               throw new SQLException(pg_stream.ReceiveString(encoding));
+                       default:
+                               throw new PSQLException("postgresql.con.setup");
                }
 
                // Expect ReadyForQuery packet
                beresp = pg_stream.ReceiveChar();
                switch (beresp)
                {
-               case 'Z':
-                       break;
-               case 'E':
-               case 'N':
-                       throw new SQLException(pg_stream.ReceiveString(encoding));
-               default:
-                       throw new PSQLException("postgresql.con.setup");
+                       case 'Z':
+                               break;
+                       case 'E':
+                       case 'N':
+                               throw new SQLException(pg_stream.ReceiveString(encoding));
+                       default:
+                               throw new PSQLException("postgresql.con.setup");
                }
 
                firstWarning = null;
@@ -958,15 +958,15 @@ public abstract class Connection
                        isolationLevelSQL = "SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL ";
                        switch (isolationLevel)
                        {
-                       case java.sql.Connection.TRANSACTION_READ_COMMITTED:
-                               isolationLevelSQL += "READ COMMITTED";
-                               break;
-                       case java.sql.Connection.TRANSACTION_SERIALIZABLE:
-                               isolationLevelSQL += "SERIALIZABLE";
-                               break;
-                       default:
-                               throw new PSQLException("postgresql.con.isolevel",
-                                                                               new Integer(isolationLevel));
+                               case java.sql.Connection.TRANSACTION_READ_COMMITTED:
+                                       isolationLevelSQL += "READ COMMITTED";
+                                       break;
+                               case java.sql.Connection.TRANSACTION_SERIALIZABLE:
+                                       isolationLevelSQL += "SERIALIZABLE";
+                                       break;
+                               default:
+                                       throw new PSQLException("postgresql.con.isolevel",
+                                                                                       new Integer(isolationLevel));
                        }
                }
                ExecSQL(isolationLevelSQL);
@@ -993,16 +993,16 @@ public abstract class Connection
 
                switch (isolationLevel)
                {
-               case java.sql.Connection.TRANSACTION_READ_COMMITTED:
-                       sb.append(" READ COMMITTED");
-                       break;
+                       case java.sql.Connection.TRANSACTION_READ_COMMITTED:
+                               sb.append(" READ COMMITTED");
+                               break;
 
-               case java.sql.Connection.TRANSACTION_SERIALIZABLE:
-                       sb.append(" SERIALIZABLE");
-                       break;
+                       case java.sql.Connection.TRANSACTION_SERIALIZABLE:
+                               sb.append(" SERIALIZABLE");
+                               break;
 
-               default:
-                       throw new PSQLException("postgresql.con.isolevel", new Integer(isolationLevel));
+                       default:
+                               throw new PSQLException("postgresql.con.isolevel", new Integer(isolationLevel));
                }
                return sb.toString();
        }
@@ -1166,6 +1166,5 @@ public abstract class Connection
                }
                return pgType;
        }
-
 }
 
index 488edecdf0228befcb2b8680b8433ab0fddd5355..9a85df8a256d3f90e437de7d0e4630c890447bd8 100644 (file)
@@ -10,7 +10,7 @@ import org.postgresql.core.*;
 import org.postgresql.util.*;
 
 /*
- * $Id: PG_Stream.java,v 1.15 2001/11/19 22:33:37 momjian Exp $
+ * $Id: PG_Stream.java,v 1.16 2001/11/19 23:16:45 momjian Exp $
  *
  * This class is used by Connection & PGlobj for communicating with the
  * backend.
@@ -371,5 +371,4 @@ public class PG_Stream
                pg_input.close();
                connection.close();
        }
-
 }
index 65c110be21bcf3ea59b1c6ccefb62c6161826684..3b37f790cf58b301db2afa0a3b2fe36f68e0229c 100644 (file)
@@ -40,7 +40,7 @@
 *
 * Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved.
 *
-* $Id: PostgresqlDataSource.java,v 1.4 2001/11/19 22:33:37 momjian Exp $
+* $Id: PostgresqlDataSource.java,v 1.5 2001/11/19 23:16:45 momjian Exp $
 */
 
 
@@ -133,38 +133,32 @@ public class PostgresqlDataSource
         */
        private int _loginTimeout;
 
-
        /*
         * Holds the user's account name.
         */
        private String _user;
 
-
        /*
         * Holds the database password.
         */
        private String _password;
 
-
        /*
         * Holds the name of the particular database on the server.
         */
        private String _databaseName;
 
-
        /*
         * Description of this datasource.
         */
        private String _description = "PostgreSQL DataSource";
 
-
        /*
         * Holds the database server name. If null, this is
         * assumed to be the localhost.
         */
        private String _serverName;
 
-
        /*
         * Holds the port number where a server is listening.
         * The default value will open a connection with an
@@ -172,7 +166,6 @@ public class PostgresqlDataSource
         */
        private int _portNumber = DEFAULT_PORT;
 
-
        /*
         * The default port number. Since we open the connection
         * without specifying the port if it's the default one,
@@ -180,7 +173,6 @@ public class PostgresqlDataSource
         */
        private static final int DEFAULT_PORT = 0;
 
-
        /*
         * Holds the log writer to which all messages should be
         * printed. The default writer is obtained from the driver
@@ -189,7 +181,6 @@ public class PostgresqlDataSource
         */
        private transient PrintWriter _logWriter;
 
-
        /*
         * Each datasource maintains it's own driver, in case of
         * driver-specific setup (e.g. pools, log writer).
@@ -197,9 +188,6 @@ public class PostgresqlDataSource
        // FIXME
        //        private transient postgresql.Driver _driver;
        private transient org.postgresql.Driver _driver;
-       //---------
-
-
 
        public PostgresqlDataSource()
        {
@@ -233,12 +221,10 @@ public class PostgresqlDataSource
                                // FIXME
                                //              _driver = new postgresql.Driver();
                                _driver = new org.postgresql.Driver();
-                               //-----------
 
                                //FIXME
                                //              _driver.setLogWriter( _logWriter );
                                // Method seems to be unavailable. Just commented it out.
-                               //----------
                        }
                        catch ( SQLException except )
                        {
@@ -282,7 +268,6 @@ public class PostgresqlDataSource
                        //              if ( ! ( conn instanceof postgresql.jdbc2.Connection ) ) {
                        if ( ! ( conn instanceof org.postgresql.jdbc2.Connection ) )
                        {
-                               //--------
                                if ( _logWriter != null )
                                        _logWriter.println( "DataSource: JDBC 1 connections not supported" );
                                throw new PSQLException( "postgresql.ds.onlyjdbc2" );
@@ -317,7 +302,6 @@ public class PostgresqlDataSource
                                // FIXME
                                //              _driver.setLogWriter( writer );
                                // Method seems to be unavailable. Commented it out.
-                               //----------
                                _logWriter = writer;
                }
        }
@@ -617,7 +601,5 @@ public class PostgresqlDataSource
                else
                        return null;
        }
-
-
 }
 
index 80e5bf79a8e39fbbc37a0a343f9aac6f92595e45..95fd62d9f81fe6666506ebb84dc4e0464cf4cc0c 100644 (file)
@@ -269,50 +269,50 @@ public abstract class Statement
                        char c = sql.charAt(i);
                        switch (state)
                        {
-                       case IN_SQLCODE:
-                               if (c == '\'')                            // start of a string?
-                                       state = IN_STRING;
-                               else if (c == '{')                        // start of an escape code?
-                                       if (i + 1 < len)
-                                       {
-                                               char next = sql.charAt(i + 1);
-                                               if (next == 'd')
-                                               {
-                                                       state = ESC_TIMEDATE;
-                                                       i++;
-                                                       break;
-                                               }
-                                               else if (next == 't')
+                               case IN_SQLCODE:
+                                       if (c == '\'')                            // start of a string?
+                                               state = IN_STRING;
+                                       else if (c == '{')                        // start of an escape code?
+                                               if (i + 1 < len)
                                                {
-                                                       state = ESC_TIMEDATE;
-                                                       i += (i + 2 < len && sql.charAt(i + 2) == 's') ? 2 : 1;
-                                                       break;
+                                                       char next = sql.charAt(i + 1);
+                                                       if (next == 'd')
+                                                       {
+                                                               state = ESC_TIMEDATE;
+                                                               i++;
+                                                               break;
+                                                       }
+                                                       else if (next == 't')
+                                                       {
+                                                               state = ESC_TIMEDATE;
+                                                               i += (i + 2 < len && sql.charAt(i + 2) == 's') ? 2 : 1;
+                                                               break;
+                                                       }
                                                }
-                                       }
-                               newsql.append(c);
-                               break;
-
-                       case IN_STRING:
-                               if (c == '\'')                             // end of string?
-                                       state = IN_SQLCODE;
-                               else if (c == '\\')                        // a backslash?
-                                       state = BACKSLASH;
+                                       newsql.append(c);
+                                       break;
 
-                               newsql.append(c);
-                               break;
+                               case IN_STRING:
+                                       if (c == '\'')                             // end of string?
+                                               state = IN_SQLCODE;
+                                       else if (c == '\\')                        // a backslash?
+                                               state = BACKSLASH;
 
-                       case BACKSLASH:
-                               state = IN_STRING;
+                                       newsql.append(c);
+                                       break;
 
-                               newsql.append(c);
-                               break;
+                               case BACKSLASH:
+                                       state = IN_STRING;
 
-                       case ESC_TIMEDATE:
-                               if (c == '}')
-                                       state = IN_SQLCODE;               // end of escape code.
-                               else
                                        newsql.append(c);
-                               break;
+                                       break;
+
+                               case ESC_TIMEDATE:
+                                       if (c == '}')
+                                               state = IN_SQLCODE;               // end of escape code.
+                                       else
+                                               newsql.append(c);
+                                       break;
                        } // end switch
                }
 
index bc2d64259402d3694342d0b0f1128003f6481568..1badf4f07245f0b61815c4283fc452e0081ea2ea 100644 (file)
@@ -6,7 +6,6 @@ package org.postgresql.core;
  */
 public class BytePoolDim1
 {
-
        /*
         * The maximum size of the array we manage.
         */
@@ -47,26 +46,26 @@ public class BytePoolDim1
                // for now until the bug can be removed
                return new byte[size];
                /*
-                 // Don't pool if >maxsize
-               if (size > maxsize){
-               return new byte[size];
-       }
+                                 // Don't pool if >maxsize
+                               if (size > maxsize){
+                               return new byte[size];
+                       }
 
-               ObjectPool not_usel = notusemap[size];
-               ObjectPool in_usel = inusemap[size];
-               byte b[] = null;
+                               ObjectPool not_usel = notusemap[size];
+                               ObjectPool in_usel = inusemap[size];
+                               byte b[] = null;
 
-                 // Fetch from the unused pool if available otherwise allocate a new
-                 // now array
-               if (!not_usel.isEmpty()) {
-               Object o = not_usel.remove();
-               b = (byte[]) o;
-       } else
-               b = new byte[size];
-               in_usel.add(b);
+                                 // Fetch from the unused pool if available otherwise allocate a new
+                                 // now array
+                               if (!not_usel.isEmpty()) {
+                               Object o = not_usel.remove();
+                               b = (byte[]) o;
+                       } else
+                               b = new byte[size];
+                               in_usel.add(b);
 
-               return b;
-                 */
+                               return b;
+               */
        }
 
        /*
index be115b841d02b34af74f1952cb9a0d22ca8972be..df55b30d04f6da436f1aca98c1f6e432870badcd 100644 (file)
@@ -20,22 +20,22 @@ public class BytePoolDim2
                // For now until the bug can be removed
                return new byte[size][0];
                /*
-               if (size > maxsize){
-               return new byte[size][0];
-       }
-               ObjectPool not_usel = notusemap[size];
-               ObjectPool in_usel =  inusemap[size];
+                               if (size > maxsize){
+                               return new byte[size][0];
+                       }
+                               ObjectPool not_usel = notusemap[size];
+                               ObjectPool in_usel =  inusemap[size];
 
-               byte b[][] = null;
+                               byte b[][] = null;
 
-               if (!not_usel.isEmpty()) {
-               Object o = not_usel.remove();
-               b = (byte[][]) o;
-       } else
-               b = new byte[size][0];
-               in_usel.add(b);
-               return b;
-                 */
+                               if (!not_usel.isEmpty()) {
+                               Object o = not_usel.remove();
+                               b = (byte[][]) o;
+                       } else
+                               b = new byte[size][0];
+                               in_usel.add(b);
+                               return b;
+               */
        }
 
        public void release(byte[][] b)
index c066001554d9b5423f4535c5a1614a27b282701b..7e85dcd583bd7c44a13b56225295600aea4a9cf4 100644 (file)
@@ -13,7 +13,7 @@ import org.postgresql.util.PSQLException;
  * <p>The lifetime of a QueryExecutor object is from sending the query
  * until the response has been received from the backend.
  *
- * $Id: QueryExecutor.java,v 1.4 2001/11/19 22:33:37 momjian Exp $
+ * $Id: QueryExecutor.java,v 1.5 2001/11/19 23:16:45 momjian Exp $
  */
 
 public class QueryExecutor
@@ -69,53 +69,53 @@ public class QueryExecutor
 
                                switch (c)
                                {
-                               case 'A':       // Asynchronous Notify
-                                       int pid = pg_stream.ReceiveInteger(4);
-                                       String msg = pg_stream.ReceiveString(connection.getEncoding());
-                                       break;
-                               case 'B':       // Binary Data Transfer
-                                       receiveTuple(true);
-                                       break;
-                               case 'C':       // Command Status
-                                       receiveCommandStatus();
-
-                                       if (fields != null)
-                                               hfr = true;
-                                       else
-                                       {
-                                               sendQuery(" ");
-                                               fqp++;
-                                       }
-                                       break;
-                               case 'D':       // Text Data Transfer
-                                       receiveTuple(false);
-                                       break;
-                               case 'E':       // Error Message
-                                       throw new SQLException(pg_stream.ReceiveString(connection.getEncoding()));
-                               case 'I':       // Empty Query
-                                       int t = pg_stream.ReceiveChar();
-                                       if (t != 0)
-                                               throw new PSQLException("postgresql.con.garbled");
-
-                                       if (fqp > 0)
-                                               fqp--;
-                                       if (fqp == 0)
-                                               hfr = true;
-                                       break;
-                               case 'N':       // Error Notification
-                                       connection.addWarning(pg_stream.ReceiveString(connection.getEncoding()));
-                                       break;
-                               case 'P':       // Portal Name
-                                       String pname = pg_stream.ReceiveString(connection.getEncoding());
-                                       break;
-                               case 'T':       // MetaData Field Description
-                                       receiveFields();
-                                       break;
-                               case 'Z':                // backend ready for query, ignore for now :-)
-                                       break;
-                               default:
-                                       throw new PSQLException("postgresql.con.type",
-                                                                                       new Character((char) c));
+                                       case 'A':       // Asynchronous Notify
+                                               int pid = pg_stream.ReceiveInteger(4);
+                                               String msg = pg_stream.ReceiveString(connection.getEncoding());
+                                               break;
+                                       case 'B':       // Binary Data Transfer
+                                               receiveTuple(true);
+                                               break;
+                                       case 'C':       // Command Status
+                                               receiveCommandStatus();
+
+                                               if (fields != null)
+                                                       hfr = true;
+                                               else
+                                               {
+                                                       sendQuery(" ");
+                                                       fqp++;
+                                               }
+                                               break;
+                                       case 'D':       // Text Data Transfer
+                                               receiveTuple(false);
+                                               break;
+                                       case 'E':       // Error Message
+                                               throw new SQLException(pg_stream.ReceiveString(connection.getEncoding()));
+                                       case 'I':       // Empty Query
+                                               int t = pg_stream.ReceiveChar();
+                                               if (t != 0)
+                                                       throw new PSQLException("postgresql.con.garbled");
+
+                                               if (fqp > 0)
+                                                       fqp--;
+                                               if (fqp == 0)
+                                                       hfr = true;
+                                               break;
+                                       case 'N':       // Error Notification
+                                               connection.addWarning(pg_stream.ReceiveString(connection.getEncoding()));
+                                               break;
+                                       case 'P':       // Portal Name
+                                               String pname = pg_stream.ReceiveString(connection.getEncoding());
+                                               break;
+                                       case 'T':       // MetaData Field Description
+                                               receiveFields();
+                                               break;
+                                       case 'Z':                // backend ready for query, ignore for now :-)
+                                               break;
+                                       default:
+                                               throw new PSQLException("postgresql.con.type",
+                                                                                               new Character((char) c));
                                }
                        }
                        return connection.getResultSet(connection, statement, fields, tuples, status, update_count, insert_oid, binaryCursor);
@@ -162,7 +162,6 @@ public class QueryExecutor
         */
        private void receiveCommandStatus() throws SQLException
        {
-
                status = pg_stream.ReceiveString(connection.getEncoding());
 
                try
index 5f38d2f8dc98050b44594081faf4be8c31c3e325..5c7850147f2a74827cb7883f5911a3087178b688 100644 (file)
@@ -61,7 +61,6 @@ public class Fastpath
                // added Oct 7 1998 to give us thread safety
                synchronized (stream)
                {
-
                        // send the function call
                        try
                        {
@@ -105,52 +104,52 @@ public class Fastpath
                                //DriverManager.println("ReceiveChar() = "+in+" '"+((char)in)+"'");
                                switch (in)
                                {
-                               case 'V':
-                                       break;
+                                       case 'V':
+                                               break;
 
-                                       //------------------------------
-                                       // Function returned properly
-                                       //
-                               case 'G':
-                                       int sz = stream.ReceiveIntegerR(4);
-                                       //DriverManager.println("G: size="+sz);  //debug
+                                               //------------------------------
+                                               // Function returned properly
+                                               //
+                                       case 'G':
+                                               int sz = stream.ReceiveIntegerR(4);
+                                               //DriverManager.println("G: size="+sz);  //debug
 
-                                       // Return an Integer if
-                                       if (resulttype)
-                                               result = new Integer(stream.ReceiveIntegerR(sz));
-                                       else
-                                       {
-                                               byte buf[] = new byte[sz];
-                                               stream.Receive(buf, 0, sz);
-                                               result = buf;
-                                       }
-                                       break;
+                                               // Return an Integer if
+                                               if (resulttype)
+                                                       result = new Integer(stream.ReceiveIntegerR(sz));
+                                               else
+                                               {
+                                                       byte buf[] = new byte[sz];
+                                                       stream.Receive(buf, 0, sz);
+                                                       result = buf;
+                                               }
+                                               break;
 
-                                       //------------------------------
-                                       // Error message returned
-                               case 'E':
-                                       throw new PSQLException("postgresql.fp.error", stream.ReceiveString(conn.getEncoding()));
+                                               //------------------------------
+                                               // Error message returned
+                                       case 'E':
+                                               throw new PSQLException("postgresql.fp.error", stream.ReceiveString(conn.getEncoding()));
 
-                                       //------------------------------
-                                       // Notice from backend
-                               case 'N':
-                                       conn.addWarning(stream.ReceiveString(conn.getEncoding()));
-                                       break;
+                                               //------------------------------
+                                               // Notice from backend
+                                       case 'N':
+                                               conn.addWarning(stream.ReceiveString(conn.getEncoding()));
+                                               break;
 
-                                       //------------------------------
-                                       // End of results
-                                       //
-                                       // Here we simply return res, which would contain the result
-                                       // processed earlier. If no result, this already contains null
-                               case '0':
-                                       //DriverManager.println("returning "+result);
-                                       return result;
+                                               //------------------------------
+                                               // End of results
+                                               //
+                                               // Here we simply return res, which would contain the result
+                                               // processed earlier. If no result, this already contains null
+                                       case '0':
+                                               //DriverManager.println("returning "+result);
+                                               return result;
 
-                               case 'Z':
-                                       break;
+                                       case 'Z':
+                                               break;
 
-                               default:
-                                       throw new PSQLException("postgresql.fp.protocol", new Character((char)in));
+                                       default:
+                                               throw new PSQLException("postgresql.fp.protocol", new Character((char)in));
                                }
                        }
                }
index a260ab928f5015026f6d61629785afc97d8d12ea..60a4c92488373e78f191e0d4ddeb9324f816006f 100644 (file)
@@ -148,5 +148,4 @@ public class PGpath extends PGobject implements Serializable, Cloneable
        {
                open = true;
        }
-
 }
index 0bcb39ca6525474d6091d84d00e1c1333b181a89..cf9a46b4f12fb42658d29373a3319b63f5aba52d 100644 (file)
@@ -13,7 +13,7 @@ import org.postgresql.util.PSQLException;
 /*
  * This class provides information about the database as a whole.
  *
- * $Id: DatabaseMetaData.java,v 1.39 2001/11/19 22:33:38 momjian Exp $
+ * $Id: DatabaseMetaData.java,v 1.40 2001/11/19 23:16:45 momjian Exp $
  *
  * <p>Many of the methods here return lists of information in ResultSets.  You
  * can use the normal ResultSet methods such as getString and getInt to
@@ -1731,20 +1731,20 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
                        String relKind;
                        switch (r.getBytes(3)[0])
                        {
-                       case (byte) 'r':
-                               relKind = "TABLE";
-                               break;
-                       case (byte) 'i':
-                               relKind = "INDEX";
-                               break;
-                       case (byte) 'S':
-                               relKind = "SEQUENCE";
-                               break;
-                       case (byte) 'v':
-                               relKind = "VIEW";
-                               break;
-                       default:
-                               relKind = null;
+                               case (byte) 'r':
+                                       relKind = "TABLE";
+                                       break;
+                               case (byte) 'i':
+                                       relKind = "INDEX";
+                                       break;
+                               case (byte) 'S':
+                                       relKind = "SEQUENCE";
+                                       break;
+                               case (byte) 'v':
+                                       relKind = "VIEW";
+                                       break;
+                               default:
+                                       relKind = null;
                        }
 
                        tuple[0] = null;                // Catalog name
@@ -2012,17 +2012,17 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
 
                        tuple[7] = null;                                                // Buffer length
                        // Decimal digits = scale
-                       // From the source (see e.g. backend/utils/adt/numeric.c, 
+                       // From the source (see e.g. backend/utils/adt/numeric.c,
                        // function numeric()) the scale and precision can be calculated
                        // from the typmod value.
-                       if (typname.equals("numeric") || typname.equals("decimal")) 
-                       { 
-                           int attypmod = r.getInt(8);
-                           tuple[8] =
-                               Integer.toString((attypmod - VARHDRSZ) & 0xffff).getBytes();
+                       if (typname.equals("numeric") || typname.equals("decimal"))
+                       {
+                               int attypmod = r.getInt(8);
+                               tuple[8] =
+                                       Integer.toString((attypmod - VARHDRSZ) & 0xffff).getBytes();
                        }
                        else
-                           tuple[8] = "0".getBytes();
+                               tuple[8] = "0".getBytes();
 
                        tuple[9] = "10".getBytes();                             // Num Prec Radix - assume decimal
                        tuple[10] = Integer.toString(nullFlag.equals("f") ?
@@ -2262,7 +2262,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
                                "a.attnum as KEY_SEQ," +
                                "ic.relname as PK_NAME " +
                                " FROM pg_class bc, pg_class ic, pg_index i, pg_attribute a" +
-                               " WHERE bc.relkind = 'r' " +  //        -- not indices
+                               " WHERE bc.relkind = 'r' " +   //       -- not indices
                                "  and upper(bc.relname) = upper('" + table + "')" +
                                "  and i.indrelid = bc.oid" +
                                "  and i.indexrelid = ic.oid" +
@@ -2274,115 +2274,135 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
 
        private java.sql.ResultSet getImportedExportedKeys(String catalog, String schema, String primaryTable, String foreignTable) throws SQLException
        {
-               Field f[]=new Field[14];
-
-               f[0]=new Field(connection, "PKTABLE_CAT", iVarcharOid, 32);
-               f[1]=new Field(connection, "PKTABLE_SCHEM", iVarcharOid, 32);
-               f[2]=new Field(connection, "PKTABLE_NAME", iVarcharOid, 32);
-               f[3]=new Field(connection, "PKCOLUMN_NAME", iVarcharOid, 32);
-               f[4]=new Field(connection, "FKTABLE_CAT", iVarcharOid, 32);
-               f[5]=new Field(connection, "FKTABLE_SCHEM", iVarcharOid, 32);
-               f[6]=new Field(connection, "FKTABLE_NAME", iVarcharOid, 32);
-               f[7]=new Field(connection, "FKCOLUMN_NAME", iVarcharOid, 32);
-               f[8]=new Field(connection, "KEY_SEQ", iInt2Oid, 2);
-               f[9]=new Field(connection, "UPDATE_RULE", iInt2Oid, 2);
-               f[10]=new Field(connection, "DELETE_RULE", iInt2Oid, 2);
-               f[11]=new Field(connection, "FK_NAME", iVarcharOid, 32);
-               f[12]=new Field(connection, "PK_NAME", iVarcharOid, 32);
-               f[13]=new Field(connection, "DEFERRABILITY", iInt2Oid, 2);
+               Field f[] = new Field[14];
+
+               f[0] = new Field(connection, "PKTABLE_CAT", iVarcharOid, 32);
+               f[1] = new Field(connection, "PKTABLE_SCHEM", iVarcharOid, 32);
+               f[2] = new Field(connection, "PKTABLE_NAME", iVarcharOid, 32);
+               f[3] = new Field(connection, "PKCOLUMN_NAME", iVarcharOid, 32);
+               f[4] = new Field(connection, "FKTABLE_CAT", iVarcharOid, 32);
+               f[5] = new Field(connection, "FKTABLE_SCHEM", iVarcharOid, 32);
+               f[6] = new Field(connection, "FKTABLE_NAME", iVarcharOid, 32);
+               f[7] = new Field(connection, "FKCOLUMN_NAME", iVarcharOid, 32);
+               f[8] = new Field(connection, "KEY_SEQ", iInt2Oid, 2);
+               f[9] = new Field(connection, "UPDATE_RULE", iInt2Oid, 2);
+               f[10] = new Field(connection, "DELETE_RULE", iInt2Oid, 2);
+               f[11] = new Field(connection, "FK_NAME", iVarcharOid, 32);
+               f[12] = new Field(connection, "PK_NAME", iVarcharOid, 32);
+               f[13] = new Field(connection, "DEFERRABILITY", iInt2Oid, 2);
 
                java.sql.ResultSet rs = connection.ExecSQL("SELECT c.relname,c2.relname,"
-                                                          + "t.tgconstrname,ic.relname,"
-                                                          + "t.tgdeferrable,t.tginitdeferred,"
-                                                          + "t.tgnargs,t.tgargs,p.proname "
-                                                          + "FROM pg_trigger t,pg_class c,pg_class c2,"
-                                                          + "pg_class ic,pg_proc p, pg_index i "
-                                                          + "WHERE t.tgrelid=c.oid AND t.tgconstrrelid=c2.oid "
-                                                          + "AND t.tgfoid=p.oid AND tgisconstraint "
-                                                          + ((primaryTable!=null) ? "AND c2.relname='"+primaryTable+"' " : "")
-                                                          + ((foreignTable!=null) ? "AND c.relname='"+foreignTable+"' " : "")
-                                                          + "AND i.indrelid=c.oid "
-                                                          + "AND i.indexrelid=ic.oid AND i.indisprimary "
-                                                          + "ORDER BY c.relname,c2.relname"
-                                                          );
+                                                               + "t.tgconstrname,ic.relname,"
+                                                               + "t.tgdeferrable,t.tginitdeferred,"
+                                                               + "t.tgnargs,t.tgargs,p.proname "
+                                                               + "FROM pg_trigger t,pg_class c,pg_class c2,"
+                                                               + "pg_class ic,pg_proc p, pg_index i "
+                                                               + "WHERE t.tgrelid=c.oid AND t.tgconstrrelid=c2.oid "
+                                                               + "AND t.tgfoid=p.oid AND tgisconstraint "
+                                                               + ((primaryTable != null) ? "AND c2.relname='" + primaryTable + "' " : "")
+                                                               + ((foreignTable != null) ? "AND c.relname='" + foreignTable + "' " : "")
+                                                               + "AND i.indrelid=c.oid "
+                                                               + "AND i.indexrelid=ic.oid AND i.indisprimary "
+                                                               + "ORDER BY c.relname,c2.relname"
+                                                                                                 );
                Vector tuples = new Vector();
-               short seq=0;
-               if (rs.next()) {
-               boolean hasMore;
-               do {
-                       byte tuple[][]=new byte[14][0];
-                       for (int k = 0;k < 14;k++)
-                       tuple[k] = null;
-
-                       String fKeyName=rs.getString(3);
-                       boolean foundRule=false;
-                       do {
-                               String proname=rs.getString(9);
-                               if (proname!=null && proname.startsWith("RI_FKey_")) {
-                                       int col=-1;
-                                       if (proname.endsWith("_upd")) col=9; // UPDATE_RULE
-                                       else if (proname.endsWith("_del")) col=10; // DELETE_RULE
-                                       if (col>-1) {
-                                       String rule=proname.substring(8, proname.length()-4);
-                                       int action=importedKeyNoAction;
-                                       if ("cascade".equals(rule)) action=importedKeyCascade;
-                                       else if ("setnull".equals(rule)) action=importedKeySetNull;
-                                       else if ("setdefault".equals(rule)) action=importedKeySetDefault;
-                                       tuple[col]=Integer.toString(action).getBytes();
-                                       foundRule=true;
+               short seq = 0;
+               if (rs.next())
+               {
+                       boolean hasMore;
+                       do
+                       {
+                               byte tuple[][] = new byte[14][0];
+                               for (int k = 0;k < 14;k++)
+                                       tuple[k] = null;
+
+                               String fKeyName = rs.getString(3);
+                               boolean foundRule = false;
+                               do
+                               {
+                                       String proname = rs.getString(9);
+                                       if (proname != null && proname.startsWith("RI_FKey_"))
+                                       {
+                                               int col = -1;
+                                               if (proname.endsWith("_upd"))
+                                                       col = 9; // UPDATE_RULE
+                                               else if (proname.endsWith("_del"))
+                                                       col = 10; // DELETE_RULE
+                                               if (col > -1)
+                                               {
+                                                       String rule = proname.substring(8, proname.length() - 4);
+                                                       int action = importedKeyNoAction;
+                                                       if ("cascade".equals(rule))
+                                                               action = importedKeyCascade;
+                                                       else if ("setnull".equals(rule))
+                                                               action = importedKeySetNull;
+                                                       else if ("setdefault".equals(rule))
+                                                               action = importedKeySetDefault;
+                                                       tuple[col] = Integer.toString(action).getBytes();
+                                                       foundRule = true;
+                                               }
                                        }
                                }
-                       } while ((hasMore=rs.next()) && fKeyName.equals(rs.getString(3)));
-
-                       if (foundRule) {
-                       tuple[2]=rs.getBytes(2); //PKTABLE_NAME
-                       tuple[6]=rs.getBytes(1); //FKTABLE_NAME
-
-                       // Parse the tgargs data
-                       StringBuffer fkeyColumns=new StringBuffer();
-                       StringBuffer pkeyColumns=new StringBuffer();
-                       int numColumns=(rs.getInt(7) >> 1) - 2;
-                       String s=rs.getString(8);
-                       int pos=s.lastIndexOf("\\000");
-                       for(int c=0;c<numColumns;c++) {
-                               if (pos>-1) {
-                               int pos2=s.lastIndexOf("\\000", pos-1);
-                               if (pos2>-1) {
-                                       if (fkeyColumns.length()>0) fkeyColumns.insert(0, ',');
-                                       fkeyColumns.insert(0, s.substring(pos2+4, pos)); //FKCOLUMN_NAME
-                                       pos=s.lastIndexOf("\\000", pos2-1);
-                                       if (pos>-1) {
-                                       if (pkeyColumns.length()>0) pkeyColumns.insert(0, ',');
-                                       pkeyColumns.insert(0, s.substring(pos+4, pos2)); //PKCOLUMN_NAME
+                               while ((hasMore = rs.next()) && fKeyName.equals(rs.getString(3)));
+
+                               if (foundRule)
+                               {
+                                       tuple[2] = rs.getBytes(2); //PKTABLE_NAME
+                                       tuple[6] = rs.getBytes(1); //FKTABLE_NAME
+
+                                       // Parse the tgargs data
+                                       StringBuffer fkeyColumns = new StringBuffer();
+                                       StringBuffer pkeyColumns = new StringBuffer();
+                                       int numColumns = (rs.getInt(7) >> 1) - 2;
+                                       String s = rs.getString(8);
+                                       int pos = s.lastIndexOf("\\000");
+                                       for (int c = 0;c < numColumns;c++)
+                                       {
+                                               if (pos > -1)
+                                               {
+                                                       int pos2 = s.lastIndexOf("\\000", pos - 1);
+                                                       if (pos2 > -1)
+                                                       {
+                                                               if (fkeyColumns.length() > 0)
+                                                                       fkeyColumns.insert(0, ',');
+                                                               fkeyColumns.insert(0, s.substring(pos2 + 4, pos)); //FKCOLUMN_NAME
+                                                               pos = s.lastIndexOf("\\000", pos2 - 1);
+                                                               if (pos > -1)
+                                                               {
+                                                                       if (pkeyColumns.length() > 0)
+                                                                               pkeyColumns.insert(0, ',');
+                                                                       pkeyColumns.insert(0, s.substring(pos + 4, pos2)); //PKCOLUMN_NAME
+                                                               }
+                                                       }
+                                               }
                                        }
-                               }
+                                       tuple[7] = fkeyColumns.toString().getBytes(); //FKCOLUMN_NAME
+                                       tuple[3] = pkeyColumns.toString().getBytes(); //PKCOLUMN_NAME
+
+                                       tuple[8] = Integer.toString(seq++).getBytes(); //KEY_SEQ
+                                       tuple[11] = fKeyName.getBytes(); //FK_NAME
+                                       tuple[12] = rs.getBytes(4); //PK_NAME
+
+                                       // DEFERRABILITY
+                                       int deferrability = importedKeyNotDeferrable;
+                                       boolean deferrable = rs.getBoolean(5);
+                                       boolean initiallyDeferred = rs.getBoolean(6);
+                                       if (deferrable)
+                                       {
+                                               if (initiallyDeferred)
+                                                       deferrability = importedKeyInitiallyDeferred;
+                                               else
+                                                       deferrability = importedKeyInitiallyImmediate;
+                                       }
+                                       tuple[13] = Integer.toString(deferrability).getBytes();
+
+                                       tuples.addElement(tuple);
                                }
                        }
-                       tuple[7]=fkeyColumns.toString().getBytes(); //FKCOLUMN_NAME
-                       tuple[3]=pkeyColumns.toString().getBytes(); //PKCOLUMN_NAME
-
-                       tuple[8]=Integer.toString(seq++).getBytes(); //KEY_SEQ
-                       tuple[11]=fKeyName.getBytes(); //FK_NAME
-                       tuple[12]=rs.getBytes(4); //PK_NAME
-
-                       // DEFERRABILITY
-                       int deferrability=importedKeyNotDeferrable;
-                       boolean deferrable=rs.getBoolean(5);
-                       boolean initiallyDeferred=rs.getBoolean(6);
-                       if (deferrable) {
-                           if (initiallyDeferred)
-                               deferrability=importedKeyInitiallyDeferred;
-                           else
-                               deferrability=importedKeyInitiallyImmediate;
-                       }
-                       tuple[13]=Integer.toString(deferrability).getBytes();
-
-                       tuples.addElement(tuple);
-                   }
-               } while (hasMore);
-           }
+                       while (hasMore);
+               }
 
-           return new ResultSet(connection, f, tuples, "OK", 1);
+               return new ResultSet(connection, f, tuples, "OK", 1);
        }
 
        /*
@@ -2496,7 +2516,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
         */
        public java.sql.ResultSet getExportedKeys(String catalog, String schema, String table) throws SQLException
        {
-           return getImportedExportedKeys(catalog, schema, table, null);
+               return getImportedExportedKeys(catalog, schema, table, null);
        }
 
        /*
@@ -2557,7 +2577,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
         */
        public java.sql.ResultSet getCrossReference(String primaryCatalog, String primarySchema, String primaryTable, String foreignCatalog, String foreignSchema, String foreignTable) throws SQLException
        {
-           return getImportedExportedKeys(primaryCatalog, primarySchema, primaryTable, foreignTable);
+               return getImportedExportedKeys(primaryCatalog, primarySchema, primaryTable, foreignTable);
        }
 
        /*
index 3253c9335a458287accb32cabf2f5c6ad8cae25a..cca7af9bb6a1fdb89335f5c2b7c46ef4b88cc117 100644 (file)
@@ -617,53 +617,53 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
                }
                switch (targetSqlType)
                {
-               case Types.TINYINT:
-               case Types.SMALLINT:
-               case Types.INTEGER:
-               case Types.BIGINT:
-               case Types.REAL:
-               case Types.FLOAT:
-               case Types.DOUBLE:
-               case Types.DECIMAL:
-               case Types.NUMERIC:
-                       if (x instanceof Boolean)
-                               set(parameterIndex, ((Boolean)x).booleanValue() ? "1" : "0");
-                       else
-                               set(parameterIndex, x.toString());
-                       break;
-               case Types.CHAR:
-               case Types.VARCHAR:
-               case Types.LONGVARCHAR:
-                       setString(parameterIndex, x.toString());
-                       break;
-               case Types.DATE:
-                       setDate(parameterIndex, (java.sql.Date)x);
-                       break;
-               case Types.TIME:
-                       setTime(parameterIndex, (Time)x);
-                       break;
-               case Types.TIMESTAMP:
-                       setTimestamp(parameterIndex, (Timestamp)x);
-                       break;
-               case Types.BIT:
-                       if (x instanceof Boolean)
-                       {
-                               set(parameterIndex, ((Boolean)x).booleanValue() ? "TRUE" : "FALSE");
-                       }
-                       else
-                       {
+                       case Types.TINYINT:
+                       case Types.SMALLINT:
+                       case Types.INTEGER:
+                       case Types.BIGINT:
+                       case Types.REAL:
+                       case Types.FLOAT:
+                       case Types.DOUBLE:
+                       case Types.DECIMAL:
+                       case Types.NUMERIC:
+                               if (x instanceof Boolean)
+                                       set(parameterIndex, ((Boolean)x).booleanValue() ? "1" : "0");
+                               else
+                                       set(parameterIndex, x.toString());
+                               break;
+                       case Types.CHAR:
+                       case Types.VARCHAR:
+                       case Types.LONGVARCHAR:
+                               setString(parameterIndex, x.toString());
+                               break;
+                       case Types.DATE:
+                               setDate(parameterIndex, (java.sql.Date)x);
+                               break;
+                       case Types.TIME:
+                               setTime(parameterIndex, (Time)x);
+                               break;
+                       case Types.TIMESTAMP:
+                               setTimestamp(parameterIndex, (Timestamp)x);
+                               break;
+                       case Types.BIT:
+                               if (x instanceof Boolean)
+                               {
+                                       set(parameterIndex, ((Boolean)x).booleanValue() ? "TRUE" : "FALSE");
+                               }
+                               else
+                               {
+                                       throw new PSQLException("postgresql.prep.type");
+                               }
+                               break;
+                       case Types.BINARY:
+                       case Types.VARBINARY:
+                               setObject(parameterIndex, x);
+                               break;
+                       case Types.OTHER:
+                               setString(parameterIndex, ((PGobject)x).getValue());
+                               break;
+                       default:
                                throw new PSQLException("postgresql.prep.type");
-                       }
-                       break;
-               case Types.BINARY:
-               case Types.VARBINARY:
-                       setObject(parameterIndex, x);
-                       break;
-               case Types.OTHER:
-                       setString(parameterIndex, ((PGobject)x).getValue());
-                       break;
-               default:
-                       throw new PSQLException("postgresql.prep.type");
                }
        }
 
index b806f67bcb23eb94035b2e45277b99f341bfb6a0..33c7de58627010601b4051d6c1318cb3b7e420c6 100644 (file)
@@ -394,40 +394,40 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
                wasNullFlag = (this_row[columnIndex - 1] == null);
                if (!wasNullFlag)
                {
-                   if (binaryCursor)
-                   {
-                       //If the data is already binary then just return it
-                       return this_row[columnIndex - 1];
-                   }
-                   else if (connection.haveMinimumCompatibleVersion("7.2"))
-                   {
-                       //Version 7.2 supports the bytea datatype for byte arrays
-                       if (fields[columnIndex - 1].getPGType().equals("bytea"))
+                       if (binaryCursor)
                        {
-                           return PGbytea.toBytes(getString(columnIndex));
+                               //If the data is already binary then just return it
+                               return this_row[columnIndex - 1];
                        }
-                       else
-                       {
-                           return this_row[columnIndex - 1];
-                       }
-                   }
-                   else
-                   {
-                       //Version 7.1 and earlier supports LargeObjects for byte arrays
-                       // Handle OID's as BLOBS
-                       if ( fields[columnIndex - 1].getOID() == 26)
+                       else if (connection.haveMinimumCompatibleVersion("7.2"))
                        {
-                           LargeObjectManager lom = connection.getLargeObjectAPI();
-                           LargeObject lob = lom.open(getInt(columnIndex));
-                           byte buf[] = lob.read(lob.size());
-                           lob.close();
-                           return buf;
+                               //Version 7.2 supports the bytea datatype for byte arrays
+                               if (fields[columnIndex - 1].getPGType().equals("bytea"))
+                               {
+                                       return PGbytea.toBytes(getString(columnIndex));
+                               }
+                               else
+                               {
+                                       return this_row[columnIndex - 1];
+                               }
                        }
                        else
                        {
-                           return this_row[columnIndex - 1];
+                               //Version 7.1 and earlier supports LargeObjects for byte arrays
+                               // Handle OID's as BLOBS
+                               if ( fields[columnIndex - 1].getOID() == 26)
+                               {
+                                       LargeObjectManager lom = connection.getLargeObjectAPI();
+                                       LargeObject lob = lom.open(getInt(columnIndex));
+                                       byte buf[] = lob.read(lob.size());
+                                       lob.close();
+                                       return buf;
+                               }
+                               else
+                               {
+                                       return this_row[columnIndex - 1];
+                               }
                        }
-                   }
                }
                return null;
        }
@@ -447,10 +447,13 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
                        return null;
                // length == 10: SQL Date
                // length >  10: SQL Timestamp, assumes PGDATESTYLE=ISO
-               try {
-                       return java.sql.Date.valueOf((s.length() == 10) ? s : s.substring(0,10));
-               } catch (NumberFormatException e) {
-                       throw new PSQLException("postgresql.res.baddate", s);
+               try
+               {
+                       return java.sql.Date.valueOf((s.length() == 10) ? s : s.substring(0, 10));
+               }
+               catch (NumberFormatException e)
+               {
+                       throw new PSQLException("postgresql.res.baddate", s);
                }
        }
 
@@ -926,43 +929,43 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
 
                switch (field.getSQLType())
                {
-               case Types.BIT:
-                       return new Boolean(getBoolean(columnIndex));
-               case Types.SMALLINT:
-                       return new Integer(getInt(columnIndex));
-               case Types.INTEGER:
-                       return new Integer(getInt(columnIndex));
-               case Types.BIGINT:
-                       return new Long(getLong(columnIndex));
-               case Types.NUMERIC:
-                       return getBigDecimal(columnIndex, ((field.getMod() - 4) & 0xffff));
-               case Types.REAL:
-                       return new Float(getFloat(columnIndex));
-               case Types.DOUBLE:
-                       return new Double(getDouble(columnIndex));
-               case Types.CHAR:
-               case Types.VARCHAR:
-                       return getString(columnIndex);
-               case Types.DATE:
-                       return getDate(columnIndex);
-               case Types.TIME:
-                       return getTime(columnIndex);
-               case Types.TIMESTAMP:
-                       return getTimestamp(columnIndex);
-               case Types.BINARY:
-               case Types.VARBINARY:
-                       return getBytes(columnIndex);
-               default:
-                       String type = field.getPGType();
-                       // if the backend doesn't know the type then coerce to String
-                       if (type.equals("unknown"))
-                       {
+                       case Types.BIT:
+                               return new Boolean(getBoolean(columnIndex));
+                       case Types.SMALLINT:
+                               return new Integer(getInt(columnIndex));
+                       case Types.INTEGER:
+                               return new Integer(getInt(columnIndex));
+                       case Types.BIGINT:
+                               return new Long(getLong(columnIndex));
+                       case Types.NUMERIC:
+                               return getBigDecimal(columnIndex, ((field.getMod() - 4) & 0xffff));
+                       case Types.REAL:
+                               return new Float(getFloat(columnIndex));
+                       case Types.DOUBLE:
+                               return new Double(getDouble(columnIndex));
+                       case Types.CHAR:
+                       case Types.VARCHAR:
                                return getString(columnIndex);
-                       }
-                       else
-                       {
-                               return connection.getObject(field.getPGType(), getString(columnIndex));
-                       }
+                       case Types.DATE:
+                               return getDate(columnIndex);
+                       case Types.TIME:
+                               return getTime(columnIndex);
+                       case Types.TIMESTAMP:
+                               return getTimestamp(columnIndex);
+                       case Types.BINARY:
+                       case Types.VARBINARY:
+                               return getBytes(columnIndex);
+                       default:
+                               String type = field.getPGType();
+                               // if the backend doesn't know the type then coerce to String
+                               if (type.equals("unknown"))
+                               {
+                                       return getString(columnIndex);
+                               }
+                               else
+                               {
+                                       return connection.getObject(field.getPGType(), getString(columnIndex));
+                               }
                }
        }
 
index 321293b7c85d1f264dccb9fd48f92ce4a42ea680..ee737604a1ecf5bf45250633278556d903f4d662 100644 (file)
@@ -78,17 +78,17 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
 
                switch (sql_type)
                {
-               case Types.SMALLINT:
-               case Types.INTEGER:
-               case Types.FLOAT:
-               case Types.REAL:
-               case Types.DOUBLE:
-               case Types.DATE:
-               case Types.TIME:
-               case Types.TIMESTAMP:
-                       return false;
-               default:
-                       return true;
+                       case Types.SMALLINT:
+                       case Types.INTEGER:
+                       case Types.FLOAT:
+                       case Types.REAL:
+                       case Types.DOUBLE:
+                       case Types.DATE:
+                       case Types.TIME:
+                       case Types.TIMESTAMP:
+                               return false;
+                       default:
+                               return true;
                }
        }
 
@@ -112,10 +112,10 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
                // for further expansion.
                switch (sql_type)
                {
-               case Types.OTHER:
-                       return true;
-               default:
-                       return true;
+                       case Types.OTHER:
+                               return true;
+                       default:
+                               return true;
                }
        }
 
@@ -167,18 +167,18 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
 
                switch (sql_type)
                {
-               case Types.SMALLINT:
-               case Types.INTEGER:
-               case Types.FLOAT:
-               case Types.REAL:
-               case Types.DOUBLE:
-                       return true;
-               case Types.DATE:
-               case Types.TIME:
-               case Types.TIMESTAMP:
-                       return false;   // I don't know about these?
-               default:
-                       return false;
+                       case Types.SMALLINT:
+                       case Types.INTEGER:
+                       case Types.FLOAT:
+                       case Types.REAL:
+                       case Types.DOUBLE:
+                               return true;
+                       case Types.DATE:
+                       case Types.TIME:
+                       case Types.TIMESTAMP:
+                               return false;   // I don't know about these?
+                       default:
+                               return false;
                }
        }
 
@@ -294,26 +294,26 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
 
                switch (sql_type)
                {
-               case Types.SMALLINT:
-                       return 5;
-               case Types.INTEGER:
-                       return 10;
-               case Types.REAL:
-                       return 8;
-               case Types.FLOAT:
-                       return 16;
-               case Types.DOUBLE:
-                       return 16;
-               case Types.VARCHAR:
-                       return 0;
-               case Types.NUMERIC:
-                       Field f = getField(column);
-                       if (f != null)
-                               return ((0xFFFF0000)&f.getMod()) >> 16;
-                       else
+                       case Types.SMALLINT:
+                               return 5;
+                       case Types.INTEGER:
+                               return 10;
+                       case Types.REAL:
+                               return 8;
+                       case Types.FLOAT:
+                               return 16;
+                       case Types.DOUBLE:
+                               return 16;
+                       case Types.VARCHAR:
+                               return 0;
+                       case Types.NUMERIC:
+                               Field f = getField(column);
+                               if (f != null)
+                                       return ((0xFFFF0000)&f.getMod()) >> 16;
+                               else
+                                       return 0;
+                       default:
                                return 0;
-               default:
-                       return 0;
                }
        }
 
@@ -331,26 +331,26 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
 
                switch (sql_type)
                {
-               case Types.SMALLINT:
-                       return 0;
-               case Types.INTEGER:
-                       return 0;
-               case Types.REAL:
-                       return 8;
-               case Types.FLOAT:
-                       return 16;
-               case Types.DOUBLE:
-                       return 16;
-               case Types.VARCHAR:
-                       return 0;
-               case Types.NUMERIC:
-                       Field f = getField(column);
-                       if (f != null)
-                               return (((0x0000FFFF)&f.getMod()) - 4);
-                       else
+                       case Types.SMALLINT:
+                               return 0;
+                       case Types.INTEGER:
+                               return 0;
+                       case Types.REAL:
+                               return 8;
+                       case Types.FLOAT:
+                               return 16;
+                       case Types.DOUBLE:
+                               return 16;
+                       case Types.VARCHAR:
+                               return 0;
+                       case Types.NUMERIC:
+                               Field f = getField(column);
+                               if (f != null)
+                                       return (((0x0000FFFF)&f.getMod()) - 4);
+                               else
+                                       return 0;
+                       default:
                                return 0;
-               default:
-                       return 0;
                }
        }
 
index 56b8a0f15a505fe2dd268a5dd18c9b6763207e35..14948e5b4b07d51f882c11dea3ca27fc3468b4fd 100644 (file)
@@ -115,64 +115,64 @@ public class Array implements java.sql.Array
                int i = 0;
                switch ( getBaseType() )
                {
-               case Types.BIT:
-                       retVal = new boolean[ count ];
-                       for ( ; count > 0; count-- )
-                               ((boolean[])retVal)[i++] = ResultSet.toBoolean( arrayContents[(int)index++] );
-                       break;
-               case Types.SMALLINT:
-               case Types.INTEGER:
-                       retVal = new int[ count ];
-                       for ( ; count > 0; count-- )
-                               ((int[])retVal)[i++] = ResultSet.toInt( arrayContents[(int)index++] );
-                       break;
-               case Types.BIGINT:
-                       retVal = new long[ count ];
-                       for ( ; count > 0; count-- )
-                               ((long[])retVal)[i++] = ResultSet.toLong( arrayContents[(int)index++] );
-                       break;
-               case Types.NUMERIC:
-                       retVal = new BigDecimal[ count ];
-                       for ( ; count > 0; count-- )
-                               ((BigDecimal[])retVal)[i] = ResultSet.toBigDecimal( arrayContents[(int)index++], 0 );
-                       break;
-               case Types.REAL:
-                       retVal = new float[ count ];
-                       for ( ; count > 0; count-- )
-                               ((float[])retVal)[i++] = ResultSet.toFloat( arrayContents[(int)index++] );
-                       break;
-               case Types.DOUBLE:
-                       retVal = new double[ count ];
-                       for ( ; count > 0; count-- )
-                               ((double[])retVal)[i++] = ResultSet.toDouble( arrayContents[(int)index++] );
-                       break;
-               case Types.CHAR:
-               case Types.VARCHAR:
-                       retVal = new String[ count ];
-                       for ( ; count > 0; count-- )
-                               ((String[])retVal)[i++] = arrayContents[(int)index++];
-                       break;
-               case Types.DATE:
-                       retVal = new java.sql.Date[ count ];
-                       for ( ; count > 0; count-- )
-                               ((java.sql.Date[])retVal)[i++] = ResultSet.toDate( arrayContents[(int)index++] );
-                       break;
-               case Types.TIME:
-                       retVal = new java.sql.Time[ count ];
-                       for ( ; count > 0; count-- )
-                               ((java.sql.Time[])retVal)[i++] = ResultSet.toTime( arrayContents[(int)index++] );
-                       break;
-               case Types.TIMESTAMP:
-                       retVal = new Timestamp[ count ];
-                       StringBuffer sbuf = null;
-                       for ( ; count > 0; count-- )
-                               ((java.sql.Timestamp[])retVal)[i++] = ResultSet.toTimestamp( arrayContents[(int)index], rs );
-                       break;
+                       case Types.BIT:
+                               retVal = new boolean[ count ];
+                               for ( ; count > 0; count-- )
+                                       ((boolean[])retVal)[i++] = ResultSet.toBoolean( arrayContents[(int)index++] );
+                               break;
+                       case Types.SMALLINT:
+                       case Types.INTEGER:
+                               retVal = new int[ count ];
+                               for ( ; count > 0; count-- )
+                                       ((int[])retVal)[i++] = ResultSet.toInt( arrayContents[(int)index++] );
+                               break;
+                       case Types.BIGINT:
+                               retVal = new long[ count ];
+                               for ( ; count > 0; count-- )
+                                       ((long[])retVal)[i++] = ResultSet.toLong( arrayContents[(int)index++] );
+                               break;
+                       case Types.NUMERIC:
+                               retVal = new BigDecimal[ count ];
+                               for ( ; count > 0; count-- )
+                                       ((BigDecimal[])retVal)[i] = ResultSet.toBigDecimal( arrayContents[(int)index++], 0 );
+                               break;
+                       case Types.REAL:
+                               retVal = new float[ count ];
+                               for ( ; count > 0; count-- )
+                                       ((float[])retVal)[i++] = ResultSet.toFloat( arrayContents[(int)index++] );
+                               break;
+                       case Types.DOUBLE:
+                               retVal = new double[ count ];
+                               for ( ; count > 0; count-- )
+                                       ((double[])retVal)[i++] = ResultSet.toDouble( arrayContents[(int)index++] );
+                               break;
+                       case Types.CHAR:
+                       case Types.VARCHAR:
+                               retVal = new String[ count ];
+                               for ( ; count > 0; count-- )
+                                       ((String[])retVal)[i++] = arrayContents[(int)index++];
+                               break;
+                       case Types.DATE:
+                               retVal = new java.sql.Date[ count ];
+                               for ( ; count > 0; count-- )
+                                       ((java.sql.Date[])retVal)[i++] = ResultSet.toDate( arrayContents[(int)index++] );
+                               break;
+                       case Types.TIME:
+                               retVal = new java.sql.Time[ count ];
+                               for ( ; count > 0; count-- )
+                                       ((java.sql.Time[])retVal)[i++] = ResultSet.toTime( arrayContents[(int)index++] );
+                               break;
+                       case Types.TIMESTAMP:
+                               retVal = new Timestamp[ count ];
+                               StringBuffer sbuf = null;
+                               for ( ; count > 0; count-- )
+                                       ((java.sql.Timestamp[])retVal)[i++] = ResultSet.toTimestamp( arrayContents[(int)index], rs );
+                               break;
 
-                       // Other datatypes not currently supported.  If you are really using other types ask
-                       // yourself if an array of non-trivial data types is really good database design.
-               default:
-                       throw org.postgresql.Driver.notImplemented();
+                               // Other datatypes not currently supported.  If you are really using other types ask
+                               // yourself if an array of non-trivial data types is really good database design.
+                       default:
+                               throw org.postgresql.Driver.notImplemented();
                }
                return retVal;
        }
@@ -213,126 +213,126 @@ public class Array implements java.sql.Array
                fields[0] = new Field(conn, "INDEX", conn.getOID("int2"), 2);
                switch ( getBaseType() )
                {
-               case Types.BIT:
-                       boolean[] booleanArray = (boolean[]) array;
-                       fields[1] = new Field(conn, "VALUE", conn.getOID("bool"), 1);
-                       for ( int i = 0; i < booleanArray.length; i++ )
-                       {
-                               byte[][] tuple = new byte[2][0];
-                               tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
-                               tuple[1] = conn.getEncoding().encode( (booleanArray[i] ? "YES" : "NO") ); // Value
-                               rows.addElement(tuple);
-                       }
-               case Types.SMALLINT:
-                       fields[1] = new Field(conn, "VALUE", conn.getOID("int2"), 2);
-               case Types.INTEGER:
-                       int[] intArray = (int[]) array;
-                       if ( fields[1] == null )
-                               fields[1] = new Field(conn, "VALUE", conn.getOID("int4"), 4);
-                       for ( int i = 0; i < intArray.length; i++ )
-                       {
-                               byte[][] tuple = new byte[2][0];
-                               tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
-                               tuple[1] = conn.getEncoding().encode( Integer.toString(intArray[i]) ); // Value
-                               rows.addElement(tuple);
-                       }
-                       break;
-               case Types.BIGINT:
-                       long[] longArray = (long[]) array;
-                       fields[1] = new Field(conn, "VALUE", conn.getOID("int8"), 8);
-                       for ( int i = 0; i < longArray.length; i++ )
-                       {
-                               byte[][] tuple = new byte[2][0];
-                               tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
-                               tuple[1] = conn.getEncoding().encode( Long.toString(longArray[i]) ); // Value
-                               rows.addElement(tuple);
-                       }
-                       break;
-               case Types.NUMERIC:
-                       BigDecimal[] bdArray = (BigDecimal[]) array;
-                       fields[1] = new Field(conn, "VALUE", conn.getOID("numeric"), -1);
-                       for ( int i = 0; i < bdArray.length; i++ )
-                       {
-                               byte[][] tuple = new byte[2][0];
-                               tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
-                               tuple[1] = conn.getEncoding().encode( bdArray[i].toString() ); // Value
-                               rows.addElement(tuple);
-                       }
-                       break;
-               case Types.REAL:
-                       float[] floatArray = (float[]) array;
-                       fields[1] = new Field(conn, "VALUE", conn.getOID("float4"), 4);
-                       for ( int i = 0; i < floatArray.length; i++ )
-                       {
-                               byte[][] tuple = new byte[2][0];
-                               tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
-                               tuple[1] = conn.getEncoding().encode( Float.toString(floatArray[i]) ); // Value
-                               rows.addElement(tuple);
-                       }
-                       break;
-               case Types.DOUBLE:
-                       double[] doubleArray = (double[]) array;
-                       fields[1] = new Field(conn, "VALUE", conn.getOID("float8"), 8);
-                       for ( int i = 0; i < doubleArray.length; i++ )
-                       {
-                               byte[][] tuple = new byte[2][0];
-                               tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
-                               tuple[1] = conn.getEncoding().encode( Double.toString(doubleArray[i]) ); // Value
-                               rows.addElement(tuple);
-                       }
-                       break;
-               case Types.CHAR:
-                       fields[1] = new Field(conn, "VALUE", conn.getOID("char"), 1);
-               case Types.VARCHAR:
-                       String[] strArray = (String[]) array;
-                       if ( fields[1] == null )
-                               fields[1] = new Field(conn, "VALUE", conn.getOID("varchar"), -1);
-                       for ( int i = 0; i < strArray.length; i++ )
-                       {
-                               byte[][] tuple = new byte[2][0];
-                               tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
-                               tuple[1] = conn.getEncoding().encode( strArray[i] ); // Value
-                               rows.addElement(tuple);
-                       }
-                       break;
-               case Types.DATE:
-                       java.sql.Date[] dateArray = (java.sql.Date[]) array;
-                       fields[1] = new Field(conn, "VALUE", conn.getOID("date"), 4);
-                       for ( int i = 0; i < dateArray.length; i++ )
-                       {
-                               byte[][] tuple = new byte[2][0];
-                               tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
-                               tuple[1] = conn.getEncoding().encode( dateArray[i].toString() ); // Value
-                               rows.addElement(tuple);
-                       }
-                       break;
-               case Types.TIME:
-                       java.sql.Time[] timeArray = (java.sql.Time[]) array;
-                       fields[1] = new Field(conn, "VALUE", conn.getOID("time"), 8);
-                       for ( int i = 0; i < timeArray.length; i++ )
-                       {
-                               byte[][] tuple = new byte[2][0];
-                               tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
-                               tuple[1] = conn.getEncoding().encode( timeArray[i].toString() ); // Value
-                               rows.addElement(tuple);
-                       }
-                       break;
-               case Types.TIMESTAMP:
-                       java.sql.Timestamp[] timestampArray = (java.sql.Timestamp[]) array;
-                       fields[1] = new Field(conn, "VALUE", conn.getOID("timestamp"), 8);
-                       for ( int i = 0; i < timestampArray.length; i++ )
-                       {
-                               byte[][] tuple = new byte[2][0];
-                               tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
-                               tuple[1] = conn.getEncoding().encode( timestampArray[i].toString() ); // Value
-                               rows.addElement(tuple);
-                       }
-                       break;
+                       case Types.BIT:
+                               boolean[] booleanArray = (boolean[]) array;
+                               fields[1] = new Field(conn, "VALUE", conn.getOID("bool"), 1);
+                               for ( int i = 0; i < booleanArray.length; i++ )
+                               {
+                                       byte[][] tuple = new byte[2][0];
+                                       tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
+                                       tuple[1] = conn.getEncoding().encode( (booleanArray[i] ? "YES" : "NO") ); // Value
+                                       rows.addElement(tuple);
+                               }
+                       case Types.SMALLINT:
+                               fields[1] = new Field(conn, "VALUE", conn.getOID("int2"), 2);
+                       case Types.INTEGER:
+                               int[] intArray = (int[]) array;
+                               if ( fields[1] == null )
+                                       fields[1] = new Field(conn, "VALUE", conn.getOID("int4"), 4);
+                               for ( int i = 0; i < intArray.length; i++ )
+                               {
+                                       byte[][] tuple = new byte[2][0];
+                                       tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
+                                       tuple[1] = conn.getEncoding().encode( Integer.toString(intArray[i]) ); // Value
+                                       rows.addElement(tuple);
+                               }
+                               break;
+                       case Types.BIGINT:
+                               long[] longArray = (long[]) array;
+                               fields[1] = new Field(conn, "VALUE", conn.getOID("int8"), 8);
+                               for ( int i = 0; i < longArray.length; i++ )
+                               {
+                                       byte[][] tuple = new byte[2][0];
+                                       tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
+                                       tuple[1] = conn.getEncoding().encode( Long.toString(longArray[i]) ); // Value
+                                       rows.addElement(tuple);
+                               }
+                               break;
+                       case Types.NUMERIC:
+                               BigDecimal[] bdArray = (BigDecimal[]) array;
+                               fields[1] = new Field(conn, "VALUE", conn.getOID("numeric"), -1);
+                               for ( int i = 0; i < bdArray.length; i++ )
+                               {
+                                       byte[][] tuple = new byte[2][0];
+                                       tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
+                                       tuple[1] = conn.getEncoding().encode( bdArray[i].toString() ); // Value
+                                       rows.addElement(tuple);
+                               }
+                               break;
+                       case Types.REAL:
+                               float[] floatArray = (float[]) array;
+                               fields[1] = new Field(conn, "VALUE", conn.getOID("float4"), 4);
+                               for ( int i = 0; i < floatArray.length; i++ )
+                               {
+                                       byte[][] tuple = new byte[2][0];
+                                       tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
+                                       tuple[1] = conn.getEncoding().encode( Float.toString(floatArray[i]) ); // Value
+                                       rows.addElement(tuple);
+                               }
+                               break;
+                       case Types.DOUBLE:
+                               double[] doubleArray = (double[]) array;
+                               fields[1] = new Field(conn, "VALUE", conn.getOID("float8"), 8);
+                               for ( int i = 0; i < doubleArray.length; i++ )
+                               {
+                                       byte[][] tuple = new byte[2][0];
+                                       tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
+                                       tuple[1] = conn.getEncoding().encode( Double.toString(doubleArray[i]) ); // Value
+                                       rows.addElement(tuple);
+                               }
+                               break;
+                       case Types.CHAR:
+                               fields[1] = new Field(conn, "VALUE", conn.getOID("char"), 1);
+                       case Types.VARCHAR:
+                               String[] strArray = (String[]) array;
+                               if ( fields[1] == null )
+                                       fields[1] = new Field(conn, "VALUE", conn.getOID("varchar"), -1);
+                               for ( int i = 0; i < strArray.length; i++ )
+                               {
+                                       byte[][] tuple = new byte[2][0];
+                                       tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
+                                       tuple[1] = conn.getEncoding().encode( strArray[i] ); // Value
+                                       rows.addElement(tuple);
+                               }
+                               break;
+                       case Types.DATE:
+                               java.sql.Date[] dateArray = (java.sql.Date[]) array;
+                               fields[1] = new Field(conn, "VALUE", conn.getOID("date"), 4);
+                               for ( int i = 0; i < dateArray.length; i++ )
+                               {
+                                       byte[][] tuple = new byte[2][0];
+                                       tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
+                                       tuple[1] = conn.getEncoding().encode( dateArray[i].toString() ); // Value
+                                       rows.addElement(tuple);
+                               }
+                               break;
+                       case Types.TIME:
+                               java.sql.Time[] timeArray = (java.sql.Time[]) array;
+                               fields[1] = new Field(conn, "VALUE", conn.getOID("time"), 8);
+                               for ( int i = 0; i < timeArray.length; i++ )
+                               {
+                                       byte[][] tuple = new byte[2][0];
+                                       tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
+                                       tuple[1] = conn.getEncoding().encode( timeArray[i].toString() ); // Value
+                                       rows.addElement(tuple);
+                               }
+                               break;
+                       case Types.TIMESTAMP:
+                               java.sql.Timestamp[] timestampArray = (java.sql.Timestamp[]) array;
+                               fields[1] = new Field(conn, "VALUE", conn.getOID("timestamp"), 8);
+                               for ( int i = 0; i < timestampArray.length; i++ )
+                               {
+                                       byte[][] tuple = new byte[2][0];
+                                       tuple[0] = conn.getEncoding().encode( Integer.toString((int)index + i) ); // Index
+                                       tuple[1] = conn.getEncoding().encode( timestampArray[i].toString() ); // Value
+                                       rows.addElement(tuple);
+                               }
+                               break;
 
-                       // Other datatypes not currently supported.  If you are really using other types ask
-                       // yourself if an array of non-trivial data types is really good database design.
-               default:
-                       throw org.postgresql.Driver.notImplemented();
+                               // Other datatypes not currently supported.  If you are really using other types ask
+                               // yourself if an array of non-trivial data types is really good database design.
+                       default:
+                               throw org.postgresql.Driver.notImplemented();
                }
                return new ResultSet((org.postgresql.jdbc2.Connection)conn, fields, rows, "OK", 1 );
        }
index 0d833a033afc264c66c700a43ad0bcb58978e6b7..50dee09b87c74101b7ac20446e4b794b24422cea 100644 (file)
@@ -15,7 +15,7 @@ import org.postgresql.util.PSQLException;
 /*
  * This class provides information about the database as a whole.
  *
- * $Id: DatabaseMetaData.java,v 1.46 2001/11/19 22:33:39 momjian Exp $
+ * $Id: DatabaseMetaData.java,v 1.47 2001/11/19 23:16:46 momjian Exp $
  *
  * <p>Many of the methods here return lists of information in ResultSets.  You
  * can use the normal ResultSet methods such as getString and getInt to
@@ -88,7 +88,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
        public String getURL() throws SQLException
        {
                String url = connection.getURL();
-               Driver.debug("getURL "+url);
+               Driver.debug("getURL " + url);
                return url;
        }
 
@@ -101,7 +101,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
        public String getUserName() throws SQLException
        {
                String userName = connection.getUserName();
-               Driver.debug("getUserName "+ userName);
+               Driver.debug("getUserName " + userName);
                return userName;
        }
 
@@ -114,7 +114,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
        public boolean isReadOnly() throws SQLException
        {
                boolean isReadOnly = connection.isReadOnly();
-               Driver.debug("isReadOnly " +isReadOnly);
+               Driver.debug("isReadOnly " + isReadOnly);
                return isReadOnly;
        }
 
@@ -164,7 +164,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
        public boolean nullsAreSortedAtEnd() throws SQLException
        {
                boolean nullsAreSortedAtEnd = ! connection.haveMinimumServerVersion("7.2");
-               Driver.debug("nullsAreSortedAtEnd "+nullsAreSortedAtEnd);
+               Driver.debug("nullsAreSortedAtEnd " + nullsAreSortedAtEnd);
                return nullsAreSortedAtEnd;
        }
 
@@ -209,7 +209,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
        }
 
        /*
-        * What is the version string of this JDBC driver?  Again, this is
+        * What is the version string of this JDBC driver?      Again, this is
         * static.
         *
         * @return the JDBC driver name.
@@ -218,7 +218,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
        public String getDriverVersion() throws SQLException
        {
                String driverVersion = connection.this_driver.getVersion();
-               Driver.debug("getDriverVersion "+driverVersion);
+               Driver.debug("getDriverVersion " + driverVersion);
                return driverVersion;
        }
 
@@ -230,7 +230,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
        public int getDriverMajorVersion()
        {
                int majorVersion = connection.this_driver.getMajorVersion();
-               Driver.debug("getMajorVersion " +majorVersion);
+               Driver.debug("getMajorVersion " + majorVersion);
                return majorVersion;
        }
 
@@ -242,12 +242,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
        public int getDriverMinorVersion()
        {
                int minorVersion = connection.this_driver.getMinorVersion();
-               Driver.debug("getMinorVersion " +minorVersion);
+               Driver.debug("getMinorVersion " + minorVersion);
                return minorVersion;
        }
 
        /*
-        * Does the database store tables in a local file?  No - it
+        * Does the database store tables in a local file?      No - it
         * stores them in a file on the server.
         *
         * @return true if so
@@ -298,7 +298,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
         */
        public boolean storesUpperCaseIdentifiers() throws SQLException
        {
-               Driver.debug("storesUpperCaseIdentifiers "+false);
+               Driver.debug("storesUpperCaseIdentifiers " + false);
                return false;
        }
 
@@ -622,13 +622,13 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
        public boolean supportsGroupByUnrelated() throws SQLException
        {
                boolean supportsGroupByUnrelated = connection.haveMinimumServerVersion("6.4");
-               Driver.debug("supportsGroupByUnrelated "+ supportsGroupByUnrelated);
+               Driver.debug("supportsGroupByUnrelated " + supportsGroupByUnrelated);
                return supportsGroupByUnrelated;
        }
 
        /*
         * Can a "GROUP BY" clause add columns not in the SELECT provided
-        * it specifies all the columns in the SELECT?  Does anyone actually
+        * it specifies all the columns in the SELECT?  Does anyone actually
         * understand what they mean here?
         *
         * (I think this is a subset of the previous function. -- petere)
@@ -686,7 +686,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
        }
 
        /*
-        * Can columns be defined as non-nullable.  A JDBC Compliant driver
+        * Can columns be defined as non-nullable.      A JDBC Compliant driver
         * always returns true.
         *
         * <p>This changed from false to true in v6.2 of the driver, as this
@@ -715,12 +715,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
         */
        public boolean supportsMinimumSQLGrammar() throws SQLException
        {
-                 Driver.debug("supportsMinimumSQLGrammar TRUE");
-                 return true;
+               Driver.debug("supportsMinimumSQLGrammar TRUE");
+               return true;
        }
 
        /*
-        * Does this driver support the Core ODBC SQL grammar.  We need
+        * Does this driver support the Core ODBC SQL grammar.  We need
         * SQL-92 conformance for this.
         *
         * @return true if so
@@ -910,7 +910,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
        }
 
        /*
-        * Can a schema name be used in a data manipulation statement?  Nope.
+        * Can a schema name be used in a data manipulation statement?  Nope.
         *
         * @return true if so
         * @exception SQLException if a database access error occurs
@@ -1831,20 +1831,20 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
                        String relKind;
                        switch (r.getBytes(3)[0])
                        {
-                       case (byte) 'r':
-                               relKind = "TABLE";
-                               break;
-                       case (byte) 'i':
-                               relKind = "INDEX";
-                               break;
-                       case (byte) 'S':
-                               relKind = "SEQUENCE";
-                               break;
-                       case (byte) 'v':
-                               relKind = "VIEW";
-                               break;
-                       default:
-                               relKind = null;
+                               case (byte) 'r':
+                                       relKind = "TABLE";
+                                       break;
+                               case (byte) 'i':
+                                       relKind = "INDEX";
+                                       break;
+                               case (byte) 'S':
+                                       relKind = "SEQUENCE";
+                                       break;
+                               case (byte) 'v':
+                                       relKind = "VIEW";
+                                       break;
+                               default:
+                                       relKind = null;
                        }
 
                        tuple[0] = null;                // Catalog name
@@ -2243,29 +2243,30 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
                Vector v = new Vector();
 
                if (tableNamePattern == null)
-                 tableNamePattern = "%";
+                       tableNamePattern = "%";
 
-               f[0] = new Field(connection,"TABLE_CAT",iVarcharOid,32);
-               f[1] = new Field(connection,"TABLE_SCHEM",iVarcharOid,32);
-               f[2] = new Field(connection,"TABLE_NAME",iVarcharOid,32);
-               f[3] = new Field(connection,"COLUMN_NAME",iVarcharOid,32);
-               f[4] = new Field(connection,"GRANTOR",iVarcharOid,32);
-               f[5] = new Field(connection,"GRANTEE",iVarcharOid,32);
-               f[6] = new Field(connection,"PRIVILEGE",iVarcharOid,32);
-               f[7] = new Field(connection,"IS_GRANTABLE",iVarcharOid,32);
+               f[0] = new Field(connection, "TABLE_CAT", iVarcharOid, 32);
+               f[1] = new Field(connection, "TABLE_SCHEM", iVarcharOid, 32);
+               f[2] = new Field(connection, "TABLE_NAME", iVarcharOid, 32);
+               f[3] = new Field(connection, "COLUMN_NAME", iVarcharOid, 32);
+               f[4] = new Field(connection, "GRANTOR", iVarcharOid, 32);
+               f[5] = new Field(connection, "GRANTEE", iVarcharOid, 32);
+               f[6] = new Field(connection, "PRIVILEGE", iVarcharOid, 32);
+               f[7] = new Field(connection, "IS_GRANTABLE", iVarcharOid, 32);
 
                // This is taken direct from the psql source
-               java.sql.ResultSet r = connection.ExecSQL("SELECT relname, relacl FROM pg_class, pg_user WHERE ( relkind = 'r' OR relkind = 'i') and relname !~ '^pg_' and relname !~ '^xin[vx][0-9]+' and usesysid = relowner and relname like '"+tableNamePattern.toLowerCase()+"' ORDER BY relname");
-               while (r.next()) {
-                 byte[][] tuple = new byte[8][0];
-                 tuple[0] = tuple[1]= "".getBytes();
-                 DriverManager.println("relname=\""+r.getString(1)+"\" relacl=\""+r.getString(2)+"\"");
-
-                 // For now, don't add to the result as relacl needs to be processed.
-                 //v.addElement(tuple);
+               java.sql.ResultSet r = connection.ExecSQL("SELECT relname, relacl FROM pg_class, pg_user WHERE ( relkind = 'r' OR relkind = 'i') and relname !~ '^pg_' and relname !~ '^xin[vx][0-9]+' and usesysid = relowner and relname like '" + tableNamePattern.toLowerCase() + "' ORDER BY relname");
+               while (r.next())
+               {
+                       byte[][] tuple = new byte[8][0];
+                       tuple[0] = tuple[1] = "".getBytes();
+                       DriverManager.println("relname=\"" + r.getString(1) + "\" relacl=\"" + r.getString(2) + "\"");
+
+                       // For now, don't add to the result as relacl needs to be processed.
+                       //v.addElement(tuple);
                }
 
-               return new ResultSet(connection,f,v,"OK",1);
+               return new ResultSet(connection, f, v, "OK", 1);
        }
 
        /*
@@ -2389,7 +2390,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
                                "a.attnum as KEY_SEQ," +
                                "ic.relname as PK_NAME " +
                                " FROM pg_class bc, pg_class ic, pg_index i, pg_attribute a" +
-                               " WHERE bc.relkind = 'r' " +  //        -- not indices
+                               " WHERE bc.relkind = 'r' " +   //       -- not indices
                                "  and upper(bc.relname) = upper('" + table + "')" +
                                "  and i.indrelid = bc.oid" +
                                "  and i.indexrelid = ic.oid" +
@@ -2401,112 +2402,132 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
 
        private java.sql.ResultSet getImportedExportedKeys(String catalog, String schema, String primaryTable, String foreignTable) throws SQLException
        {
-               Field f[]=new Field[14];
-
-               f[0]=new Field(connection, "PKTABLE_CAT", iVarcharOid, 32);
-               f[1]=new Field(connection, "PKTABLE_SCHEM", iVarcharOid, 32);
-               f[2]=new Field(connection, "PKTABLE_NAME", iVarcharOid, 32);
-               f[3]=new Field(connection, "PKCOLUMN_NAME", iVarcharOid, 32);
-               f[4]=new Field(connection, "FKTABLE_CAT", iVarcharOid, 32);
-               f[5]=new Field(connection, "FKTABLE_SCHEM", iVarcharOid, 32);
-               f[6]=new Field(connection, "FKTABLE_NAME", iVarcharOid, 32);
-               f[7]=new Field(connection, "FKCOLUMN_NAME", iVarcharOid, 32);
-               f[8]=new Field(connection, "KEY_SEQ", iInt2Oid, 2);
-               f[9]=new Field(connection, "UPDATE_RULE", iInt2Oid, 2);
-               f[10]=new Field(connection, "DELETE_RULE", iInt2Oid, 2);
-               f[11]=new Field(connection, "FK_NAME", iVarcharOid, 32);
-               f[12]=new Field(connection, "PK_NAME", iVarcharOid, 32);
-               f[13]=new Field(connection, "DEFERRABILITY", iInt2Oid, 2);
+               Field f[] = new Field[14];
+
+               f[0] = new Field(connection, "PKTABLE_CAT", iVarcharOid, 32);
+               f[1] = new Field(connection, "PKTABLE_SCHEM", iVarcharOid, 32);
+               f[2] = new Field(connection, "PKTABLE_NAME", iVarcharOid, 32);
+               f[3] = new Field(connection, "PKCOLUMN_NAME", iVarcharOid, 32);
+               f[4] = new Field(connection, "FKTABLE_CAT", iVarcharOid, 32);
+               f[5] = new Field(connection, "FKTABLE_SCHEM", iVarcharOid, 32);
+               f[6] = new Field(connection, "FKTABLE_NAME", iVarcharOid, 32);
+               f[7] = new Field(connection, "FKCOLUMN_NAME", iVarcharOid, 32);
+               f[8] = new Field(connection, "KEY_SEQ", iInt2Oid, 2);
+               f[9] = new Field(connection, "UPDATE_RULE", iInt2Oid, 2);
+               f[10] = new Field(connection, "DELETE_RULE", iInt2Oid, 2);
+               f[11] = new Field(connection, "FK_NAME", iVarcharOid, 32);
+               f[12] = new Field(connection, "PK_NAME", iVarcharOid, 32);
+               f[13] = new Field(connection, "DEFERRABILITY", iInt2Oid, 2);
 
                java.sql.ResultSet rs = connection.ExecSQL("SELECT c.relname,c2.relname,"
-                                                          + "t.tgconstrname,ic.relname,"
-                                                          + "t.tgdeferrable,t.tginitdeferred,"
-                                                          + "t.tgnargs,t.tgargs,p.proname "
-                                                          + "FROM pg_trigger t,pg_class c,pg_class c2,"
-                                                          + "pg_class ic,pg_proc p, pg_index i "
-                                                          + "WHERE t.tgrelid=c.oid AND t.tgconstrrelid=c2.oid "
-                                                          + "AND t.tgfoid=p.oid AND tgisconstraint "
-                                                          + ((primaryTable!=null) ? "AND c2.relname='"+primaryTable+"' " : "")
-                                                          + ((foreignTable!=null) ? "AND c.relname='"+foreignTable+"' " : "")
-                                                          + "AND i.indrelid=c.oid "
-                                                          + "AND i.indexrelid=ic.oid AND i.indisprimary "
-                                                          + "ORDER BY c.relname,c2.relname"
-                                                          );
+                                                               + "t.tgconstrname,ic.relname,"
+                                                               + "t.tgdeferrable,t.tginitdeferred,"
+                                                               + "t.tgnargs,t.tgargs,p.proname "
+                                                               + "FROM pg_trigger t,pg_class c,pg_class c2,"
+                                                               + "pg_class ic,pg_proc p, pg_index i "
+                                                               + "WHERE t.tgrelid=c.oid AND t.tgconstrrelid=c2.oid "
+                                                               + "AND t.tgfoid=p.oid AND tgisconstraint "
+                                                               + ((primaryTable != null) ? "AND c2.relname='" + primaryTable + "' " : "")
+                                                               + ((foreignTable != null) ? "AND c.relname='" + foreignTable + "' " : "")
+                                                               + "AND i.indrelid=c.oid "
+                                                               + "AND i.indexrelid=ic.oid AND i.indisprimary "
+                                                               + "ORDER BY c.relname,c2.relname"
+                                                                                                 );
                Vector tuples = new Vector();
-               short seq=0;
-               if (rs.next()) {
-               boolean hasMore;
-               do {
-                       byte tuple[][]=new byte[14][0];
-                       for (int k = 0;k < 14;k++)
-                       tuple[k] = null;
-
-                       String fKeyName=rs.getString(3);
-                       boolean foundRule=false;
-                       do {
-                       String proname=rs.getString(9);
-                       if (proname!=null && proname.startsWith("RI_FKey_")) {
-                               int col=-1;
-                               if (proname.endsWith("_upd")) col=9; // UPDATE_RULE
-                               else if (proname.endsWith("_del")) col=10; // DELETE_RULE
-                               if (col>-1) {
-                               String rule=proname.substring(8, proname.length()-4);
-                               int action=importedKeyNoAction;
-                               if ("cascade".equals(rule)) action=importedKeyCascade;
-                               else if ("setnull".equals(rule)) action=importedKeySetNull;
-                               else if ("setdefault".equals(rule)) action=importedKeySetDefault;
-                               tuple[col]=Integer.toString(action).getBytes();
-                               foundRule=true;
-                               }
-                       }
-                       } while ((hasMore=rs.next()) && fKeyName.equals(rs.getString(3)));
-
-                       if (foundRule) {
-                       tuple[2]=rs.getBytes(2); //PKTABLE_NAME
-                       tuple[6]=rs.getBytes(1); //FKTABLE_NAME
-
-                       // Parse the tgargs data
-                       StringBuffer fkeyColumns=new StringBuffer();
-                       StringBuffer pkeyColumns=new StringBuffer();
-                       int numColumns=(rs.getInt(7) >> 1) - 2;
-                       String s=rs.getString(8);
-                       int pos=s.lastIndexOf("\\000");
-                       for(int c=0;c<numColumns;c++) {
-                               if (pos>-1) {
-                               int pos2=s.lastIndexOf("\\000", pos-1);
-                               if (pos2>-1) {
-                                       if (fkeyColumns.length()>0) fkeyColumns.insert(0, ',');
-                                       fkeyColumns.insert(0, s.substring(pos2+4, pos)); //FKCOLUMN_NAME
-                                       pos=s.lastIndexOf("\\000", pos2-1);
-                                       if (pos>-1) {
-                                       if (pkeyColumns.length()>0) pkeyColumns.insert(0, ',');
-                                       pkeyColumns.insert(0, s.substring(pos+4, pos2)); //PKCOLUMN_NAME
+               short seq = 0;
+               if (rs.next())
+               {
+                       boolean hasMore;
+                       do
+                       {
+                               byte tuple[][] = new byte[14][0];
+                               for (int k = 0;k < 14;k++)
+                                       tuple[k] = null;
+
+                               String fKeyName = rs.getString(3);
+                               boolean foundRule = false;
+                               do
+                               {
+                                       String proname = rs.getString(9);
+                                       if (proname != null && proname.startsWith("RI_FKey_"))
+                                       {
+                                               int col = -1;
+                                               if (proname.endsWith("_upd"))
+                                                       col = 9; // UPDATE_RULE
+                                               else if (proname.endsWith("_del"))
+                                                       col = 10; // DELETE_RULE
+                                               if (col > -1)
+                                               {
+                                                       String rule = proname.substring(8, proname.length() - 4);
+                                                       int action = importedKeyNoAction;
+                                                       if ("cascade".equals(rule))
+                                                               action = importedKeyCascade;
+                                                       else if ("setnull".equals(rule))
+                                                               action = importedKeySetNull;
+                                                       else if ("setdefault".equals(rule))
+                                                               action = importedKeySetDefault;
+                                                       tuple[col] = Integer.toString(action).getBytes();
+                                                       foundRule = true;
+                                               }
                                        }
                                }
-                               }
-                       }
-                       tuple[7]=fkeyColumns.toString().getBytes(); //FKCOLUMN_NAME
-                       tuple[3]=pkeyColumns.toString().getBytes(); //PKCOLUMN_NAME
-
-                       tuple[8]=Integer.toString(seq++).getBytes(); //KEY_SEQ
-                       tuple[11]=fKeyName.getBytes(); //FK_NAME
-                       tuple[12]=rs.getBytes(4); //PK_NAME
-
-                       // DEFERRABILITY
-                       int deferrability=importedKeyNotDeferrable;
-                       boolean deferrable=rs.getBoolean(5);
-                       boolean initiallyDeferred=rs.getBoolean(6);
-                       if (deferrable) {
-                               if (initiallyDeferred)
-                               deferrability=importedKeyInitiallyDeferred;
-                               else
-                               deferrability=importedKeyInitiallyImmediate;
-                       }
-                       tuple[13]=Integer.toString(deferrability).getBytes();
+                               while ((hasMore = rs.next()) && fKeyName.equals(rs.getString(3)));
+
+                               if (foundRule)
+                               {
+                                       tuple[2] = rs.getBytes(2); //PKTABLE_NAME
+                                       tuple[6] = rs.getBytes(1); //FKTABLE_NAME
+
+                                       // Parse the tgargs data
+                                       StringBuffer fkeyColumns = new StringBuffer();
+                                       StringBuffer pkeyColumns = new StringBuffer();
+                                       int numColumns = (rs.getInt(7) >> 1) - 2;
+                                       String s = rs.getString(8);
+                                       int pos = s.lastIndexOf("\\000");
+                                       for (int c = 0;c < numColumns;c++)
+                                       {
+                                               if (pos > -1)
+                                               {
+                                                       int pos2 = s.lastIndexOf("\\000", pos - 1);
+                                                       if (pos2 > -1)
+                                                       {
+                                                               if (fkeyColumns.length() > 0)
+                                                                       fkeyColumns.insert(0, ',');
+                                                               fkeyColumns.insert(0, s.substring(pos2 + 4, pos)); //FKCOLUMN_NAME
+                                                               pos = s.lastIndexOf("\\000", pos2 - 1);
+                                                               if (pos > -1)
+                                                               {
+                                                                       if (pkeyColumns.length() > 0)
+                                                                               pkeyColumns.insert(0, ',');
+                                                                       pkeyColumns.insert(0, s.substring(pos + 4, pos2)); //PKCOLUMN_NAME
+                                                               }
+                                                       }
+                                               }
+                                       }
+                                       tuple[7] = fkeyColumns.toString().getBytes(); //FKCOLUMN_NAME
+                                       tuple[3] = pkeyColumns.toString().getBytes(); //PKCOLUMN_NAME
+
+                                       tuple[8] = Integer.toString(seq++).getBytes(); //KEY_SEQ
+                                       tuple[11] = fKeyName.getBytes(); //FK_NAME
+                                       tuple[12] = rs.getBytes(4); //PK_NAME
+
+                                       // DEFERRABILITY
+                                       int deferrability = importedKeyNotDeferrable;
+                                       boolean deferrable = rs.getBoolean(5);
+                                       boolean initiallyDeferred = rs.getBoolean(6);
+                                       if (deferrable)
+                                       {
+                                               if (initiallyDeferred)
+                                                       deferrability = importedKeyInitiallyDeferred;
+                                               else
+                                                       deferrability = importedKeyInitiallyImmediate;
+                                       }
+                                       tuple[13] = Integer.toString(deferrability).getBytes();
 
-                       tuples.addElement(tuple);
+                                       tuples.addElement(tuple);
+                               }
                        }
-               } while (hasMore);
+                       while (hasMore);
                }
 
                return new ResultSet(connection, f, tuples, "OK", 1);
@@ -2565,7 +2586,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
         */
        public java.sql.ResultSet getImportedKeys(String catalog, String schema, String table) throws SQLException
        {
-           return getImportedExportedKeys(catalog, schema, null, table);
+               return getImportedExportedKeys(catalog, schema, null, table);
        }
 
        /*
@@ -2623,7 +2644,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
         */
        public java.sql.ResultSet getExportedKeys(String catalog, String schema, String table) throws SQLException
        {
-           return getImportedExportedKeys(catalog, schema, table, null);
+               return getImportedExportedKeys(catalog, schema, table, null);
        }
 
        /*
@@ -2684,7 +2705,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
         */
        public java.sql.ResultSet getCrossReference(String primaryCatalog, String primarySchema, String primaryTable, String foreignCatalog, String foreignSchema, String foreignTable) throws SQLException
        {
-           return getImportedExportedKeys(primaryCatalog, primarySchema, primaryTable, foreignTable);
+               return getImportedExportedKeys(primaryCatalog, primarySchema, primaryTable, foreignTable);
        }
 
        /*
index daf9650dce436aa4797e499f5e0192ebf0d353df..1575b16661895efde14828cfb3bd5527a23b8616 100644 (file)
@@ -652,53 +652,53 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
                }
                switch (targetSqlType)
                {
-               case Types.TINYINT:
-               case Types.SMALLINT:
-               case Types.INTEGER:
-               case Types.BIGINT:
-               case Types.REAL:
-               case Types.FLOAT:
-               case Types.DOUBLE:
-               case Types.DECIMAL:
-               case Types.NUMERIC:
-                       if (x instanceof Boolean)
-                               set(parameterIndex, ((Boolean)x).booleanValue() ? "1" : "0");
-                       else
-                               set(parameterIndex, x.toString());
-                       break;
-               case Types.CHAR:
-               case Types.VARCHAR:
-               case Types.LONGVARCHAR:
-                       setString(parameterIndex, x.toString());
-                       break;
-               case Types.DATE:
-                       setDate(parameterIndex, (java.sql.Date)x);
-                       break;
-               case Types.TIME:
-                       setTime(parameterIndex, (Time)x);
-                       break;
-               case Types.TIMESTAMP:
-                       setTimestamp(parameterIndex, (Timestamp)x);
-                       break;
-               case Types.BIT:
-                       if (x instanceof Boolean)
-                       {
-                               set(parameterIndex, ((Boolean)x).booleanValue() ? "TRUE" : "FALSE");
-                       }
-                       else
-                       {
+                       case Types.TINYINT:
+                       case Types.SMALLINT:
+                       case Types.INTEGER:
+                       case Types.BIGINT:
+                       case Types.REAL:
+                       case Types.FLOAT:
+                       case Types.DOUBLE:
+                       case Types.DECIMAL:
+                       case Types.NUMERIC:
+                               if (x instanceof Boolean)
+                                       set(parameterIndex, ((Boolean)x).booleanValue() ? "1" : "0");
+                               else
+                                       set(parameterIndex, x.toString());
+                               break;
+                       case Types.CHAR:
+                       case Types.VARCHAR:
+                       case Types.LONGVARCHAR:
+                               setString(parameterIndex, x.toString());
+                               break;
+                       case Types.DATE:
+                               setDate(parameterIndex, (java.sql.Date)x);
+                               break;
+                       case Types.TIME:
+                               setTime(parameterIndex, (Time)x);
+                               break;
+                       case Types.TIMESTAMP:
+                               setTimestamp(parameterIndex, (Timestamp)x);
+                               break;
+                       case Types.BIT:
+                               if (x instanceof Boolean)
+                               {
+                                       set(parameterIndex, ((Boolean)x).booleanValue() ? "TRUE" : "FALSE");
+                               }
+                               else
+                               {
+                                       throw new PSQLException("postgresql.prep.type");
+                               }
+                               break;
+                       case Types.BINARY:
+                       case Types.VARBINARY:
+                               setObject(parameterIndex, x);
+                               break;
+                       case Types.OTHER:
+                               setString(parameterIndex, ((PGobject)x).getValue());
+                               break;
+                       default:
                                throw new PSQLException("postgresql.prep.type");
-                       }
-                       break;
-               case Types.BINARY:
-               case Types.VARBINARY:
-                       setObject(parameterIndex, x);
-                       break;
-               case Types.OTHER:
-                       setString(parameterIndex, ((PGobject)x).getValue());
-                       break;
-               default:
-                       throw new PSQLException("postgresql.prep.type");
                }
        }
 
index 804d9a2c770a7b769bf30150c96b54e319de723c..765fb46146e87247100f47b39665157035f6d59b 100644 (file)
@@ -321,40 +321,40 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
                wasNullFlag = (this_row[columnIndex - 1] == null);
                if (!wasNullFlag)
                {
-                   if (binaryCursor)
-                   {
-                       //If the data is already binary then just return it
-                       return this_row[columnIndex - 1];
-                   }
-                   else if (connection.haveMinimumCompatibleVersion("7.2"))
-                   {
-                       //Version 7.2 supports the bytea datatype for byte arrays
-                       if (fields[columnIndex - 1].getPGType().equals("bytea"))
+                       if (binaryCursor)
                        {
-                           return PGbytea.toBytes(getString(columnIndex));
+                               //If the data is already binary then just return it
+                               return this_row[columnIndex - 1];
                        }
-                       else
+                       else if (connection.haveMinimumCompatibleVersion("7.2"))
                        {
-                           return this_row[columnIndex - 1];
-                       }
-                   }
-                   else
-                   {                  
-                       //Version 7.1 and earlier supports LargeObjects for byte arrays
-                       // Handle OID's as BLOBS
-                       if ( fields[columnIndex - 1].getOID() == 26)
-                       {
-                           LargeObjectManager lom = connection.getLargeObjectAPI();
-                           LargeObject lob = lom.open(getInt(columnIndex));
-                           byte buf[] = lob.read(lob.size());
-                           lob.close();
-                           return buf;
+                               //Version 7.2 supports the bytea datatype for byte arrays
+                               if (fields[columnIndex - 1].getPGType().equals("bytea"))
+                               {
+                                       return PGbytea.toBytes(getString(columnIndex));
+                               }
+                               else
+                               {
+                                       return this_row[columnIndex - 1];
+                               }
                        }
                        else
                        {
-                           return this_row[columnIndex - 1];
+                               //Version 7.1 and earlier supports LargeObjects for byte arrays
+                               // Handle OID's as BLOBS
+                               if ( fields[columnIndex - 1].getOID() == 26)
+                               {
+                                       LargeObjectManager lom = connection.getLargeObjectAPI();
+                                       LargeObject lob = lom.open(getInt(columnIndex));
+                                       byte buf[] = lob.read(lob.size());
+                                       lob.close();
+                                       return buf;
+                               }
+                               else
+                               {
+                                       return this_row[columnIndex - 1];
+                               }
                        }
-                   }
                }
                return null;
        }
@@ -742,44 +742,44 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
 
                switch (field.getSQLType())
                {
-               case Types.BIT:
-                       return new Boolean(getBoolean(columnIndex));
-               case Types.SMALLINT:
-                       return new Integer(getInt(columnIndex));
-               case Types.INTEGER:
-                       return new Integer(getInt(columnIndex));
-               case Types.BIGINT:
-                       return new Long(getLong(columnIndex));
-               case Types.NUMERIC:
-                       return getBigDecimal
-                                  (columnIndex, (field.getMod() == -1) ? -1 : ((field.getMod() - 4) & 0xffff));
-               case Types.REAL:
-                       return new Float(getFloat(columnIndex));
-               case Types.DOUBLE:
-                       return new Double(getDouble(columnIndex));
-               case Types.CHAR:
-               case Types.VARCHAR:
-                       return getString(columnIndex);
-               case Types.DATE:
-                       return getDate(columnIndex);
-               case Types.TIME:
-                       return getTime(columnIndex);
-               case Types.TIMESTAMP:
-                       return getTimestamp(columnIndex);
-               case Types.BINARY:
-               case Types.VARBINARY:
-                       return getBytes(columnIndex);
-               default:
-                       String type = field.getPGType();
-                       // if the backend doesn't know the type then coerce to String
-                       if (type.equals("unknown"))
-                       {
+                       case Types.BIT:
+                               return new Boolean(getBoolean(columnIndex));
+                       case Types.SMALLINT:
+                               return new Integer(getInt(columnIndex));
+                       case Types.INTEGER:
+                               return new Integer(getInt(columnIndex));
+                       case Types.BIGINT:
+                               return new Long(getLong(columnIndex));
+                       case Types.NUMERIC:
+                               return getBigDecimal
+                                          (columnIndex, (field.getMod() == -1) ? -1 : ((field.getMod() - 4) & 0xffff));
+                       case Types.REAL:
+                               return new Float(getFloat(columnIndex));
+                       case Types.DOUBLE:
+                               return new Double(getDouble(columnIndex));
+                       case Types.CHAR:
+                       case Types.VARCHAR:
                                return getString(columnIndex);
-                       }
-                       else
-                       {
-                               return connection.getObject(field.getPGType(), getString(columnIndex));
-                       }
+                       case Types.DATE:
+                               return getDate(columnIndex);
+                       case Types.TIME:
+                               return getTime(columnIndex);
+                       case Types.TIMESTAMP:
+                               return getTimestamp(columnIndex);
+                       case Types.BINARY:
+                       case Types.VARBINARY:
+                               return getBytes(columnIndex);
+                       default:
+                               String type = field.getPGType();
+                               // if the backend doesn't know the type then coerce to String
+                               if (type.equals("unknown"))
+                               {
+                                       return getString(columnIndex);
+                               }
+                               else
+                               {
+                                       return connection.getObject(field.getPGType(), getString(columnIndex));
+                               }
                }
        }
 
@@ -1082,7 +1082,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
 
                if (current_row < 0 || current_row >= rows_size)
                        return 0;
-               
+
                return current_row + 1;
        }
 
@@ -1565,10 +1565,13 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
                        return null;
                // length == 10: SQL Date
                // length >  10: SQL Timestamp, assumes PGDATESTYLE=ISO
-               try {
-                       return java.sql.Date.valueOf((s.length() == 10) ? s : s.substring(0,10));
-               } catch (NumberFormatException e) {
-                       throw new PSQLException("postgresql.res.baddate", s);
+               try
+               {
+                       return java.sql.Date.valueOf((s.length() == 10) ? s : s.substring(0, 10));
+               }
+               catch (NumberFormatException e)
+               {
+                       throw new PSQLException("postgresql.res.baddate", s);
                }
        }
 
@@ -1578,10 +1581,13 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
                        return null; // SQL NULL
                // length == 8: SQL Time
                // length >  8: SQL Timestamp
-               try {
-                       return java.sql.Time.valueOf((s.length() == 8) ? s : s.substring(11,19));
-               } catch (NumberFormatException e) {
-                       throw new PSQLException("postgresql.res.badtime",s);
+               try
+               {
+                       return java.sql.Time.valueOf((s.length() == 8) ? s : s.substring(11, 19));
+               }
+               catch (NumberFormatException e)
+               {
+                       throw new PSQLException("postgresql.res.badtime", s);
                }
        }
 
@@ -1628,7 +1634,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
                        char sub = resultSet.sbuf.charAt(resultSet.sbuf.length() - 3);
                        if (sub == '+' || sub == '-')
                        {
-                               //we have found timezone info of format +/-HH
+                               //we have found timezone info of format +/-HH
 
                                resultSet.sbuf.setLength(resultSet.sbuf.length() - 3);
                                if (subsecond)
@@ -1639,22 +1645,28 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
                                {
                                        resultSet.sbuf.append("GMT").append(s.substring(s.length() - 3)).append(":00");
                                }
-                       } else if (sub == ':') {
-                               //we may have found timezone info of format +/-HH:MM, or there is no
-                               //timezone info at all and this is the : preceding the seconds
-                               char sub2 = resultSet.sbuf.charAt(resultSet.sbuf.length()-5);
-                               if (sub2 == '+' || sub2 == '-') 
+                       }
+                       else if (sub == ':')
+                       {
+                               //we may have found timezone info of format +/-HH:MM, or there is no
+                               //timezone info at all and this is the : preceding the seconds
+                               char sub2 = resultSet.sbuf.charAt(resultSet.sbuf.length() - 5);
+                               if (sub2 == '+' || sub2 == '-')
                                {
-                                       //we have found timezone info of format +/-HH:MM
-                                       resultSet.sbuf.setLength(resultSet.sbuf.length()-5);
-                                       if (subsecond)  
+                                       //we have found timezone info of format +/-HH:MM
+                                       resultSet.sbuf.setLength(resultSet.sbuf.length() - 5);
+                                       if (subsecond)
                                        {
-                                               resultSet.sbuf.append('0').append("GMT").append(s.substring(s.length()-5));
-                                       } else {
-                                               resultSet.sbuf.append("GMT").append(s.substring(s.length()-5));
+                                               resultSet.sbuf.append('0').append("GMT").append(s.substring(s.length() - 5));
                                        }
-                               } else if (subsecond) {
-                                       resultSet.sbuf.append('0');
+                                       else
+                                       {
+                                               resultSet.sbuf.append("GMT").append(s.substring(s.length() - 5));
+                                       }
+                               }
+                               else if (subsecond)
+                               {
+                                       resultSet.sbuf.append('0');
                                }
                        }
                        else if (subsecond)
index 1268efeff991b273ac914309cc87ff2a7f90d56b..7539a91c159423737dece07e1e565f13f6b1f1cd 100644 (file)
@@ -73,17 +73,17 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
 
                switch (sql_type)
                {
-               case Types.SMALLINT:
-               case Types.INTEGER:
-               case Types.FLOAT:
-               case Types.REAL:
-               case Types.DOUBLE:
-               case Types.DATE:
-               case Types.TIME:
-               case Types.TIMESTAMP:
-                       return false;
-               default:
-                       return true;
+                       case Types.SMALLINT:
+                       case Types.INTEGER:
+                       case Types.FLOAT:
+                       case Types.REAL:
+                       case Types.DOUBLE:
+                       case Types.DATE:
+                       case Types.TIME:
+                       case Types.TIMESTAMP:
+                               return false;
+                       default:
+                               return true;
                }
        }
 
@@ -107,10 +107,10 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
                // for further expansion.
                switch (sql_type)
                {
-               case Types.OTHER:
-                       return true;
-               default:
-                       return true;
+                       case Types.OTHER:
+                               return true;
+                       default:
+                               return true;
                }
        }
 
@@ -162,18 +162,18 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
 
                switch (sql_type)
                {
-               case Types.SMALLINT:
-               case Types.INTEGER:
-               case Types.FLOAT:
-               case Types.REAL:
-               case Types.DOUBLE:
-                       return true;
-               case Types.DATE:
-               case Types.TIME:
-               case Types.TIMESTAMP:
-                       return false;   // I don't know about these?
-               default:
-                       return false;
+                       case Types.SMALLINT:
+                       case Types.INTEGER:
+                       case Types.FLOAT:
+                       case Types.REAL:
+                       case Types.DOUBLE:
+                               return true;
+                       case Types.DATE:
+                       case Types.TIME:
+                       case Types.TIMESTAMP:
+                               return false;   // I don't know about these?
+                       default:
+                               return false;
                }
        }
 
@@ -289,26 +289,26 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
 
                switch (sql_type)
                {
-               case Types.SMALLINT:
-                       return 5;
-               case Types.INTEGER:
-                       return 10;
-               case Types.REAL:
-                       return 8;
-               case Types.FLOAT:
-                       return 16;
-               case Types.DOUBLE:
-                       return 16;
-               case Types.VARCHAR:
-                       return 0;
-               case Types.NUMERIC:
-                       Field f = getField(column);
-                       if (f != null)
-                               return ((0xFFFF0000)&f.getMod()) >> 16;
-                       else
+                       case Types.SMALLINT:
+                               return 5;
+                       case Types.INTEGER:
+                               return 10;
+                       case Types.REAL:
+                               return 8;
+                       case Types.FLOAT:
+                               return 16;
+                       case Types.DOUBLE:
+                               return 16;
+                       case Types.VARCHAR:
+                               return 0;
+                       case Types.NUMERIC:
+                               Field f = getField(column);
+                               if (f != null)
+                                       return ((0xFFFF0000)&f.getMod()) >> 16;
+                               else
+                                       return 0;
+                       default:
                                return 0;
-               default:
-                       return 0;
                }
        }
 
@@ -326,26 +326,26 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
 
                switch (sql_type)
                {
-               case Types.SMALLINT:
-                       return 0;
-               case Types.INTEGER:
-                       return 0;
-               case Types.REAL:
-                       return 8;
-               case Types.FLOAT:
-                       return 16;
-               case Types.DOUBLE:
-                       return 16;
-               case Types.VARCHAR:
-                       return 0;
-               case Types.NUMERIC:
-                       Field f = getField(column);
-                       if (f != null)
-                               return (((0x0000FFFF)&f.getMod()) - 4);
-                       else
+                       case Types.SMALLINT:
+                               return 0;
+                       case Types.INTEGER:
+                               return 0;
+                       case Types.REAL:
+                               return 8;
+                       case Types.FLOAT:
+                               return 16;
+                       case Types.DOUBLE:
+                               return 16;
+                       case Types.VARCHAR:
+                               return 0;
+                       case Types.NUMERIC:
+                               Field f = getField(column);
+                               if (f != null)
+                                       return (((0x0000FFFF)&f.getMod()) - 4);
+                               else
+                                       return 0;
+                       default:
                                return 0;
-               default:
-                       return 0;
                }
        }
 
index cd02e801ec7a4df6dd412adbd7d292538fb38fd5..ae436fbf18b4c78c5dd412a40e0a303d5e8f026d 100644 (file)
@@ -8,7 +8,7 @@ import java.sql.*;
 import org.postgresql.largeobject.*;
 
 /*
- * $Id: BlobTest.java,v 1.4 2001/11/19 22:33:39 momjian Exp $
+ * $Id: BlobTest.java,v 1.5 2001/11/19 23:16:46 momjian Exp $
  *
  * Some simple tests based on problems reported by users. Hopefully these will
  * help prevent previous problems from re-occuring ;-)
@@ -108,36 +108,36 @@ public class BlobTest extends TestCase
 
                switch (method)
                {
-               case LOOP:
-                       buf = new byte[2048];
-                       t = 0;
-                       while ((s = fis.read(buf, 0, buf.length)) > 0)
-                       {
-                               t += s;
-                               blob.write(buf, 0, s);
-                       }
-                       break;
-
-               case NATIVE_STREAM:
-                       os = blob.getOutputStream();
-                       s = fis.read();
-                       while (s > -1)
-                       {
-                               os.write(s);
+                       case LOOP:
+                               buf = new byte[2048];
+                               t = 0;
+                               while ((s = fis.read(buf, 0, buf.length)) > 0)
+                               {
+                                       t += s;
+                                       blob.write(buf, 0, s);
+                               }
+                               break;
+
+                       case NATIVE_STREAM:
+                               os = blob.getOutputStream();
                                s = fis.read();
-                       }
-                       os.close();
-                       break;
-
-               case JDBC_STREAM:
-                       File f = new File(file);
-                       PreparedStatement ps = con.prepareStatement(JDBC2Tests.insertSQL("testblob", "?"));
-                       ps.setBinaryStream(1, fis, (int) f.length());
-                       ps.execute();
-                       break;
-
-               default:
-                       assertTrue("Unknown method in uploadFile", false);
+                               while (s > -1)
+                               {
+                                       os.write(s);
+                                       s = fis.read();
+                               }
+                               os.close();
+                               break;
+
+                       case JDBC_STREAM:
+                               File f = new File(file);
+                               PreparedStatement ps = con.prepareStatement(JDBC2Tests.insertSQL("testblob", "?"));
+                               ps.setBinaryStream(1, fis, (int) f.length());
+                               ps.execute();
+                               break;
+
+                       default:
+                               assertTrue("Unknown method in uploadFile", false);
                }
 
                blob.close();
index 64a5560eac730b9583488832af30eec575ea499b..2c556bfb2d04b520f55fcdaa77b88ce670b33ddf 100644 (file)
@@ -21,7 +21,7 @@ public class ResultSetTest extends TestCase
        {
                con = JDBC2Tests.openDB();
                Statement stmt = con.createStatement();
-               
+
                JDBC2Tests.createTable(con, "testrs", "id integer");
 
                stmt.executeUpdate("INSERT INTO testrs VALUES (1)");
@@ -44,23 +44,23 @@ public class ResultSetTest extends TestCase
        {
                Statement stmt = con.createStatement();
                ResultSet rs = stmt.executeQuery("SELECT * FROM testrs");
-               
-               assertTrue(rs.absolute(-1));
+
+               assertTrue(rs.absolute( -1));
                assertEquals(6, rs.getRow());
 
                assertTrue(rs.absolute(1));
                assertEquals(1, rs.getRow());
 
-               assertTrue(!rs.absolute(-10));
+               assertTrue(!rs.absolute( -10));
                assertEquals(0, rs.getRow());
-               assertTrue(rs.next());
-               assertEquals(1, rs.getRow());
+               assertTrue(rs.next());
+               assertEquals(1, rs.getRow());
 
                assertTrue(!rs.absolute(10));
                assertEquals(0, rs.getRow());
                assertTrue(rs.previous());
                assertEquals(6, rs.getRow());
-               
+
                stmt.close();
        }
 }
index bdbad3d160e5a66326d5028dd428f5bc28a9e930..f5fe685e8084e408ab9e347979a38e03c90a54ac 100644 (file)
@@ -77,6 +77,7 @@ public class PGtokenizer
 
                // Don't forget the last token ;-)
 
+
                if (s < string.length())
                        tokens.addElement(string.substring(s));
 
index 4e8e0d4ba02e36883488b8f7d0305b093b18b055..ae34143cb234ad3cc469f735c172bbb275d72685 100644 (file)
@@ -40,7 +40,7 @@
 *
 * Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved.
 *
-* $Id: XADataSourceImpl.java,v 1.3 2001/11/19 22:33:39 momjian Exp $
+* $Id: XADataSourceImpl.java,v 1.4 2001/11/19 23:16:46 momjian Exp $
 */
 
 
@@ -379,6 +379,7 @@ public abstract class XADataSourceImpl
                        // Look for all connections inside a transaction that
                        // should have timed out by now.
 
+
                        timeout = System.currentTimeMillis();
                        enum = _txConnections.elements();
                        while ( enum.hasMoreElements() )
index 40cbf3d90397a23977c29053924bdac2fde5848c..d4e3777cc869cbe720594d0a4f22f3e07778bc3c 100755 (executable)
@@ -16,7 +16,7 @@ fi
 
 for FILE
 do
-       astyle --style=java -b -p -j < "$FILE" >/tmp/$$ 2>/tmp/$$a
+       astyle --style=java -b -p -j -S < "$FILE" >/tmp/$$ 2>/tmp/$$a
        if [ "$?" -ne 0 -o -s /tmp/$$a ]
        then    echo "$FILE"
                cat /tmp/$$a