Skip to content
Snippets Groups Projects
  1. Aug 13, 2002
  2. Jul 23, 2002
    • Barry Lind's avatar
      Initial restructuring to add jdbc3 support. There was a significant amount · 1e318736
      Barry Lind authored
      of duplicated code between the jdbc1 and jdbc2.  This checkin restructures
      the code so that the duplication is removed so that the jdbc3 support
      can be added without adding yet another copy of everything.  Also many
      classes were renamed to avoid confusion with multiple different objects
      having the same name.  The timestamp tests were also updated to add support
      for testing timestamp without time zone in addition to timestamp with time zone
      
       Modified Files:
       	jdbc/Makefile jdbc/build.xml jdbc/example/ImageViewer.java
       	jdbc/example/basic.java jdbc/example/blobtest.java
       	jdbc/example/threadsafe.java
       	jdbc/org/postgresql/Driver.java.in
       	jdbc/org/postgresql/Field.java
       	jdbc/org/postgresql/core/QueryExecutor.java
       	jdbc/org/postgresql/fastpath/Fastpath.java
       	jdbc/org/postgresql/jdbc1/CallableStatement.java
       	jdbc/org/postgresql/jdbc1/DatabaseMetaData.java
       	jdbc/org/postgresql/jdbc1/PreparedStatement.java
       	jdbc/org/postgresql/jdbc2/Array.java
       	jdbc/org/postgresql/jdbc2/CallableStatement.java
       	jdbc/org/postgresql/jdbc2/DatabaseMetaData.java
       	jdbc/org/postgresql/jdbc2/PreparedStatement.java
       	jdbc/org/postgresql/jdbc2/UpdateableResultSet.java
       	jdbc/org/postgresql/largeobject/LargeObjectManager.java
       	jdbc/org/postgresql/largeobject/PGblob.java
       	jdbc/org/postgresql/largeobject/PGclob.java
       	jdbc/org/postgresql/test/jdbc2/BlobTest.java
       	jdbc/org/postgresql/test/jdbc2/ConnectionTest.java
       	jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java
       	jdbc/org/postgresql/test/jdbc2/TimestampTest.java
       	jdbc/org/postgresql/test/jdbc2/UpdateableResultTest.java
       	jdbc/org/postgresql/util/Serialize.java
       Added Files:
       	jdbc/org/postgresql/PGConnection.java
       	jdbc/org/postgresql/PGStatement.java
       	jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java
       	jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java
       	jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java
       	jdbc/org/postgresql/jdbc1/Jdbc1Connection.java
       	jdbc/org/postgresql/jdbc1/Jdbc1ResultSet.java
       	jdbc/org/postgresql/jdbc1/Jdbc1Statement.java
       	jdbc/org/postgresql/jdbc2/AbstractJdbc2Connection.java
       	jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java
       	jdbc/org/postgresql/jdbc2/AbstractJdbc2Statement.java
       	jdbc/org/postgresql/jdbc2/Jdbc2Connection.java
       	jdbc/org/postgresql/jdbc2/Jdbc2ResultSet.java
       	jdbc/org/postgresql/jdbc2/Jdbc2Statement.java
       Removed Files:
       	jdbc/org/postgresql/Connection.java
       	jdbc/org/postgresql/ResultSet.java
       	jdbc/org/postgresql/Statement.java
       	jdbc/org/postgresql/jdbc1/Connection.java
       	jdbc/org/postgresql/jdbc1/ResultSet.java
       	jdbc/org/postgresql/jdbc1/Statement.java
       	jdbc/org/postgresql/jdbc2/Connection.java
       	jdbc/org/postgresql/jdbc2/ResultSet.java
       	jdbc/org/postgresql/jdbc2/Statement.java
      1e318736
  3. Jun 11, 2002
    • Barry Lind's avatar
      The patch does the following: · b465f530
      Barry Lind authored
        Allows you to set the loglevel at runtime by adding ?loglevel=X to the connection URL, where 1 = INFO and 2 = DEBUG.
        Automatically turns on logging by calling DriverManager.setPrintWriter(new PrintWriter(System.out)) if one is not already set.
      Adds a Driver.info() message that prints out the version number
      Adds member variables logDebug and logInfo that can be checked before making logging methods calls
      Adds a build number to the version number string.  This build number will need to be manually incremented when we see fit.
      
      ----------------------------------------------------------------------
      Modified Files:
       	org/postgresql/Connection.java org/postgresql/Driver.java.in
       	org/postgresql/fastpath/Fastpath.java
       	org/postgresql/jdbc1/DatabaseMetaData.java
       	org/postgresql/jdbc2/Connection.java
       	org/postgresql/jdbc2/DatabaseMetaData.java
       	org/postgresql/largeobject/LargeObjectManager.java
       	org/postgresql/util/PSQLException.java
       	org/postgresql/util/Serialize.java
      ----------------------------------------------------------------------
      b465f530
  4. Nov 26, 2001
    • Barry Lind's avatar
      This patch fixes a bug reported by Graham Leggett (minfrin@sharp.fm). · 4bc8c8dd
      Barry Lind authored
      The bug was that any insert or update would fail if the returned oid was
      larger than a signed int.  Since OIDs are unsigned int's it was
      a bug that the code used a java signed int to deal with the values.  The bug
      would result in the error message: "Unable to fathom update count".
      While fixing the bug, it became apparent that other code made a similar
      assumption about OIDs being signed ints.  Therefore some methods that returned
      or took OIDs are arguements also needed to be changed.
      Since we are so close to the 7.2 release I have added new methods that
      return longs and deprecated the old methods returning ints.  Therefore all
      old code should still work without requiring a code change to cast from long to int.  Also note that the methods below are PostgreSQL specific extensions to
      the JDBC api are are not part of the spec from Sun, thus it is unlikely that
      they are used much or at all.
      
      The deprecated methods are:
        ResultSet.getInsertedOID()
        Statement.getInsertedOID()
        Serialize.store()
        Connection.putObject()
      and are replaced by:
        ResultSet.getLastOID()
        Statement.getLastOID()
        Serialize.storeObject()
        Connection.storeObject()
      All the deprecated methods returned int, while their replacements return long
      
      This patch also fixes two comments in MD5Digest that the author Jeremy Wohl
      submitted.
      
      --Barry
      4bc8c8dd
  5. Nov 20, 2001
  6. Nov 19, 2001
  7. Oct 25, 2001
  8. Aug 26, 2001
    • Bruce Momjian's avatar
      The attached file: SerializePatch2.tgz, contains a patch for · f4786925
      Bruce Momjian authored
      org.postgresql.util.Serialize and org.postgresql.jdbc2.PreparedStatement
      that  fixes the ability to "serialize" a simple java class into a
      postgres table.
      
      The current cvs seems completely broken in this support, so the patch
      puts it  into working condition, granted that there are many limitations
      with  serializing java classes into Postgres.
      
      The code to do serialize appears to have been in the driver since
      Postgres  6.4, according to some comments in the source.  My code is not
      adding any  totally new ability to the driver, rather just fixing what
      is there so that  it actually is usable.  I do not think that it should
      affect any existing  functions of the driver that people regularly
      depend on.
      
      The code is activated if you use jdbc2.PreparedStatement and try to
      setObject  some java class type that is unrecognized, like not String or
      not some other  primitive type.  This will cause a sequence of function
      calls that results in  an instance of Serialize being instantiated for
      the class type passed.  The  Serialize constructor will query pg_class
      to see if it can find an existing  table that matches the name of the
      java class. If found, it will continue and  try to use the table to
      store the object, otherwise an SQL exception is  thrown and no harm is
      done.  Serialize.create() has to be used to setup the  table for a java
      class before anything can really happen with this code other  than an
      SQLException (unless by some freak chance a table exists that it  thinks
      it can use).
      
      I saw a difference in Serialize.java between 7.1.3 and 7.2devel that I
      didn't  notice before, so I had to redo my changes from the 7.2devel
      version (why I  had to resend this patch now).  I was missing the
      fixString stuff, which is  nice and is imporant to ensure the inserts
      will not fail due to embedded  single quote or unescaped backslashes. I
      changed that fixString function in  Serialize just a little since there
      is no need to muddle with escaping  newlines: only escaping single quote
      and literal backslashes is needed.  Postgres appears to insert newlines
      within strings without trouble.
      f4786925
  9. May 24, 2001
  10. Oct 09, 2000
  11. Oct 08, 2000
    • Bruce Momjian's avatar
      Okay, I have some new code in place that hopefully should work better. I · 5383b5d8
      Bruce Momjian authored
      couldn't produce a full patch using cvs diff -c this time since I have
      created new files and anonymous cvs usage doesn't allow you to
      adds. I'm supplying the modified src/interfaces/jdbc as a tarball at :
      http://www.candleweb.no/~gunnar/projects/pgsql/postgres-jdbc-2000-10-05.tgz
      
      The new files that should be added are :
      
      ? org/postgresql/PGStatement.java
      ? org/postgresql/ObjectPool.java
      ? org/postgresql/ObjectPoolFactory.java
      
      There is now a global static pool of free byte arrays and used byte arrays
      connected to a statement object. This is the role of the new PGStatement
      class. Access to the global free array is synchronized, while we rely on
      the PG_Stream synchronization for the used array.
      
      My measurements show that the perfomance boost on this code is not quite as
      big as my last shot, but it is still an improvement. Maybe some of the
      difference is due to the new synchronization on the global array. I think I
      will look into choosing between on a connection level and global level.
      
      I have also started experimented with improving the performance of the
      various conversions. The problem here is ofcourse related handle the
      various encodings. One thing I found to speed up ResultSet.getInt() a lot
      was to do custom conversion on the byte array into int instead of going
      through the getString() to do the conversion. But I'm unsure if this is
      portable, can we assume that a digit never can be represented by more than
      one byte ? It works fine in my iso-latin-8859-1 environment, but what about
      other environments ? Maybe we could provide different ResultSet
      implementations depending on the encoding used or delegate some methods of
      the result set to an "converter class".
      
      Check the org/postgresql/jdbc2/FastResultSet.java in the tarball above to
      see the modified getInt() method.
      
      Regards,
      
              Gunnar
      5383b5d8
  12. Apr 17, 2000
  13. May 19, 1999
  14. Jun 16, 1998
Loading