17 Commits

Author SHA1 Message Date
Barry Lind
f736fdb022 Removed code that is no longer used and has been commented out
for the last two releases.

 Modified Files:
 	jdbc/org/postgresql/Driver.java.in
 	jdbc/org/postgresql/PG_Stream.java
 Removed Files:
 	jdbc/org/postgresql/core/BytePoolDim1.java
 	jdbc/org/postgresql/core/BytePoolDim2.java
 	jdbc/org/postgresql/core/MemoryPool.java
 	jdbc/org/postgresql/core/ObjectPool.java
 	jdbc/org/postgresql/core/SimpleObjectPool.java
2002-08-20 04:26:02 +00:00
Bruce Momjian
09634eafe1 Indent jdbc case labels using pgjindent. 2001-11-19 23:16:46 +00:00
Bruce Momjian
f3148bef9f JDBC indenting, comment cleanups. 2001-11-19 22:33:39 +00:00
Bruce Momjian
d2e27b0674 pgjindent jdbc files. First time jdbc files were formatted. 2001-10-25 06:00:05 +00:00
Bruce Momjian
3d162c0d1a Please pull this patch. It breaks JDBC1 support. The JDBC1 code no
longer compiles, due to objects being referenced in this patch that do
not exist in JDK1.1.

Barry Lind
---------------------------------------------------------------------------

The JDBC driver requires

  permission java.net.SocketPermission "host:port", "connect";

in the policy file of the application using the JDBC driver
in the postgresql.jar file.  Since the Socket() call in the
driver is not protected by AccessController.doPrivileged() this
permission must also be granted to the entire application.
2001-08-26 17:08:48 +00:00
Bruce Momjian
19a251d0ec >>>>The JDBC driver requires
>>>>
>>>> permission java.net.SocketPermission "host:port", "connect";
>>>>
>>>>in the policy file of the application using the JDBC driver
>>>>in the postgresql.jar file.  Since the Socket() call in the
>>>>driver is not protected by AccessController.doPrivileged() this
>>>>permission must also be granted to the entire application.
>>>>
>>>>The attached diff fixes it so that the connect permission can be
>>>>restricted just the the postgresql.jar codeBase if desired.

David Daney
2001-08-26 01:06:20 +00:00
Bruce Momjian
509f5d241a This patch merges the identical methods from the JDBC1 and JDBC2
connection implementations (org.postgresql.jdbc[1|2].Connection) into
their superclass (org.postgresql.Connection).

It also changes the close() methods of Connection and PG_Stream, so that
PG_Stream no longer is responsible for sending the termination packet 'X'
to the backend. I figured that protocol-level stuff like that belonged in
Connection more than in PG_Stream.

Anders Bengtsson
2001-07-30 14:51:19 +00:00
Bruce Momjian
ff21a8e5c8 JDBC encoding additions.
Here's a patch against the current CVS. The changes from the previous
patch are mostly related to the changed interface for PG_Stream.

Anders Bengtsson
2001-07-21 18:52:11 +00:00
Bruce Momjian
b08e86d557 The attached patch fixes problems with the JDBC driver handling long
null terminated strings.  The FE/BE protocol sends in some cases null
terminated strings to the client.  The docs for the FE/BE protocol state
that there is no limit on the size of a null terminated string sent to
the client and a client should be coded using an expanding buffer to
deal with large strings.  The old code did not do this and gave an error
if a null terminated string was greater than either 4 or 8K.  It appears
that with the advent of TOAST very long SQL statements are becoming more
common, and apparently some error messages from the backend include the
SQL statement thus easily exceeding the 8K limit in the old code.

In fixing I also cleaned up some calls in the JDBC fastpath code that
were not doing character set conversion under multibyte, and removed
some methods that were no longer needed.  I also removed a potential
threading problem with a shared variable that was being used in
Connection.java.

Thanks to Steve Wampler for discovering the problem and sending the
initial diffs that were the basis of this patch.

thanks,
--Barry
2001-07-15 04:21:26 +00:00
Peter Eisentraut
cff024120a Terminate message doesn't have a trailing zero byte. 2001-07-06 18:01:22 +00:00
Bruce Momjian
0e4d43f459 The attached patch removes some old and dead code (and some related
misleading comments) from the PG_Stream class.

Anders Bengtsson
2001-07-04 15:09:54 +00:00
Peter Mount
45b5d792af Thu Jan 18 12:24:00 GMT 2001 peter@retep.org.uk
- These methods in org.postgresql.jdbc2.ResultSet are now implemented:
            getBigDecimal(int) ie: without a scale (why did this get missed?)
            getBlob(int)
            getCharacterStream(int)
            getConcurrency()
            getDate(int,Calendar)
            getFetchDirection()
            getFetchSize()
            getTime(int,Calendar)
            getTimestamp(int,Calendar)
            getType()
          NB: Where int represents the column name, the associated version
              taking a String were already implemented by calling the int
              version.
        - These methods no longer throw the not implemented but the new noupdate
          error. This is in preparation for the Updateable ResultSet support
          which will overide these methods by extending the existing class to
          implement that functionality, but needed to show something other than
          notimplemented:
            cancelRowUpdates()
            deleteRow()
        - Added new error message into errors.properties "postgresql.noupdate"
          This is used by jdbc2.ResultSet when an update method is called and
          the ResultSet is not updateable. A new method notUpdateable() has been
          added to that class to throw this exception, keeping the binary size
          down.
        - Added new error message into errors.properties "postgresql.psqlnotimp"
          This is used instead of unimplemented when it's a feature in the
          backend that is preventing this method from being implemented.
        - Removed getKeysetSize() as its not part of the ResultSet API

Thu Jan 18 09:46:00 GMT 2001 peter@retep.org.uk
        - Applied modified patch from Richard Bullington-McGuire
          <rbulling@microstate.com>. I had to modify it as some of the code
          patched now exists in different classes, and some of it actually
          patched obsolete code.

Wed Jan 17 10:19:00 GMT 2001 peter@retep.org.uk
        - Updated Implementation to include both ANT & JBuilder
        - Updated README to reflect the changes since 7.0
	- Created jdbc.jpr file which allows JBuilder to be used to edit the
          source. JBuilder _CAN_NOT_ be used to compile. You must use ANT for
          that. It's only to allow JBuilders syntax checking to improve the
          drivers source. Refer to Implementation for more details
2001-01-18 14:50:15 +00:00
Peter Mount
f41dcbe4d8 Major update part I involving delayed patches, reworked Makefile, and how
the versioning works. There's also a new utils directory used by Makefile
2000-10-12 08:55:28 +00:00
Bruce Momjian
a4e3943b3f Back out Gunnar R|nning jdbc changes. 2000-10-09 16:48:19 +00:00
Bruce Momjian
5383b5d8ed Okay, I have some new code in place that hopefully should work better. I
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
2000-10-08 19:37:56 +00:00
Bruce Momjian
65edb54186 Attached are a patch to allow the charset encoding used by the JDBC
driver to be set, and a description of said patch.  Please refer to
the latter for more information.

William
--
William Webber                               william@peopleweb.net.au
2000-09-12 04:58:50 +00:00
Peter Mount
4fc3690238 Attempt III 2000-04-26 05:39:32 +00:00