comparison tests/Test_Rtimedate.java @ 0:a5a898f6886c

Copy of MonetDB java directory changeset e6e32756ad31.
author Sjoerd Mullender <sjoerd@acm.org>
date Wed, 21 Sep 2016 09:34:48 +0200 (2016-09-21)
parents
children 04fbf3655452
comparison
equal deleted inserted replaced
-1:000000000000 0:a5a898f6886c
1 /*
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5 *
6 * Copyright 1997 - July 2008 CWI, August 2008 - 2016 MonetDB B.V.
7 */
8
9 import java.sql.*;
10
11 public class Test_Rtimedate {
12 public static void main(String[] args) throws Exception {
13 Class.forName("nl.cwi.monetdb.jdbc.MonetDriver");
14 Connection con = DriverManager.getConnection(args[0]);
15 Statement stmt = con.createStatement();
16 ResultSet rs = null;
17 //DatabaseMetaData dbmd = con.getMetaData();
18
19 con.setAutoCommit(false);
20 // >> false: auto commit should be off now
21 System.out.println("false\t" + con.getAutoCommit());
22
23 try {
24 stmt.executeUpdate("CREATE TABLE table_Test_Rtimedate ( id int, ts timestamp, t time, d date, vc varchar(30), PRIMARY KEY (id) )");
25
26 stmt.executeUpdate("INSERT INTO table_Test_Rtimedate(id, ts) VALUES (1, timestamp '2004-04-24 11:43:53.000')");
27 stmt.executeUpdate("INSERT INTO table_Test_Rtimedate(id, t) VALUES (2, time '11:43:53.000')");
28 stmt.executeUpdate("INSERT INTO table_Test_Rtimedate(id, d) VALUES (3, date '2004-04-24')");
29
30 stmt.executeUpdate("INSERT INTO table_Test_Rtimedate(id, vc) VALUES (4, '2004-04-24 11:43:53.000000')");
31 stmt.executeUpdate("INSERT INTO table_Test_Rtimedate(id, vc) VALUES (5, '11:43:53')");
32 stmt.executeUpdate("INSERT INTO table_Test_Rtimedate(id, vc) VALUES (6, '2004-04-24')");
33
34 rs = stmt.executeQuery("SELECT * FROM table_Test_Rtimedate");
35
36 rs.next();
37 readWarnings(rs.getWarnings());
38 rs.clearWarnings();
39 // the next three should all go well
40 System.out.println("1. " + rs.getString("id") + ", " + rs.getString("ts") + ", " + rs.getTimestamp("ts"));
41 readWarnings(rs.getWarnings());
42 rs.clearWarnings();
43 System.out.println("2. " + rs.getString("id") + ", " + rs.getString("ts") + ", " + rs.getTime("ts"));
44 readWarnings(rs.getWarnings());
45 rs.clearWarnings();
46 System.out.println("3. " + rs.getString("id") + ", " + rs.getString("ts") + ", " + rs.getDate("ts"));
47 readWarnings(rs.getWarnings());
48 rs.clearWarnings();
49 rs.next();
50 readWarnings(rs.getWarnings());
51 rs.clearWarnings();
52 // the next two should go fine
53 System.out.println("4. " + rs.getString("id") + ", " + rs.getString("t") + ", " + rs.getTimestamp("t"));
54 readWarnings(rs.getWarnings());
55 rs.clearWarnings();
56 System.out.println("5. " + rs.getString("id") + ", " + rs.getString("t") + ", " + rs.getTime("t"));
57 readWarnings(rs.getWarnings());
58 rs.clearWarnings();
59 // this one should return 0
60 System.out.println("6. " + rs.getString("id") + ", " + rs.getString("t") + ", " + rs.getDate("t"));
61 readWarnings(rs.getWarnings());
62 rs.clearWarnings();
63 rs.next();
64 readWarnings(rs.getWarnings());
65 rs.clearWarnings();
66 // the next one passes
67 System.out.println("7. " + rs.getString("id") + ", " + rs.getString("d") + ", " + rs.getTimestamp("d"));
68 readWarnings(rs.getWarnings());
69 rs.clearWarnings();
70 // this one should return 0
71 System.out.println("8. " + rs.getString("id") + ", " + rs.getString("d") + ", " + rs.getTime("d"));
72 readWarnings(rs.getWarnings());
73 rs.clearWarnings();
74 // and this one should pass again
75 System.out.println("9. " + rs.getString("id") + ", " + rs.getString("d") + ", " + rs.getDate("d"));
76 readWarnings(rs.getWarnings());
77 rs.clearWarnings();
78
79 // in the tests below a bare string is parsed
80 // everything will fail except the ones commented on
81 rs.next();
82 readWarnings(rs.getWarnings());
83 rs.clearWarnings();
84 // timestamp -> timestamp should go
85 System.out.println("1. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getTimestamp("vc"));
86 readWarnings(rs.getWarnings());
87 rs.clearWarnings();
88 System.out.println("2. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getTime("vc"));
89 readWarnings(rs.getWarnings());
90 rs.clearWarnings();
91 // timestamp -> date goes because the begin is the same
92 System.out.println("3. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getDate("vc"));
93 readWarnings(rs.getWarnings());
94 rs.clearWarnings();
95 rs.next();
96 readWarnings(rs.getWarnings());
97 rs.clearWarnings();
98 System.out.println("4. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getTimestamp("vc"));
99 readWarnings(rs.getWarnings());
100 rs.clearWarnings();
101 // time -> time should fit
102 System.out.println("5. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getTime("vc"));
103 readWarnings(rs.getWarnings());
104 rs.clearWarnings();
105 System.out.println("6. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getDate("vc"));
106 readWarnings(rs.getWarnings());
107 rs.clearWarnings();
108 rs.next();
109 readWarnings(rs.getWarnings());
110 rs.clearWarnings();
111 System.out.println("7. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getTimestamp("vc"));
112 readWarnings(rs.getWarnings());
113 rs.clearWarnings();
114 System.out.println("8. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getTime("vc"));
115 readWarnings(rs.getWarnings());
116 rs.clearWarnings();
117 // date -> date should be fine
118 System.out.println("9. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getDate("vc"));
119 readWarnings(rs.getWarnings());
120 rs.clearWarnings();
121
122 readWarnings(stmt.getWarnings());
123 readWarnings(con.getWarnings());
124 } catch (SQLException e) {
125 System.out.println("failed :( "+ e.getMessage());
126 System.out.println("ABORTING TEST!!!");
127 }
128
129 con.rollback();
130 con.close();
131 }
132
133 private static void readWarnings(SQLWarning w) {
134 while (w != null) {
135 System.out.println("warning: " + w.toString());
136 w = w.getNextWarning();
137 }
138 }
139 }