aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java52
1 files changed, 51 insertions, 1 deletions
diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java
index d7ba1b273d5..7191f26a0e9 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java
@@ -14,7 +14,7 @@ import org.postgresql.largeobject.LargeObjectManager;
import org.postgresql.util.*;
-/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1Connection.java,v 1.14 2003/02/04 09:20:08 barry Exp $
+/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1Connection.java,v 1.15 2003/02/05 11:12:39 davec Exp $
* This class defines methods of the jdbc1 specification. This class is
* extended by org.postgresql.jdbc2.AbstractJdbc2Connection which adds the jdbc2
* methods. The real Connection class (for jdbc1) is org.postgresql.jdbc1.Jdbc1Connection
@@ -1159,6 +1159,56 @@ public abstract class AbstractJdbc1Connection implements org.postgresql.PGConnec
return dbVersionNumber;
}
+ // Parse a "dirty" integer surrounded by non-numeric characters
+ private static int integerPart(String dirtyString)
+ {
+ int start, end;
+
+ for (start = 0; start < dirtyString.length() && !Character.isDigit(dirtyString.charAt(start)); ++start)
+ ;
+
+ for (end = start; end < dirtyString.length() && Character.isDigit(dirtyString.charAt(end)); ++end)
+ ;
+
+ if (start == end)
+ return 0;
+
+ return Integer.parseInt(dirtyString.substring(start, end));
+ }
+
+ /*
+ * Get server major version
+ */
+ public int getServerMajorVersion()
+ {
+ try
+ {
+ StringTokenizer versionTokens = new StringTokenizer(dbVersionNumber, "."); // aaXbb.ccYdd
+ return integerPart(versionTokens.nextToken()); // return X
+ }
+ catch (NoSuchElementException e)
+ {
+ return 0;
+ }
+ }
+
+ /*
+ * Get server minor version
+ */
+ public int getServerMinorVersion()
+ {
+ try
+ {
+ StringTokenizer versionTokens = new StringTokenizer(dbVersionNumber, "."); // aaXbb.ccYdd
+ versionTokens.nextToken(); // Skip aaXbb
+ return integerPart(versionTokens.nextToken()); // return Y
+ }
+ catch (NoSuchElementException e)
+ {
+ return 0;
+ }
+ }
+
/**
* Is the server we are connected to running at least this version?
* This comparison method will fail whenever a major or minor version