diff 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
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/tests/Test_Rtimedate.java
@@ -0,0 +1,139 @@
+/*
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0.  If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * Copyright 1997 - July 2008 CWI, August 2008 - 2016 MonetDB B.V.
+ */
+
+import java.sql.*;
+
+public class Test_Rtimedate {
+	public static void main(String[] args) throws Exception {
+		Class.forName("nl.cwi.monetdb.jdbc.MonetDriver");
+		Connection con = DriverManager.getConnection(args[0]);
+		Statement stmt = con.createStatement();
+		ResultSet rs = null;
+		//DatabaseMetaData dbmd = con.getMetaData();
+
+		con.setAutoCommit(false);
+		// >> false: auto commit should be off now
+		System.out.println("false\t" + con.getAutoCommit());
+
+		try {
+			stmt.executeUpdate("CREATE TABLE table_Test_Rtimedate ( id int, ts timestamp, t time, d date, vc varchar(30), PRIMARY KEY (id) )");
+
+			stmt.executeUpdate("INSERT INTO table_Test_Rtimedate(id, ts) VALUES (1, timestamp '2004-04-24 11:43:53.000')");
+			stmt.executeUpdate("INSERT INTO table_Test_Rtimedate(id, t) VALUES (2, time '11:43:53.000')");
+			stmt.executeUpdate("INSERT INTO table_Test_Rtimedate(id, d) VALUES (3, date '2004-04-24')");
+
+			stmt.executeUpdate("INSERT INTO table_Test_Rtimedate(id, vc) VALUES (4, '2004-04-24 11:43:53.000000')");
+			stmt.executeUpdate("INSERT INTO table_Test_Rtimedate(id, vc) VALUES (5, '11:43:53')");
+			stmt.executeUpdate("INSERT INTO table_Test_Rtimedate(id, vc) VALUES (6, '2004-04-24')");
+
+			rs = stmt.executeQuery("SELECT * FROM table_Test_Rtimedate");
+
+			rs.next();
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			// the next three should all go well
+			System.out.println("1. " + rs.getString("id") + ", " + rs.getString("ts") + ", " + rs.getTimestamp("ts"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			System.out.println("2. " + rs.getString("id") + ", " + rs.getString("ts") + ", " + rs.getTime("ts"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			System.out.println("3. " + rs.getString("id") + ", " + rs.getString("ts") + ", " + rs.getDate("ts"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			rs.next();
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			// the next two should go fine
+			System.out.println("4. " + rs.getString("id") + ", " + rs.getString("t") + ", " + rs.getTimestamp("t"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			System.out.println("5. " + rs.getString("id") + ", " + rs.getString("t") + ", " + rs.getTime("t"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			// this one should return 0
+			System.out.println("6. " + rs.getString("id") + ", " + rs.getString("t") + ", " + rs.getDate("t"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			rs.next();
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			// the next one passes
+			System.out.println("7. " + rs.getString("id") + ", " + rs.getString("d") + ", " + rs.getTimestamp("d"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			// this one should return 0
+			System.out.println("8. " + rs.getString("id") + ", " + rs.getString("d") + ", " + rs.getTime("d"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			// and this one should pass again
+			System.out.println("9. " + rs.getString("id") + ", " + rs.getString("d") + ", " + rs.getDate("d"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+
+			// in the tests below a bare string is parsed
+			// everything will fail except the ones commented on
+			rs.next();
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			// timestamp -> timestamp should go
+			System.out.println("1. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getTimestamp("vc"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			System.out.println("2. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getTime("vc"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			// timestamp -> date goes because the begin is the same
+			System.out.println("3. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getDate("vc"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			rs.next();
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			System.out.println("4. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getTimestamp("vc"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			// time -> time should fit
+			System.out.println("5. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getTime("vc"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			System.out.println("6. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getDate("vc"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			rs.next();
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			System.out.println("7. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getTimestamp("vc"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			System.out.println("8. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getTime("vc"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+			// date -> date should be fine
+			System.out.println("9. " + rs.getString("id") + ", " + rs.getString("vc") + ", " + rs.getDate("vc"));
+			readWarnings(rs.getWarnings());
+			rs.clearWarnings();
+
+			readWarnings(stmt.getWarnings());
+			readWarnings(con.getWarnings());
+		} catch (SQLException e) {
+			System.out.println("failed :( "+ e.getMessage());
+			System.out.println("ABORTING TEST!!!");
+		}
+
+		con.rollback();
+		con.close();
+	}
+
+	private static void readWarnings(SQLWarning w) {
+		while (w != null) {
+			System.out.println("warning: " + w.toString());
+			w = w.getNextWarning();
+		}
+	}
+}