aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/jdbc/README_6.3
blob: 797d3ff99b7739a9f947abaa07114e4b369b4bb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
Ok, here's the JDBC patch.

The jdbc6.3.tar.gz file that I've uploaded ftp.postgresql.org contains the
following files:

README_6.3 This message
blob.patch The patch to src/backend/tcop/fastpath.c fixing large objects
jdbc.tar   The entire jdbc driver

I've put the entire driver here, rather than a patch, because its become
too complicated to do one this time. Files have been moved, two files
removed because they were obsolete, and there are a lot of new files.

Heres what the patch does:

* Memory overflow problem in the backend causing large objects to fail in
  both libpq & jdbc (causing the backend to crash with a Segmentation
  Violation)
* Problem with equals() method on the geometric support classes if the
  class being checked wasn't the same class
* Fixed output of PGpath and PGpolygon support classes (missing , separator)
* Optimised the geometric support classes
* HTMLised the inline documentation, so the output of javadoc is easier
  to read (mainly paragraphs)
* Removed obsolete class PGlobj (it never worked, and has been replaced
  to read (mainly paragraphs)
* Removed obsolete class PGlobj (it never worked, and has been replaced
  by the postgresql.largeobject package)
* Removed obsolete example JDBC_Test.java (replaced by new examples)
* Added < and > to nesting in PGtokenizer.
* Added fastpath support as a new package
* Added large object support as a new package
* Added ability of user code to handle custom storage types.
* Added new example testing the importing and exporting of a large object
* Added example application showing how to store and display images stored
  as large objects
* Added example implementing part of psql client. This shows how to find out
  what tables/columns are in a database (not yet complete)
* ResultSet.getBytes() now returns large object if field is an oid
* ResultSet.getString() now doesn't call getBytes() as this now would
  cause an infinite loop because of large object support in getBytes()
* PreparedStatement.setBytes() now create a large object, and store its
  oid into the column
* Reworked date style handling to make it easier to support new styles
* Added german and ISO styles, now all styles supported by postgresql
  are now supported by the driver
* Fixed DatabaseMetaData.getTables()
* DatabaseMetaData.getTableTypes() returns our supported types.
* Fixed DatabaseMetaData.getColumns()

These three are required for Borland's JBuilder to work. For now they
return an empty result, as I'm not sure yet on how to get the
required results.
* DatabaseMetaData.getBestRowIdentifier()
* DatabaseMetaData.getProcedureColumns()
* DatabaseMetaData.getIndexInfo()

Finally, one change that is incompatible with earlier versions of the
driver. This change only affects any client code that uses the geometric
classes (eg: PGpoint) or the getObject()/setObject() methods.

Because of a problem with javac, if user code includes the line:

import postgresql.*;

then javac will fail, saying that interfaces cannot be instanciated.

To fix this, I've moved these classes into a new sub package,
postgresql.geometric and the PG_Object (renamed PGobject), and PGtokenizer
to postgresql.util.So the above line would become:

import postgresql.geometric.*;

Anyhow, I'm going to start writing some proper documentation for the
driver. For now, there is some available temporarily at:

        http://www.demon.co.uk/finder/postgres/jdbc/packages.html