From: | Rene Pijlman <rpijlman(at)wanadoo(dot)nl> |
---|---|
To: | pgsql-patches(at)postgresql(dot)org |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: JDBC pg_description update needed for CVS tip |
Date: | 2001-08-13 18:01:24 |
Message-ID: | 0f4gnt0o4dmlunkr16kkr7jqs669i14dbh@4ax.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-jdbc pgsql-patches |
Attached is the patch requested by Tom Lane (see below). It
includes two changes in the JDBC driver:
1) When connected to a backend >= 7.2: use obj_description() and
col_description() instead of direct access to pg_description.
2) In DatabaseMetaData.getTables()/getColumns()/getProcedures():
when there is no comment on the object, return null in the
REMARKS column of the ResultSet, instead of the default string
"no remarks".
Change 2 first appeared as a side-effect of change 1, but it is
actually more compliant with the JDBC spec: "String object
containing an explanatory comment on the table/column/procedure,
which may be null". The default string "no remarks" was strictly
speaking incorrect, as it could not be distinguished from a real
user comment "no remarks". So I removed the default string
completely.
Change 2 might break existing code that doesn't follow the JDBC
spec and isn't prepared to handle a null in the REMARKS column
of getTables()/getColumns()/getProcedures.
Patch tested with jdbc2 against both a 7.1 and a CVS tip
backend. I did not have a jdbc1 environment to build and test
with, but since the touched code is identical in jdbc1 and jdbc2
I don't foresee any problems.
Regards,
René Pijlman
On Fri, 10 Aug 2001 16:08:50 -0400, Tom Lane wrote:
>Would some JDBC hacker develop a patch for the following issue? The
>change is just barely large enough that I don't want to commit untested
>code for it --- but not having a Java development environment at hand,
>I can't test the updated code.
>
>The problem is in DatabaseMetaData.java (same code in both jdbc1 and
>jdbc2, looks like). It does direct access to pg_description that isn't
>right anymore. In getTables, instead of
>
> java.sql.ResultSet dr = connection.ExecSQL("select description from pg_description where objoid="+r.getInt(2));
>
>it should be
>
> java.sql.ResultSet dr = connection.ExecSQL("select obj_description("+r.getInt(2)+",'pg_class')");
>
>In getColumns, the change is a little more involved, because
>pg_attribute doesn't have an OID column anymore. The initial query
>can't fetch a.oid, but should fetch a.attrelid instead, and then the
>pg_description query should become
>
> java.sql.ResultSet dr = connection.ExecSQL("select col_description("+r.getInt(1)+","+r.getInt(5)+")");
>
>(col_description takes the table OID and the column's attnum).
>
>The reason this is more than a 3-line change is that it should be done
>either the old way or the new way depending on whether server version >=
>7.2 or not, for backwards-compatibility of the driver.
>
>It's possible there are other similar changes needed that I missed in a
>quick lookover.
>
>So, would some enterprising person fix the JDBC code to work with CVS
>tip, and submit a patch?
>
> thanks, tom lane
>
>---------------------------(end of broadcast)---------------------------
>TIP 3: if posting/reading through Usenet, please send an appropriate
>subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
>message can get through to the mailing list cleanly
Regards,
René Pijlman
Attachment | Content-Type | Size |
---|---|---|
patchComment.diff | text/plain | 11.7 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Neil Padgett | 2001-08-13 18:04:57 | Re: Re: AW: Re: OID wraparound: summary and proposal |
Previous Message | Tom Lane | 2001-08-13 17:58:36 | Re: Re: [PATCHES] Select parser at runtime |
From | Date | Subject | |
---|---|---|---|
Next Message | Rene Pijlman | 2001-08-13 20:08:41 | Which JDK to build jdbc1 driver on Linux? |
Previous Message | Liam Stewart | 2001-08-13 16:07:59 | Re: DatabaseMetaData |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2001-08-13 18:48:17 | Re: bytea_ops |
Previous Message | Tom Lane | 2001-08-13 17:58:36 | Re: Re: [PATCHES] Select parser at runtime |