summaryrefslogtreecommitdiff
path: root/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java')
-rw-r--r--src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java60
1 files changed, 44 insertions, 16 deletions
diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java
index 179e02c46c..99e42b5c92 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java
@@ -1,6 +1,20 @@
+/*-------------------------------------------------------------------------
+ *
+ * AbstractJdbc1ResultSet.java
+ * This class defines methods of the jdbc1 specification. This class is
+ * extended by org.postgresql.jdbc2.AbstractJdbc2ResultSet which adds the
+ * jdbc2 methods. The real ResultSet class (for jdbc1) is
+ * org.postgresql.jdbc1.Jdbc1ResultSet
+ *
+ * Copyright (c) 2003, PostgreSQL Global Development Group
+ *
+ * IDENTIFICATION
+ * $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1ResultSet.java,v 1.11 2003/03/08 06:06:55 barry Exp $
+ *
+ *-------------------------------------------------------------------------
+ */
package org.postgresql.jdbc1;
-
import java.math.BigDecimal;
import java.io.*;
import java.sql.*;
@@ -19,11 +33,6 @@ import org.postgresql.util.PGbytea;
import org.postgresql.util.PGtokenizer;
import org.postgresql.util.PSQLException;
-/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1ResultSet.java,v 1.10 2003/03/07 18:39:44 barry Exp $
- * This class defines methods of the jdbc1 specification. This class is
- * extended by org.postgresql.jdbc2.AbstractJdbc2ResultSet which adds the jdbc2
- * methods. The real ResultSet class (for jdbc1) is org.postgresql.jdbc1.Jdbc1ResultSet
- */
public abstract class AbstractJdbc1ResultSet implements BaseResultSet
{
@@ -47,6 +56,10 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
private StringBuffer sbuf = null;
public byte[][] rowBuffer = null;
+ private SimpleDateFormat m_tsFormat = null;
+ private SimpleDateFormat m_tstzFormat = null;
+ private SimpleDateFormat m_dateFormat = null;
+
public abstract ResultSetMetaData getMetaData() throws SQLException;
public AbstractJdbc1ResultSet(BaseStatement statement,
@@ -1020,7 +1033,7 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
l_sbuf.append(":00");
// we'll use this dateformat string to parse the result.
- df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
+ df = rs.getTimestampTZFormat();
}
else
{
@@ -1029,11 +1042,11 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
if (pgDataType.equals("timestamptz"))
{
l_sbuf.append(" GMT");
- df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
+ df = rs.getTimestampTZFormat();
}
else
{
- df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ df = rs.getTimestampFormat();
}
}
}
@@ -1044,11 +1057,11 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
if (pgDataType.equals("timestamptz"))
{
l_sbuf.append(" GMT");
- df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
+ df = rs.getTimestampTZFormat();
}
else
{
- df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ df = rs.getTimestampFormat();
}
}
else
@@ -1065,7 +1078,7 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
// We must just have a date. This case is
// needed if this method is called on a date
// column
- df = new SimpleDateFormat("yyyy-MM-dd");
+ df = rs.getDateFormat();
}
try
@@ -1075,8 +1088,7 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
Driver.debug("the data after parsing is "
+ l_sbuf.toString() + " with " + nanos + " nanos");
- Timestamp result =
- new Timestamp(df.parse(l_sbuf.toString()).getTime());
+ Timestamp result = new Timestamp(df.parse(l_sbuf.toString()).getTime());
result.setNanos(nanos);
return result;
}
@@ -1087,7 +1099,23 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
}
}
-
-
+ public SimpleDateFormat getTimestampTZFormat() {
+ if (m_tstzFormat == null) {
+ m_tstzFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
+ }
+ return m_tstzFormat;
+ }
+ public SimpleDateFormat getTimestampFormat() {
+ if (m_tsFormat == null) {
+ m_tsFormat = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
+ }
+ return m_tsFormat;
+ }
+ public SimpleDateFormat getDateFormat() {
+ if (m_dateFormat == null) {
+ m_dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ }
+ return m_dateFormat;
+ }
}