From: Anders Bengtsson <anders@lecando.com>
To: pgsql-interfaces@postgresql.org
Subject: JDBC getDatabaseProductVersion() patch
Date: Wed, 13 Sep 2000 21:28:14 +0200
Message-ID: <39BFD54E.48D0E627@lecando.com> (raw)
Hello,
I don't know if this list is the correct way to contribute patches, but
here we go:
I've implemented getDatabaseProductVersion() for DatabaseMetaData so
that it retreives tha version number from the database server, instead
of using a hard coded constant in the driver.
Attached are patches for jdbc1 and jdbc2.
I've only been able to test the jdbc2 driver, but I hope someone can
check that the jdbc1 version works.
(By the way, has anyone tried to merge the identical parts of the jdbc1
and jdbc2 code?).
/Anders
_____________________________________________________________________
A n d e r s B e n g t s s o n anders@lecando.com
Stockholm, Sweden
Attachments:download all (2 files, .tar.gz)productversion1.patch (text/plain, 1.3K) download
diff -u -r1.6 DatabaseMetaData.java
--- src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java 2000/09/12 18:56:03 1.6+++ src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java 2000/09/13 19:14:53@@ -167,19 +167,23 @@
/**
* What is the version of this database product.
*
- * <p>Note that PostgreSQL 6.3 has a system catalog called pg_version - - * however, select * from pg_version on any database retrieves- * no rows.- *- * <p>For now, we will return the version 6.3 (in the hope that we change- * this driver as often as we change the database)- *
* @return the database version
* @exception SQLException if a database access error occurs
*/
public String getDatabaseProductVersion() throws SQLException
{
- return ("7.0.2");+ /* The function "version()" has had the format "PostgreSQL X.Y.Z on ..."+ * since at least 6.5.x, so this should be a safe assumption.+ */++ java.sql.ResultSet resultSet = connection.ExecSQL("select version()");+ resultSet.next();++ StringTokenizer versionParts = new StringTokenizer(resultSet.getString(1));+ versionParts.nextToken(); /* "PostgreSQL" */+ String versionNumber = versionParts.nextToken(); /* "X.Y.Z" */++ return versionNumber;
}
/**
productversion2.patch (text/plain, 1.3K) download
diff -u -r1.6 DatabaseMetaData.java
--- src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java 2000/09/12 18:56:04 1.6+++ src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java 2000/09/13 19:15:06@@ -167,19 +167,23 @@
/**
* What is the version of this database product.
*
- * <p>Note that PostgreSQL 6.3 has a system catalog called pg_version - - * however, select * from pg_version on any database retrieves- * no rows.- *- * <p>For now, we will return the version 6.3 (in the hope that we change- * this driver as often as we change the database)- *
* @return the database version
* @exception SQLException if a database access error occurs
*/
public String getDatabaseProductVersion() throws SQLException
{
- return ("7.0.2");+ /* The function "version()" has had the format "PostgreSQL X.Y.Z on ..."+ * since at least 6.5.x, so this should be a safe assumption.+ */++ java.sql.ResultSet resultSet = connection.ExecSQL("select version()");+ resultSet.next();++ StringTokenizer versionParts = new StringTokenizer(resultSet.getString(1));+ versionParts.nextToken(); /* "PostgreSQL" */+ String versionNumber = versionParts.nextToken(); /* "X.Y.Z" */++ return versionNumber;
}
/**
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-interfaces@postgresql.org
Cc: anders@lecando.com
Subject: Re: JDBC getDatabaseProductVersion() patch
In-Reply-To: <39BFD54E.48D0E627@lecando.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox