pgpool2.git / summary / log / commit / refs

commit    2ceed6bab0da6c2f8e694b30f6e9bb35f0986684
Author:   Yugo Nagata <nagata@sraoss.co.jp>
Commit:   Muhammad Usama <m.usama@gmail.com>
Date:     Mon Mar 24 06:54:29 2014 +0000

    Add a test of PrepareThreshold to JDBC regression test


.../tests/005.jdbc/PrepareThresholdTest.java | 74 ++++++++++++++++++++++ src/test/regression/tests/005.jdbc/RunTest.java | 3 + src/test/regression/tests/005.jdbc/expected.txt | 2 + .../tests/005.jdbc/expected/PrepareThreshold | 1 + src/test/regression/tests/005.jdbc/prepare.sql | 11 +++- src/test/regression/tests/005.jdbc/test.sh | 2 +- 6 files changed, 91 insertions(+), 2 deletions(-) diff --git a/src/test/regression/tests/005.jdbc/PrepareThresholdTest.java b/src/test/regression/tests/005.jdbc/PrepareThresholdTest.java new file mode 100644 index 000000000..d12ce5c93 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/PrepareThresholdTest.java @@ -0,0 +1,74 @@ +import java.util.*; +import java.io.*; +import java.sql.*; + +class SqlItem { + public String stmt; + public Object[] params; + SqlItem(String s, Object[] p) { + stmt = s; + params = p; + } +}; + +public class PrepareThresholdTest extends PgpoolTest { + + private SqlItem [] sqllist; + + public void init_sqls() { + java.sql.Timestamp ts = new java.sql.Timestamp(new java.util.Date().getTime()); + sqllist = new SqlItem[] { + new SqlItem("INSERT INTO prepare_threshold(i,t) VALUES(?, ?)", new Object[] {1, ts}), + new SqlItem("INSERT INTO prepare_threshold(i) VALUES(?)", new Object[] {1}), + new SqlItem("INSERT INTO prepare_threshold(d) VALUES(?)", new Object[] {ts}) + }; + } + + public void do_test() throws SQLException { + init_sqls(); + try { + PreparedStatement pstmt = null; + ResultSet rs = null; + try { + connection.setAutoCommit(false); + + for (SqlItem sql: sqllist) { + pstmt = connection.prepareStatement(sql.stmt); + + for (int i = 0; i < 10; i++) { + for (int j = 0; j < sql.params.length; j++) { + Object param = sql.params[j]; + if (param.getClass().getName().equals("java.sql.Timestamp")) { + pstmt.setTimestamp(j+1, (java.sql.Timestamp) param); + } else { + pstmt.setObject(j+1, param); + } + } + + pstmt.executeUpdate(); + } + connection.commit(); + pstmt.close(); + + } + + pstmt = connection.prepareStatement("SELECT count(*) FROM prepare_threshold"); + rs = pstmt.executeQuery(); + rs.next(); + logwriter.println(rs.getInt(1)); + + } finally { + if (rs != null) rs.close(); + if (pstmt != null) pstmt.close(); + } + + } finally { + connection.close(); + logwriter.close(); + } + } + + public String getTestName() { + return "PrepareThreshold"; + } +} diff --git a/src/test/regression/tests/005.jdbc/RunTest.java b/src/test/regression/tests/005.jdbc/RunTest.java index 4b63a7553..1ee4aceee 100644 --- a/src/test/regression/tests/005.jdbc/RunTest.java +++ b/src/test/regression/tests/005.jdbc/RunTest.java @@ -77,6 +77,9 @@ public class RunTest { if (testcase.equals("CreateTempTable")) return new CreateTempTableTest(); + if (testcase.equals("PrepareThreshold")) + return new PrepareThresholdTest(); + /* unknown test case */ return null; } diff --git a/src/test/regression/tests/005.jdbc/expected.txt b/src/test/regression/tests/005.jdbc/expected.txt index bfd6daadc..dfd6204d0 100644 --- a/src/test/regression/tests/005.jdbc/expected.txt +++ b/src/test/regression/tests/005.jdbc/expected.txt @@ -5,3 +5,5 @@ lock: ok select: ok update: ok insert: ok +CreateTempTable: ok +PrepareThreshold: ok diff --git a/src/test/regression/tests/005.jdbc/expected/PrepareThreshold b/src/test/regression/tests/005.jdbc/expected/PrepareThreshold new file mode 100644 index 000000000..64bb6b746 --- /dev/null +++ b/src/test/regression/tests/005.jdbc/expected/PrepareThreshold @@ -0,0 +1 @@ +30 diff --git a/src/test/regression/tests/005.jdbc/prepare.sql b/src/test/regression/tests/005.jdbc/prepare.sql index c5a474be7..dbeecd45e 100644 --- a/src/test/regression/tests/005.jdbc/prepare.sql +++ b/src/test/regression/tests/005.jdbc/prepare.sql @@ -1,4 +1,5 @@ -- autocommit + DROP TABLE autocommit; CREATE TABLE autocommit (a int); INSERT INTO autocommit SELECT generate_series(1, 10); @@ -25,7 +26,7 @@ CREATE TABLE columntest v12 int4, v13 int4, v14 int4, - v15 int4) + v15 int4) WITHOUT OIDS; INSERT INTO columntest VALUES (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); @@ -52,3 +53,11 @@ INSERT INTO up VALUES (2); -- insert DROP TABLE ins; CREATE TABLE ins (a int); + +-- prepareThreshold +DROP TABLE IF EXISTS prepare_threshold; +CREATE TABLE prepare_threshold ( + i int, + d date, + t timestamp with time zone DEFAULT now() +); diff --git a/src/test/regression/tests/005.jdbc/test.sh b/src/test/regression/tests/005.jdbc/test.sh index 708fca183..6cf3f1d9f 100755 --- a/src/test/regression/tests/005.jdbc/test.sh +++ b/src/test/regression/tests/005.jdbc/test.sh @@ -28,7 +28,7 @@ pgpooltest.user=$USER pgpooltest.password= pgpooltest.dbname=test pgpooltest.options= -pgpooltest.tests=autocommit batch column lock select update insert +pgpooltest.tests=autocommit batch column lock select update insert CreateTempTable PrepareThreshold EOF cp ../*.java . cp ../*.sql . [parent: f50f26095edb]