Applied patch submitted by Mike Beachy to give a better error message if
configure hasn't been run before trying to build. Also cleaned up the README file and removed some obsolete files. Modified Files: jdbc/README jdbc/build.xml Removed Files: jdbc/CHANGELOG jdbc/Implementation jdbc/jdbc.jpx
This commit is contained in:
parent
272bf59d29
commit
ea794574f1
@ -1,467 +0,0 @@
|
||||
Tue Mar 06 12:05:00 GMT 2001 peter@retep.org.uk
|
||||
- Removed org.postgresql.xa.Test from the JDBC EE driver as it's an old
|
||||
test class and prevented it from compiling.
|
||||
|
||||
Fri Mar 02 10:00:00 GMT 2001 peter@retep.org.uk
|
||||
- Fixed build.xml so that PGclob is not built in the JDBC1.2 driver
|
||||
|
||||
|
||||
Fri Feb 17 18:25:00 GMT 2001 peter@retep.org.uk
|
||||
- Removed the last deprecation warnings from the Java2 driver. Now only
|
||||
the old examples give deprecation warnings.
|
||||
- Added a new class into core that (JDK1.3+) ensures all connections are
|
||||
closed when the VM terminates.
|
||||
|
||||
Fri Feb 17 15:11:00 GMT 2001 peter@retep.org.uk
|
||||
- Reduced the object overhead in PreparedStatement by reusing the same
|
||||
StringBuffer object throughout. Similarly SimpleDateStamp's are alse
|
||||
reused in a thread save manner.
|
||||
- Implemented in PreparedStatement: setNull(), setDate/Time/Timestamp
|
||||
using Calendar, setBlob(), setCharacterStream()
|
||||
- Clob's are now implemented in ResultSet & PreparedStatement!
|
||||
- Implemented a lot of DatabaseMetaData & ResultSetMetaData methods.
|
||||
We have about 18 unimplemented methods left in JDBC2 at the current
|
||||
time.
|
||||
|
||||
Web Feb 14 17:29:00 GMT 2001 peter@retep.org.uk
|
||||
- Fixed bug in LargeObject & BlobOutputStream where the stream's output
|
||||
was not flushed when either the stream or the blob were closed.
|
||||
- Fixed PreparedStatement.setBinaryStream() where it ignored the length
|
||||
|
||||
Tue Feb 13 16:33:00 GMT 2001 peter@retep.org.uk
|
||||
- More TestCases implemented. Refined the test suite api's.
|
||||
- Removed need for SimpleDateFormat in ResultSet.getDate() improving
|
||||
performance.
|
||||
- Rewrote ResultSet.getTime() so that it uses JDK api's better.
|
||||
|
||||
Tue Feb 13 10:25:00 GMT 2001 peter@retep.org.uk
|
||||
- Added MiscTest to hold reported problems from users.
|
||||
- Fixed PGMoney.
|
||||
- JBuilder4/JDBCExplorer now works with Money fields. Patched Field &
|
||||
ResultSet (lots of methods) for this one. Also changed cash/money to
|
||||
return type DOUBLE not DECIMAL. This broke JBuilder as zero scale
|
||||
BigDecimal's can't have decimal places!
|
||||
- When a Statement is reused, the previous ResultSet is now closed.
|
||||
- Removed deprecated call in ResultSet.getTime()
|
||||
|
||||
Thu Feb 08 18:53:00 GMT 2001 peter@retep.org.uk
|
||||
- Changed a couple of settings in DatabaseMetaData where 7.1 now
|
||||
supports those features
|
||||
- Implemented the DatabaseMetaData TestCase.
|
||||
|
||||
Wed Feb 07 18:06:00 GMT 2001 peter@retep.org.uk
|
||||
- Added comment to Connection.isClosed() explaining why we deviate from
|
||||
the JDBC2 specification.
|
||||
- Fixed bug where the Isolation Level is lost while in autocommit mode.
|
||||
- Fixed bug where several calls to getTransactionIsolationLevel()
|
||||
returned the first call's result.
|
||||
|
||||
Tue Feb 06 19:00:00 GMT 2001 peter@retep.org.uk
|
||||
- Completed first two TestCase's for the test suite. JUnit is now
|
||||
recognised by ant.
|
||||
|
||||
Wed Jan 31 08:46:00 GMT 2001 peter@retep.org.uk
|
||||
- Some minor additions to Statement to make our own extensions more
|
||||
portable.
|
||||
- Statement.close() will now call ResultSet.close() rather than just
|
||||
dissasociating with it.
|
||||
|
||||
Tue Jan 30 22:24:00 GMT 2001 peter@retep.org.uk
|
||||
- Fixed bug where Statement.setMaxRows() was a global setting. Now
|
||||
limited to just itself.
|
||||
- Changed LargeObject.read(byte[],int,int) to return the actual number
|
||||
of bytes read (used to be void).
|
||||
- LargeObject now supports InputStream's!
|
||||
- PreparedStatement.setBinaryStream() now works!
|
||||
- ResultSet.getBinaryStream() now returns an InputStream that doesn't
|
||||
copy the blob into memory first!
|
||||
- Connection.isClosed() now tests to see if the connection is still alive
|
||||
rather than if it thinks it's alive.
|
||||
Thu Jan 25 09:11:00 GMT 2001 peter@retep.org.uk
|
||||
- Added an alternative constructor to PGSQLException so that debugging
|
||||
some more osteric bugs is easier. If only 1 arg is supplied and it's
|
||||
of type Exception, then that Exception's stacktrace is now included.
|
||||
|
||||
Wed Jan 24 09:18:00 GMT 2001 peter@retep.org.uk
|
||||
- Removed the 8k limit by setting it to 64k
|
||||
|
||||
Fri Jan 19 08:47:00 GMT 2001 peter@retep.org.uk
|
||||
- Applied patch submitted by John Schutz <schutz@austin.rr.com> that
|
||||
fixed a bug with ANT's SQL functions (not needed for building but nice
|
||||
to have fixed).
|
||||
|
||||
Thu Jan 18 17:30:00 GMT 2001 peter@retep.org.uk
|
||||
- Added new error message into errors.properties "postgresql.notsensitive"
|
||||
This is used by jdbc2.ResultSet when a method is called that should
|
||||
fetch the current value of a row from the database refreshRow() for
|
||||
example.
|
||||
- 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:
|
||||
moveToCurrentRow()
|
||||
moveToInsertRow()
|
||||
rowDeleted()
|
||||
rowInserted()
|
||||
all update*() methods, except those that took the column as a String
|
||||
as they were already implemented to convert the String to an int.
|
||||
- getFetchDirection() and setFetchDirection() now throws
|
||||
"postgresql.notimp" as we only support one direction.
|
||||
The CursorResultSet will overide this when its implemented.
|
||||
- Created a new class under jdbc2 UpdateableResultSet which extends
|
||||
ResultSet and overides the relevent update methods.
|
||||
This allows us to implement them easily at a later date.
|
||||
- In jdbc2.Connection, the following methods are now implemented:
|
||||
createStatement(type,concurrency);
|
||||
getTypeMap();
|
||||
setTypeMap(Map);
|
||||
- The JDBC2 type mapping scheme almost complete, just needs SQLInput &
|
||||
SQLOutput to be implemented.
|
||||
- Removed some Statement methods that somehow appeared in Connection.
|
||||
- In jdbc2.Statement()
|
||||
getResultSetConcurrency()
|
||||
getResultSetType()
|
||||
setResultSetConcurrency()
|
||||
setResultSetType()
|
||||
- Finally removed the old 6.5.x driver.
|
||||
|
||||
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
|
||||
|
||||
Wed Dec 20 16:19:00 GMT 2000 peter@retep.org.uk
|
||||
- Finished build.xml and updated Driver.java.in and buildDriver to
|
||||
match how Makefile and ANT operate.
|
||||
|
||||
Tue Dec 19 17:30:00 GMT 2000 peter@retep.org.uk
|
||||
- Finally created ant build.xml file
|
||||
|
||||
Mon Nov 20 08:12:00 GMT 2000 peter@retep.org.uk
|
||||
- Encoding patch to Connection by wrobell@posexperts.com.pl
|
||||
|
||||
Tue Oct 17 15:35:00 BST 2000 petermount@maidstone.gov.uk
|
||||
- Changed getTimestamp() again. This time Michael Stephenson's
|
||||
<mstephenson@tirin.openworld.co.uk> solution looked far better
|
||||
than the original solution put in June.
|
||||
|
||||
Tue Oct 10 13:12:00 BST 2000 peter@retep.org.uk
|
||||
- DatabaseMetaData.supportsAlterTableWithDropColumn() as psql doesn't
|
||||
support dropping of individual columns
|
||||
- Merged in some last patches. Only 1 left, which may not be compatible
|
||||
with jdbc1
|
||||
- Merged in my old retepsql project. Makefile now includes it.
|
||||
|
||||
Mon Oct 02 12:30:00 BST 2000 peter@retep.org.uk
|
||||
- Merged in byte[] array allocation changes submitted by Gunnar R|nning
|
||||
<gunnar@candleweb.no>
|
||||
|
||||
Mon Sep 25 14:22:00 BST 2000 peter@retep.org.uk
|
||||
- Removed the DriverClass kludge. Now the org.postgresql.Driver class
|
||||
is compiled from a template file, and now has both the connection
|
||||
class (ie jdbc1/jdbc2) and the current version's from Makefile.global
|
||||
|
||||
Thu Jul 20 16:30:00 BST 2000 petermount@it.maidstone.gov.uk
|
||||
- Fixed DatabaseMetaData.getTableTypes()
|
||||
|
||||
Tue Jun 06 12:00:00 BST 2000 petermount@it.maidstone.gov.uk
|
||||
- Added org/postgresql/DriverClass.java to the list of files removed
|
||||
by make clean (it's dynamically built)
|
||||
- Fixed Statement, so that the update count is valid when an SQL
|
||||
DELETE operation is done.
|
||||
- While fixing the update count, made it easier to get the OID of
|
||||
the last insert as well. Example is in example/basic.java
|
||||
|
||||
Tue Jun 06 08:37:00 BST 2000 petermount@it.maidstone.gov.uk
|
||||
- Removed a hardwired 8K limit on query strings
|
||||
- Added some missing org.'s in Connection that prevented
|
||||
the use of the geometric types.
|
||||
|
||||
Thu Jun 01 07:26:00 BST 2000 petermount@it.maidstone.gov.uk
|
||||
- Removed timezone in getTimestamp() methods in ResultSet.
|
||||
|
||||
Mon May 15 22:30:00 BST 2000 peter@retep.org.uk
|
||||
- Fixed the message Makefile produces after compiling. It still said
|
||||
about the old Driver class, not the new package. Spotted by
|
||||
Joseph Shraibman <jks@p1.selectacast.net>
|
||||
|
||||
Thu May 04 11:38:00 BST 2000 petermount@it.maidstone.gov.uk
|
||||
- Corrected incorrect date in CHANGELOG
|
||||
- Fixed the ImageViewer example
|
||||
|
||||
Wed May 03 16:47:00 BST 2000 petermount@it.maidstone.gov.uk
|
||||
- Fixed the Makefile so that postgresql.jar is built everytime
|
||||
the jdbc1 or jdbc2 rules are called.
|
||||
- Fixed the threadsafe example. It had problems with autocommit
|
||||
|
||||
Wed May 03 14:32:00 BST 2000 petermount@it.maidstone.gov.uk
|
||||
- Rewrote the README file (the old one was 18 months old!)
|
||||
- Added @deprecated tags to org.postgresql.jdbc2.ResultSet
|
||||
to clear some warnings issued during compilation.
|
||||
|
||||
Wed Apr 12 22:14:00 BST 2000 peter@retep.org.uk
|
||||
- Implemented the JDBC2 Blob interface, and ResultSet.getBlob().
|
||||
|
||||
Wed Apr 12 20:20:00 BST 2000 peter@retep.org.uk
|
||||
- Fixed bug in ResultSet.absolute(). Negative rows are now supported.
|
||||
- Implemented ResultSet.relative(), afterLast().
|
||||
|
||||
Tue Feb 1 21:40:00 GMT 2000 peter@retep.org.uk
|
||||
- Finally imported the contributed javax extensions by Assaf Arkin
|
||||
arkin@exoffice.com
|
||||
|
||||
Mon Jan 24 21:00:00 GMT 2000 peter@retep.org.uk
|
||||
- Finally introduced the 7.0 additions to the core CVS repository.
|
||||
- All source files are now under the org.postgresql package (previously
|
||||
they were under postgresql). The package lines now changed
|
||||
accordingly.
|
||||
- The Makefile was rewritten so it should now work on machines that
|
||||
can't handle the $( ) syntax.
|
||||
- Dutch translation by Arnout Kuiper (ajkuiper@wxs.nl)
|
||||
|
||||
Mon Sep 13 23:56:00 BST 1999 peter@retep.org.uk
|
||||
- PG_Stream.SendChar() optimised, increased default buffer size of
|
||||
output stream to 8k, and introduced an 8k buffer on the input stream
|
||||
Sverre H Huseby <sverrehu@online.no>
|
||||
- Added a finalize() method to Connection class in both drivers so that
|
||||
the connection to the backend is really closed.
|
||||
- Due to many JVM's not returning a meaningful value for java.version
|
||||
the decision for building the JDBC1.2 or JDBC2 driver is now a
|
||||
compile time option.
|
||||
- Replaced $$(cmd...) with `cmd...` in the Makefile. This should allow
|
||||
the driver to compile when using shells other than Bash.
|
||||
|
||||
Thu Sep 9 01:18:39 MEST 1999 jens@jens.de
|
||||
- fixed bug in handling of DECIMAL type
|
||||
|
||||
Wed Aug 4 00:25:18 CEST 1999 jens@jens.de
|
||||
- updated ResultSetMetaData.getColumnDisplaySize() to return
|
||||
the actual display size
|
||||
- updated driver to use postgresql FE/BE-protocol version 2
|
||||
|
||||
Mon Aug 2 03:29:35 CEST 1999 jens@jens.de
|
||||
- fixed bug in DatabaseMetaData.getPrimaryKeys()
|
||||
|
||||
Sun Aug 1 18:05:42 CEST 1999 jens@jens.de
|
||||
- added support for getTransactionIsolation and setTransactionIsolation
|
||||
|
||||
Sun Jun 27 12:00:00 BST 1999
|
||||
- Fixed typo in postgresql.Driver that prevented compilation
|
||||
- Implemented getTimestamp() fix submitted by Philipp Matthias Hahn
|
||||
<pmhahn@titan.lahn.de>
|
||||
- Cleaned up some comments in Connection
|
||||
|
||||
Wed Jun 23 06:50:00 BST 1999
|
||||
- Fixed error in errors.properties where the arguments are 0 based not
|
||||
1 based
|
||||
- Fixed bug in postgresql.Driver where exception is thrown, then
|
||||
intercepted rather than being passed to the calling application.
|
||||
- Removed the file postgresql/CallableStatement, as it's not used and
|
||||
really exists in the jdbc1 & jdbc2 sub packages only.
|
||||
|
||||
Wed May 19 00:20:00 BST 1999
|
||||
- Internationalisation now done. Surprising that there's 68 error
|
||||
messages in the driver ;-)
|
||||
|
||||
Tue May 18 07:00:00 BST 1999
|
||||
- Set the ImageViewer application to use transactions
|
||||
|
||||
Tue May 18 00:00:00 BST 1999
|
||||
- Just after committing, I realised why internationalisation isn't
|
||||
working. This is now fixed (in the Makefile).
|
||||
|
||||
Mon May 17 23:40:00 BST 1999
|
||||
- PG_Stream.close() now attempts to send the close connection message
|
||||
to the backend before closing the streams
|
||||
- Added batch support in the JDBC2, supplied by Yutaka Tanida
|
||||
<yutaka@marin.or.jp>
|
||||
- Removed the old datestyle code. Now the driver uses only ISO.
|
||||
- Removed some files in the postgresql directory still in CVS that were
|
||||
moved since 6.4.x (DatabaseMetaData.java PreparedStatement.java
|
||||
ResultSetMetaData.java Statement.java)
|
||||
- Internationalisation of the error messages is partially implemented,
|
||||
however it's not enabled as it only works when the jar file is
|
||||
_not_ used, and work needs to be done.
|
||||
|
||||
Sun Apr 11 17:00:00 BST 1999
|
||||
- getUpdateCount() now returns the actual update count (before it
|
||||
simply returned 1 for everything).
|
||||
- added some updates to example.basic so it would test the new update
|
||||
count code.
|
||||
- corrected typo in a comment in Statement.java
|
||||
|
||||
Mon Jan 25 19:45:00 GMT 1999
|
||||
- created subfolders example/corba and example/corba/idl to hold the
|
||||
new example showing how to hook CORBA and PostgreSQL via JDBC
|
||||
- implemented some JDBC2 methods curtesy of Joachim.Gabler@t-online.de
|
||||
|
||||
Sat Jan 23 10:30:00 GMT 1999
|
||||
- Changed imports in postgresql.jdbc1.ResultSetMetaData as for some
|
||||
reason it didn't want to compile under jdk1.1.6
|
||||
|
||||
Tue Dec 29 15:45:00 GMT 1998
|
||||
- Refreshed the README (which was way out of date)
|
||||
|
||||
Tue Dec 29 15:45:00 GMT 1998
|
||||
- Finished adding the additional methods into the JDBC2 driver.
|
||||
- Had to add some explicit package references for the JDK1.2 Javac to
|
||||
cope with the driver
|
||||
|
||||
Tue Dec 29 12:40:00 GMT 1998
|
||||
- Fixed package imports and some references to java.sql.ResultSet in
|
||||
various files. Compiled and tested the JDBC1 driver.
|
||||
|
||||
Mon Dec 28 19:01:37 GMT 1998
|
||||
- created a new package postgresql.jdbc2 which will contain the JDBC 2
|
||||
specific classes. A similar new package (postgresql.jdbc1) has been
|
||||
created to hold the JDBC 1 specific classes.
|
||||
- modified Makefile to allow compilation of the JDBC 1 & 2 drivers,
|
||||
with the possibility of building a dual-spec driver.
|
||||
- changed the version number in postgresql.Driver to 6.5
|
||||
- modified postgresql.Driver class to initiate the correct driver when
|
||||
used under a 1.1 or 1.2+ JVM.
|
||||
- postgresql.Connection and postgresql.jdbc2.Connection now extends the
|
||||
new class postgresql.ConnectionStub, which allows us to dynamically
|
||||
open the JDBC1 or JDBC2 drivers.
|
||||
- enabled compilation of the driver under Win32 when using the Make
|
||||
from the CygWin package (Cygnus B20.1 was used).
|
||||
- To make future development easier (now we have 2 specifications to
|
||||
work with) the following classes have moved from the postgresql to
|
||||
the postgresql.jdbc1 package:
|
||||
CallableStatement Connection
|
||||
DatabaseMetaData PreparedStatement
|
||||
ResultSet ResultSetMetaData
|
||||
Statement
|
||||
Some of these classes have common code that is not dependent on
|
||||
either JDBC specification. These common code are still in the
|
||||
postgresql package.
|
||||
Ie: postgresql.jdbc1.Connection extends postgresql.Connection
|
||||
and postgresql.jdbc2.Connection extends postgresql.Connection
|
||||
|
||||
Web Oct 7 22:00:00 BST 1998
|
||||
- removed syncronised from Connection.ExecSQL(). See next entry.
|
||||
- added new syncronised locking in the Connection.ExecSQL() and
|
||||
FastPath.fastpath() methods. They now lock against the PG_Steam
|
||||
object for the connection, which now provides full Thread Safety.
|
||||
- Reposted ChangeLog as it's missing from CVS.
|
||||
|
||||
Modifications done since 6.3.2 was released and Sun Aug 30 11:33:06 BST 1998
|
||||
|
||||
- Fixed PreparedStatement.setObject as it didn't handle shorts
|
||||
- ResultSet.getDate() now handles null dates (returns null ratrher
|
||||
than a NullPointerException)
|
||||
- ResultSetMetaData.getPrecision() new returns 0 for VARCHAR
|
||||
- Field now caches the typename->oid in a Hashtable to speed things
|
||||
up. It removes the need for some unnecessary queries to the backend.
|
||||
- PreparedStatement.toString() now returns the SQL statement that it
|
||||
will send to the backend. Before it did nothing.
|
||||
- DatabaseMetaData.getTypeInfo() now does something.
|
||||
- Connection now throws an exception if either of the user or password
|
||||
properties are missing, as they are required for JDBC to work.
|
||||
This occasionally occurs when the client uses the properties version
|
||||
of getConnection(), and is a common question on the email lists.
|
||||
|
||||
Sun Aug 30 11:33:06 BST 1998
|
||||
|
||||
- Created ChangeLog file, and entered stuff done since 6.3.2 and today
|
||||
- Change version number to 6.4 in Driver.java
|
||||
- Added fix to DatabaseMetaData.getTables() submitted by
|
||||
Stefan Andreasen <stefan@linux.kapow.dk>
|
||||
- Added fix to DatabaseMetaData.getColumns() to handle patterns
|
||||
submitted by Stefan Andreasen <stefan@linux.kapow.dk>
|
||||
- Set TcpNoDelay on the connection, as this gives us a 10x speed
|
||||
improvement on FreeBSD (caused by a bug in their TCP Stack). They
|
||||
should fix the bug before 6.4 is released, but will keep this
|
||||
in here unless it causes more problems.
|
||||
Submitted by Jason Venner <jason@idiom.com>
|
||||
- Removed a duplicate definition of fieldCache
|
||||
- Added a more meaningful message when the connection is refused. It
|
||||
now says:
|
||||
Connection refused. Check that the hostname and port is
|
||||
correct, and that the postmaster is running with the -i flag,
|
||||
which enables TCP/IP networking.
|
||||
- Removed kludge in PreparedStatement.setDate() that acted as a
|
||||
temporary fix to a bug in SimpleDateFormat, as it broke date
|
||||
handling in JDK 1.1.6.
|
||||
- Modified PG_Stream and Connection, so that outbound data is now
|
||||
buffered. This should give us a speed improvement, and reduce the
|
||||
ammount of network packets generated.
|
||||
- Removed duplicate code and optimised PG_Stream.
|
||||
- PG_Stream now returns a more meaningful message when the connection
|
||||
is broken by the backend. It now returns:
|
||||
The backend has broken the connection. Possibly the action you
|
||||
have attempted has caused it to close.
|
||||
- Removed obsolete code from Connection.
|
||||
- The error message returned when the authentication scheme is unknown
|
||||
has been extended. It now reads:
|
||||
Authentication type ### not supported. Check that you have
|
||||
configured the pg_hba.conf file to include the client's IP
|
||||
address or Subnet, and is using a supported authentication
|
||||
scheme.
|
||||
- Connection.getMetaData() now caches the instance returned, so
|
||||
multiple calls will return the same instance.
|
||||
- Created a test application that tests the DatabaseMetaData and
|
||||
ResultSetMetaData classes.
|
||||
- Replaced getString(#).getBytes() with getBytes(#) which should speed
|
||||
things up, and reduce memory useage.
|
||||
- Optimised DatabaseMetaData.getProcedures(), and implemented patterns
|
||||
- Fixed NullPointerExceptions thrown when a field is null (Internal
|
||||
to the driver, not caused by results from the backend.
|
||||
DatabaseMetaData.getProcedures() is an example of a method that
|
||||
causes this):
|
||||
- ResultSetMetaData.getColumnName() now returns field# where
|
||||
# is the column name.
|
||||
- ResultSet.getObject() fixed
|
||||
- Fixed bug in psql example that was affected by null fields
|
||||
- DatabaseMetaData.getTables()
|
||||
- DatabaseMetaData.getPrimaryKeys() ran a query with an ambiguous field
|
||||
fixed.
|
||||
- getTypeInfo() optimised to increase speed and reduce memory useage
|
||||
- ResultSetMetaData.isCurrency() optimised and is now smaller.
|
||||
- Removed unnecessary code fromResultSetMetaData.getCatalogName()
|
||||
and getSchemaName().
|
||||
- Created new class postgresql.util.PGmoney to map the money type
|
||||
- Created new class postgresql.geometric.PGline to map the line type
|
||||
|
@ -1,199 +0,0 @@
|
||||
This short document is provided to help programmers through the internals of
|
||||
the PostgreSQL JDBC driver.
|
||||
|
||||
Last update: January 17 2001 peter@retep.org.uk
|
||||
|
||||
build.xml
|
||||
---------
|
||||
|
||||
As of 7.1, we now use the ANT build tool to build the driver. ANT is part of
|
||||
the Apache/Jakarta project, and provides far superior build capabilities. You
|
||||
can find ANT from http://jakarta.apache.org/ant/index.html and being pure java
|
||||
it will run on any java platform.
|
||||
|
||||
So far I've tested it under JDK1.2.x & JDK1.3 (both Linux & NT) but not yet with
|
||||
JDK1.1.8. Because of the latter the Makefile still works for now, but should be
|
||||
gone for 7.2.
|
||||
|
||||
Anyhow, to build, simply type ant and the .jar file will be created and put into
|
||||
the jars directory.
|
||||
|
||||
Tip: If you run ant from the sources root directory (ie: where the configure
|
||||
script is located) you will find another build.xml file. It is advised to run
|
||||
ant from that directory as it will then compile some auxilary Java/JDBC
|
||||
utilities that are located under the /contrib/retep directory.
|
||||
|
||||
Makefile
|
||||
--------
|
||||
|
||||
Prior to 7.1, all compilation must be done by using Make. This is because there
|
||||
are three versions of the driver, one for JDBC1 (for JDK 1.1.x) and the others
|
||||
for JDBC2 (for JDK 1.2 or later, one standard and one enterprise).
|
||||
|
||||
As of 7.1, ANT is the build tool of choice. Just compare Makefile and build.xml
|
||||
to see why! Make just isn't suited to Java.
|
||||
|
||||
Building with just the JDK
|
||||
--------------------------
|
||||
|
||||
This is not advised, simply because you have to make sure you include the
|
||||
correct classes, and the fact that org.postgresql.Driver is built on the fly.
|
||||
Also, javac won't pick up all the classes because some (org.postgresql.geometric
|
||||
for example) are loaded dynamically.
|
||||
|
||||
org/postgresql/Driver.java.in
|
||||
-----------------------------
|
||||
|
||||
Because there are three versions of the driver, the org.postgresql.Driver class
|
||||
is built dynamically. To build correctly ANT copies the Driver.java.in file to
|
||||
Driver.java replacing certain values according to the required driver.
|
||||
|
||||
The replaced values are of the format %VALUE%, ie: %MAJORVERSION% is replaced
|
||||
with 7 in the 7.1 version of the driver.
|
||||
|
||||
postgresql.jar
|
||||
--------------
|
||||
|
||||
This jar file is produced by ANT, and contains the driver for your JDK platform.
|
||||
|
||||
If you downloaded a precompiled binary from the web, you may find that the
|
||||
jar file will be named differently. These are identical to this file but are
|
||||
named according to the backend and jdk versions.
|
||||
|
||||
The naming convention is of the form: jdbc-#.#-#.##.jar
|
||||
|
||||
ie: for 7.1
|
||||
jdbc-7.1-1.1.jar JDBC Driver for JDK1.1.8
|
||||
jdbc-7.1-1.2.jar JDBC Driver for JDK1.2 & JDK1.3
|
||||
jdbc-7.1-1.2ent.jar JDBC Driver for JDK1.2 & JDK1.3 Enterprise Editions
|
||||
|
||||
If in the future there are any 1.3 specific classes then there will be two new
|
||||
jar files.
|
||||
|
||||
Note: All the precompiled binaries are built under Linux.
|
||||
|
||||
jdbc.jpx
|
||||
--------
|
||||
|
||||
This is a JBuilder4 project file. It's here to allow JBuilder to be used to
|
||||
develop the driver. Mainly for it's Editor's features like syntax checking and
|
||||
auto-completion etc.
|
||||
|
||||
IMPORTANT: You CAN NOT build the driver from within JBuilder. You must use ANT.
|
||||
This is because of the three versions of the JDK. If you try to use
|
||||
JBuilder, it will try to build everything, and it will just not work.
|
||||
|
||||
Importing packages
|
||||
------------------
|
||||
|
||||
In user code, you may have to import one or more packages, if and only if you
|
||||
are using the non jdbc extensions (like FastPath, or LargeObject).
|
||||
|
||||
DO NOT import the postgresql, postgresql.jdbc1 or postgresql.jdbc2 packages!
|
||||
|
||||
Internally, some classes will import the packages when there is a link between
|
||||
them and the other packages. However, the above rule still applies. It's there
|
||||
because Javac becomes confused between the different places that similar class
|
||||
names are present.
|
||||
|
||||
However, there are places where they need to refer to classes in the postgresql
|
||||
package. In this case, import the individual classes, and not the entire
|
||||
package.
|
||||
|
||||
ie: import postgresql.Field
|
||||
|
||||
NOT import postgresql.*
|
||||
|
||||
Package Layout
|
||||
--------------
|
||||
|
||||
The driver is split into several packages:
|
||||
|
||||
org.postgresql core classes that can be accessed by user code
|
||||
org.postgresql.core core classes not normally used externally
|
||||
org.postgresql.jdbc1 classes used only in implementing JDBC 1
|
||||
org.postgresql.jdbc2 classes used only in implementing JDBC 2
|
||||
org.postgresql.fastpath FastPath to backend functions
|
||||
org.postgresql.geometric 2D Geometric types mapped to Java Objects
|
||||
org.postgresql.largeobject Low level Large Object access
|
||||
org.postgresql.util Utility classes
|
||||
|
||||
|
||||
Package org.postgresql
|
||||
------------------
|
||||
|
||||
This package holds the core classes.
|
||||
|
||||
Driver registers the driver when it's loaded, and determines which
|
||||
Connection class (in jdbc1 or jdbc2 packages) to use when
|
||||
connecting to a database.
|
||||
|
||||
Field Used internally to represent a Field
|
||||
PG_Stream Used internally to manage the network stream.
|
||||
PostgresqlDataSource
|
||||
Exists in the Java2 Enterprise edition driver only and is the
|
||||
enterprise equivalent to Driver
|
||||
|
||||
These classes contains common code that is not dependent to the
|
||||
two JDBC specifications.
|
||||
|
||||
Connection Common code used in Connections, mainly Network Protocol stuff.
|
||||
ResultSet Common code used in ResultSet's
|
||||
|
||||
Package org.postgresql.core
|
||||
-----------------------
|
||||
|
||||
New in 7.1, this is where core classes (common to all versions) will exist. Any
|
||||
new class that would have gone into org.postgresql must go in here instead.
|
||||
|
||||
BytePoolDim1 Handles a pool of byte[] arrays.
|
||||
BytePoolDim2 Handles a pool of byte[][] arrays
|
||||
MemoryPool Interface for managing MemoryPools. Not used (yet).
|
||||
ObjectPool Interface for an Object Pool
|
||||
SimpleObjectPool Class that implements ObjectPool and used by BytePoolDim#
|
||||
Encoding Character encoding logic, mainly for Connection and PG_Stream.
|
||||
|
||||
Package org.postgresql.fastpath
|
||||
---------------------------
|
||||
|
||||
Fastpath Handles executing a function on the PostgreSQL Backend
|
||||
FastpathArg Defines an argument for a function call
|
||||
|
||||
Package org.postgresql.geometric
|
||||
----------------------------
|
||||
|
||||
PGbox Maps to postgresql type box
|
||||
PGcircle Maps to postgresql type circle
|
||||
PGline Maps to postgresql type line
|
||||
PGlseg Maps to postgresql type lseg
|
||||
PGpath Maps to postgresql type path
|
||||
PGpoint Maps to postgresql type point
|
||||
PGpolygon Maps to postgresql type polygon
|
||||
|
||||
Package org.postgresql.jdbc1
|
||||
------------------------
|
||||
|
||||
The classes in this package handle the JDBC 1 Specification, for JDK 1.1.x
|
||||
All interfaces in the java.sql package are present here.
|
||||
|
||||
Package org.postgresql.jdbc2
|
||||
------------------------
|
||||
|
||||
The classes in this package handle the JDBC 2 Specification, for JDK 1.2
|
||||
All interfaces in the java.sql, and javax.sql packages are present here.
|
||||
|
||||
Package org.postgresql.largeobject
|
||||
------------------------------
|
||||
|
||||
LargeObject Represents an open LargeObject
|
||||
LargeObjectManager Handles the opening and deleting of LargeObjects
|
||||
|
||||
Package org.postgresql.util
|
||||
-----------------------
|
||||
|
||||
PGmoney Maps to postgresql type money
|
||||
PGobject Used to represent postgresql types that have no Java equivalent
|
||||
PGtokenizer Helper class for the geometric types
|
||||
Serialize Used to serialise Java objects into tabes, rather than Blobs
|
||||
UnixCrypt Used to handle crypt authentication
|
||||
|
@ -1,13 +1,10 @@
|
||||
This is a simple readme describing how to compile and use the jdbc driver.
|
||||
|
||||
This file was amended on January 17 2001 to reflect the changes made in the 7.1
|
||||
release.
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
This isn't a guide on how to use JDBC - for that refer to Javasoft's web site:
|
||||
This isn't a guide on how to use JDBC - for that refer to sun's web site:
|
||||
|
||||
http://www.javasoft.com/
|
||||
http://java.sun.com/
|
||||
|
||||
For problems with this driver, then refer to the postgres-jdbc email
|
||||
list:
|
||||
@ -17,10 +14,6 @@ list:
|
||||
The Driver's home page is:
|
||||
|
||||
http://jdbc.postgresql.org/
|
||||
or http://www.retep.org.uk/postgresql/
|
||||
|
||||
NB: They are both the same physical directory so both will always be in sync
|
||||
(unless the laws of physics break down ;-) )
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
@ -39,20 +32,10 @@ the directory PREFIX/share/java.
|
||||
|
||||
That jar file will contain the driver for _your_ version of the JDK.
|
||||
|
||||
Note: As of 7.1, you can build from the top-level directory or from
|
||||
src/interfaces/jdbc.
|
||||
|
||||
REMEMBER: Once you have compiled the driver, it will work on ALL platforms
|
||||
that support that version of the API. You don't need to build it for each
|
||||
platform.
|
||||
|
||||
That means you don't have to compile it on every platform. Believe me, I
|
||||
still hear from people who ask me "I've compiled it ok under Solaris, but it
|
||||
won't compile under Linux" - there's no difference.
|
||||
|
||||
Don't try to run javac directly. Don't try to run ant directly. Neither
|
||||
will work.
|
||||
|
||||
Possible problems
|
||||
|
||||
You may see a message similar to:
|
||||
@ -63,11 +46,8 @@ postgresql/Driver.java:87: interface java.sql.Connection is an interface. It can
|
||||
This is caused by not having the current directory in your CLASSPATH. Under
|
||||
Linux/Solaris, unset the CLASSPATH environment variable, and rerun ant.
|
||||
|
||||
If you are still having problems, I keep a copy of the driver (for different
|
||||
versions of the backend) on my web site http://www.retep.org.uk/postgres/
|
||||
or http://jdbc.postgresql.org/
|
||||
|
||||
More details are in the Implementation file src/interfaces/jdbc/Implementation
|
||||
If you are still having problems, prebuilt versions of the driver
|
||||
are available at http://jdbc.postgresql.org/
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
@ -79,9 +59,6 @@ ie: under LINUX/SOLARIS (the example here is my linux box):
|
||||
|
||||
export CLASSPATH=.:/usr/local/pgsql/share/java/postgresql.jar
|
||||
|
||||
Please don't be tempted to extract the files from the .jar file. There are a
|
||||
lot of files in there, and you may break the Exception handling.
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
USING THE DRIVER
|
||||
@ -177,10 +154,6 @@ For example:
|
||||
|
||||
Large Object API
|
||||
|
||||
Most of the time, you can use the getBytes()/setBytes() methods to read and
|
||||
write small Large Objects. However, PostgreSQL's own internal api's are
|
||||
available. These allow you to access the object as if it was a file.
|
||||
|
||||
The first thing you need to do is to open the LargeObjectManager. This class
|
||||
handles the opening of existing objects, and creating new ones. To do this,
|
||||
you use the following line of code:
|
||||
@ -227,28 +200,6 @@ SQLException to be thrown.
|
||||
|
||||
------------------
|
||||
|
||||
Date datatype:
|
||||
|
||||
The driver now issues the "show datestyle;" query when it first connects, so
|
||||
any call to ResultSet.getDate() how returns the correct date.
|
||||
|
||||
One caveat though: if you change the datestyle from within JDBC, you must also
|
||||
issue the "show datestyle" query. Without this, the driver will not know of
|
||||
the change.
|
||||
|
||||
ie:
|
||||
Statement s = db.createStatement();
|
||||
...
|
||||
s.executeUpdate("set datestyle='european'");
|
||||
s.executeUpdate("show datestyle");
|
||||
..
|
||||
s.close();
|
||||
|
||||
Please note: This may change later, so that the driver uses the same format
|
||||
internally (similar to how the ODBC driver works).
|
||||
|
||||
------------------
|
||||
|
||||
JDBC supports database specific data types using the getObject() call. The
|
||||
following types have their own Java equivalents supplied by the driver:
|
||||
|
||||
@ -269,9 +220,3 @@ syntax for writing these to the database.
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
Peter T Mount, December 29 1998
|
||||
home email: peter@retep.org.uk http://www.retep.org.uk
|
||||
work email: petermount@it.maidstone.gov.uk or peter@taer.maidstone.gov.uk
|
||||
|
||||
PS: Please use the home email whenever possible. If you must contact me at work
|
||||
then please cc my home one at the same time.
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
This file now requires Ant 1.4.1. 2002-04-18
|
||||
|
||||
$Header: /cvsroot/pgsql/src/interfaces/jdbc/Attic/build.xml,v 1.29 2002/09/25 07:01:30 barry Exp $
|
||||
$Header: /cvsroot/pgsql/src/interfaces/jdbc/Attic/build.xml,v 1.30 2002/10/20 00:10:55 barry Exp $
|
||||
|
||||
-->
|
||||
|
||||
@ -156,10 +156,14 @@
|
||||
<filter token="JDBCCONNECTCLASS" value="${connectclass}" />
|
||||
<filter token="DEF_PGPORT" value="${def_pgport}" />
|
||||
|
||||
<fail unless="major" message="'major' undefined. Please follow the directions in README."/>
|
||||
<fail unless="minor" message="'minor' undefined. Please follow the directions in README."/>
|
||||
|
||||
<!-- Put a check for the current version here -->
|
||||
|
||||
<!-- now copy and filter the file -->
|
||||
<copy file="${package}/Driver.java.in"
|
||||
overwrite="true"
|
||||
tofile="${package}/Driver.java"
|
||||
filtering="yes" />
|
||||
|
||||
|
@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--JBuilder XML Project-->
|
||||
<project>
|
||||
<property category="runtime.0" name="RunnableType" value="com.borland.jbuilder.runtime.ApplicationRunner" />
|
||||
<property category="runtime.0" name="jsprunner.docbase" value="." />
|
||||
<property category="runtime.0" name="jsprunner.jspfile" value="E%|/docs/java/xml/example6" />
|
||||
<property category="sys" name="BackupPath" value="bak" />
|
||||
<property category="sys" name="CheckStable" value="1" />
|
||||
<property category="sys" name="Company" value="" />
|
||||
<property category="sys" name="Copyright" value="Copyright (c) 2001" />
|
||||
<property category="sys" name="DefaultPackage" value="org.postgresql.core" />
|
||||
<property category="sys" name="Description" value="" />
|
||||
<property category="sys" name="DocPath" value="doc" />
|
||||
<property category="sys" name="ExcludeClassEnabled" value="0" />
|
||||
<property category="sys" name="JDK" value="java 1.3.0-C" />
|
||||
<property category="sys" name="LastTag" value="0" />
|
||||
<property category="sys" name="Libraries" value="JUnit" />
|
||||
<property category="sys" name="MakeStable" value="0" />
|
||||
<property category="sys" name="OutPath" value="build" />
|
||||
<property category="sys" name="SourcePath" value="." />
|
||||
<property category="sys" name="Title" value="" />
|
||||
<property category="sys" name="Version" value="1.0" />
|
||||
<property category="sys" name="WorkingDirectory" value="." />
|
||||
<node type="Package" name="org.postgresql.core" />
|
||||
<file path="build.xml" />
|
||||
<file path="CHANGELOG" />
|
||||
<file path="Implementation" />
|
||||
<file path="README" />
|
||||
<file path="org/postgresql/jdbc2/UpdateableResultSet.java" />
|
||||
</project>
|
Loading…
x
Reference in New Issue
Block a user