aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java4
-rw-r--r--src/interfaces/jdbc/org/postgresql/test/jdbc2/ResultSetTest.java30
2 files changed, 32 insertions, 2 deletions
diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java
index 60b57083645..5048f015328 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java
@@ -25,7 +25,7 @@ import java.sql.Timestamp;
import java.sql.Types;
import java.util.Vector;
-/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1Statement.java,v 1.32 2003/08/24 22:10:09 barry Exp $
+/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1Statement.java,v 1.33 2003/08/26 06:50:39 barry Exp $
* This class defines methods of the jdbc1 specification. This class is
* extended by org.postgresql.jdbc2.AbstractJdbc2Statement which adds the jdbc2
* methods. The real Statement class (for jdbc1) is org.postgresql.jdbc1.Jdbc1Statement
@@ -87,7 +87,7 @@ public abstract class AbstractJdbc1Statement implements BaseStatement
// returnTypeSet is true when a proper call to registerOutParameter has been made
private boolean returnTypeSet;
protected Object callResult;
- protected static int maxfieldSize = 0;
+ protected int maxfieldSize = 0;
public abstract BaseResultSet createResultSet(Field[] fields, Vector tuples, String status, int updateCount, long insertOID, boolean binaryCursor) throws SQLException;
diff --git a/src/interfaces/jdbc/org/postgresql/test/jdbc2/ResultSetTest.java b/src/interfaces/jdbc/org/postgresql/test/jdbc2/ResultSetTest.java
index 617034f76bf..c8b34f2c67a 100644
--- a/src/interfaces/jdbc/org/postgresql/test/jdbc2/ResultSetTest.java
+++ b/src/interfaces/jdbc/org/postgresql/test/jdbc2/ResultSetTest.java
@@ -4,6 +4,7 @@ import org.postgresql.test.TestUtil;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
+import java.sql.SQLException;
import junit.framework.TestCase;
@@ -32,6 +33,12 @@ public class ResultSetTest extends TestCase
stmt.executeUpdate("INSERT INTO testrs VALUES (4)");
stmt.executeUpdate("INSERT INTO testrs VALUES (6)");
stmt.executeUpdate("INSERT INTO testrs VALUES (9)");
+
+ TestUtil.createTable(con, "teststring", "a text");
+ stmt.executeUpdate("INSERT INTO teststring VALUES ('12345')");
+
+ TestUtil.createTable(con, "testint", "a int");
+ stmt.executeUpdate("INSERT INTO testint VALUES (12345)");
stmt.close();
}
@@ -39,6 +46,8 @@ public class ResultSetTest extends TestCase
protected void tearDown() throws Exception
{
TestUtil.dropTable(con, "testrs");
+ TestUtil.dropTable(con, "teststring");
+ TestUtil.dropTable(con, "testint");
TestUtil.closeDB(con);
}
@@ -85,4 +94,25 @@ public class ResultSetTest extends TestCase
}
}
+
+ public void testMaxFieldSize() throws Exception
+ {
+ Statement stmt = con.createStatement();
+ stmt.setMaxFieldSize(2);
+
+ ResultSet rs = stmt.executeQuery("select * from testint");
+
+ //max should not apply to the following since per the spec
+ //it should apply only to binary and char/varchar columns
+ rs.next();
+ assertEquals(rs.getString(1),"12345");
+ assertEquals(new String(rs.getBytes(1)), "12345");
+
+ //max should apply to the following since the column is
+ //a varchar column
+ rs = stmt.executeQuery("select * from teststring");
+ rs.next();
+ assertEquals(rs.getString(1), "12");
+ assertEquals(new String(rs.getBytes(1)), "12");
+ }
}