Mercurial > hg > monetdb-java
annotate tests/Bug_LargeQueries_6571_6693.java @ 350:54137aeb1f92
Update Copyright year.
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Thu, 02 Jan 2020 14:42:27 +0100 (2020-01-02) |
parents | 368078840ddf |
children | 3ee02e94bd1d |
rev | line source |
---|---|
282
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
1 /* |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
2 * This Source Code Form is subject to the terms of the Mozilla Public |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
5 * |
350
54137aeb1f92
Update Copyright year.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
282
diff
changeset
|
6 * Copyright 1997 - July 2008 CWI, August 2008 - 2020 MonetDB B.V. |
282
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
7 */ |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
8 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
9 import java.sql.Connection; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
10 import java.sql.DriverManager; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
11 import java.sql.ResultSet; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
12 import java.sql.Statement; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
13 import java.sql.SQLException; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
14 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
15 public class Bug_LargeQueries_6571_6693 { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
16 final static String tbl_nm = "tbl6693"; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
17 final static String largedata = createLargedata(98765); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
18 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
19 private static String createLargedata(int num) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
20 String repeatValue = "*"; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
21 StringBuilder sb = new StringBuilder(num * repeatValue.length()); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
22 for (int i = 0; i < num; i++) |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
23 sb.append(repeatValue); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
24 String largedata = sb.toString(); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
25 if (largedata.length() <= 8192) |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
26 System.out.println("Length (" + largedata.length() + ") of largedata value is too small! Should be larger than 8192!"); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
27 return largedata; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
28 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
29 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
30 // To execute this test program: start a local MonetDB server (mserver5 process) and next execute command: |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
31 // java -cp monetdb-jdbc-2.29.jar:. Bug_LargeQueries_6571_6693 "jdbc:monetdb://localhost:50000/demo?user=monetdb&password=monetdb" |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
32 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
33 public static void main(String[] args) throws SQLException { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
34 int script_iterations = 10; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
35 String conURL = args.length > 0 ? args[0] : ""; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
36 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
37 if (args.length > 1) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
38 try { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
39 script_iterations = Integer.parseInt(args[1]); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
40 } catch (NumberFormatException nfe) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
41 System.err.println("Cannot convert 2nd argumnent to an integer. Ignoring it."); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
42 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
43 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
44 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
45 try (Connection con = DriverManager.getConnection(conURL)) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
46 try (Statement stmt = con.createStatement()) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
47 // create a test table. |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
48 stmt.executeUpdate("CREATE TABLE IF NOT EXISTS " + tbl_nm + " (attribute CLOB, value CLOB);"); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
49 System.out.print("Created table: " + tbl_nm); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
50 System.out.print(" Inserting rows. "); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
51 String insertCmd = "INSERT INTO " + tbl_nm + " VALUES ('activeset_default_fiets', '" + largedata + "');"; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
52 int ins = stmt.executeUpdate(insertCmd); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
53 ins += stmt.executeUpdate(insertCmd); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
54 ins += stmt.executeUpdate(insertCmd); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
55 System.out.println(ins + " rows inserted"); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
56 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
57 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
58 run_tests(conURL, script_iterations); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
59 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
60 try (Statement stmt = con.createStatement()) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
61 System.out.println("Cleanup TABLE " + tbl_nm); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
62 stmt.executeUpdate("DROP TABLE IF EXISTS " + tbl_nm); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
63 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
64 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
65 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
66 System.out.println("Test completed without hanging"); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
67 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
68 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
69 private static void run_tests(String conURL, int iterations) throws SQLException { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
70 String script = |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
71 "delete from " + tbl_nm + " where attribute='activeset_default_fiets';\n" |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
72 + "insert into " + tbl_nm + " values ('activeset_default_fiets', '" + largedata + "');\n" |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
73 + "insert into " + tbl_nm + " values ('activeset_default_fiets', '" + largedata + "');\n" |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
74 + "insert into " + tbl_nm + " values ('activeset_default_fiets', '" + largedata + "');\n" |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
75 + "select value from " + tbl_nm + " where attribute='activeset_default_fiets';\n"; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
76 System.out.println("Script size is " + script.length()); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
77 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
78 // first try to make the execution hang after many iterations of sending large data queries within one connection |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
79 System.out.println("First test repeat " + iterations + " times"); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
80 try (Connection con = DriverManager.getConnection(conURL)) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
81 System.out.print("Iteration: "); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
82 for (int i = 1; i <= iterations; i++) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
83 System.out.print(i + " "); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
84 try (Statement stmt = con.createStatement()) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
85 process_script(stmt, script, 1, 3, 6); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
86 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
87 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
88 System.out.println(); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
89 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
90 System.out.println("Completed first test"); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
91 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
92 // also try to make the execution hang after many iterations of making connections (each their own socket) and sending large scripts |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
93 System.out.println("Second test repeat " + iterations + " times"); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
94 System.out.print("Iteration: "); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
95 for (int i = 1; i <= iterations; i++) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
96 try (Connection con = DriverManager.getConnection(conURL)) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
97 System.out.print(i + " "); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
98 try (Statement stmt = con.createStatement()) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
99 process_script(stmt, script, 1, 3, 6); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
100 process_script(stmt, script, 1, 3, 6); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
101 process_script(stmt, script, 1, 3, 6); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
102 process_script(stmt, script, 1, 3, 6); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
103 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
104 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
105 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
106 System.out.println(); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
107 System.out.println("Completed second test"); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
108 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
109 // next try to make the execution hang by sending very many queries combined in 1 large script |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
110 final int queries = 8765; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
111 StringBuilder sb = new StringBuilder(queries * 13); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
112 for (int i = 1; i <= queries; i++) |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
113 sb.append(" SELECT ").append(i).append(';'); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
114 script = sb.toString(); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
115 System.out.println("Script size is " + script.length()); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
116 iterations = 3; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
117 System.out.println("Third test repeat " + iterations + " times"); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
118 try (Connection con = DriverManager.getConnection(conURL)) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
119 System.out.print("Iteration: "); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
120 for (int i = 1; i <= iterations; i++) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
121 System.out.print(i + " "); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
122 try (Statement stmt = con.createStatement()) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
123 process_script(stmt, script, queries, queries, 0); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
124 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
125 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
126 System.out.println(); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
127 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
128 System.out.println("Completed third test"); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
129 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
130 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
131 private static void process_script(Statement stmt, String script, |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
132 int expectedResults, int expectedTotalRows, int expectedUpdates) throws SQLException { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
133 int results = 0; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
134 int rows = 0; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
135 int updates = 0; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
136 stmt.execute(script); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
137 do { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
138 ResultSet rs = stmt.getResultSet(); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
139 if (rs != null) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
140 results++; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
141 while(rs.next()) { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
142 String val = rs.getString(1); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
143 rows++; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
144 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
145 rs.close(); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
146 } else { |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
147 int uc = stmt.getUpdateCount(); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
148 if (uc > 0) |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
149 updates += uc; |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
150 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
151 } while (stmt.getMoreResults() || stmt.getUpdateCount() != -1); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
152 |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
153 /* verify nr of processed resultsets and retrieved rows are as expected */ |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
154 if (results != expectedResults) |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
155 System.out.print(results + "!=" + expectedResults + " "); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
156 if (rows != expectedTotalRows) |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
157 System.out.print(rows + "!=" + expectedTotalRows + " "); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
158 if (updates != expectedUpdates) |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
159 System.out.print(updates + "!=" + expectedUpdates + " "); |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
160 } |
368078840ddf
Adding jdbc test for bugs 6517 and 6693 (hanging JDBC-driver problem)
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
diff
changeset
|
161 } |