[prev in list] [next in list] [prev in thread] [next in thread]
List: monetdb-checkins
Subject: MonetDB: default - Merge with Jun2016 branch.
From: Sjoerd Mullender <commits+sjoerd=acm.org () monetdb ! org>
Date: 2016-06-30 15:34:54
Message-ID: hg.7fe98a9c9a99.1467300894.6315528441665844383 () monetdb2 ! cwi-incubator ! nl
[Download RAW message or body]
Changeset: 7fe98a9c9a99 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7fe98a9c9a99
Added Files:
java/tests/Test_PSgetObject.java
sql/jdbc/tests/Tests/Test_PSgetObject.SQL.bat
sql/jdbc/tests/Tests/Test_PSgetObject.SQL.sh
sql/jdbc/tests/Tests/Test_PSgetObject.stable.err
sql/jdbc/tests/Tests/Test_PSgetObject.stable.out
Modified Files:
java/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java
sql/jdbc/tests/Tests/All
sql/test/pg_regress/Tests/point.sql
sql/test/pg_regress/Tests/point.stable.err
sql/test/pg_regress/Tests/point.stable.out
testing/Mtest.py.in
Branch: default
Log Message:
Merge with Jun2016 branch.
diffs (truncated from 517 to 300 lines):
diff --git a/java/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java \
b/java/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java
--- a/java/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java
+++ b/java/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java
@@ -1737,25 +1737,34 @@ public class MonetResultSet extends Mone
public Object getObject(int i, Map<String,Class<?>> map)
throws SQLException
{
- Class<?> type;
-
- if (tlp.values[i - 1] == null) {
- lastColumnRead = i - 1;
- return null;
+ String MonetDBtype = null;
+ try {
+ MonetDBtype = types[i - 1];
+ if (tlp.values[i - 1] == null) {
+ lastColumnRead = i - 1;
+ return null;
+ }
+ } catch (IndexOutOfBoundsException e) {
+ throw new SQLException("No such column " + i, "M1M05");
}
- if (map.containsKey(types[i - 1])) {
- type = map.get(types[i - 1]);
- } else {
- type = getClassForType(getJavaType(types[i - 1]));
+ Class<?> type = null;
+ if (map != null && map.containsKey(MonetDBtype)) {
+ type = map.get(MonetDBtype);
}
-
- if (type == String.class) {
+ if (type == null) {
+ // fallback to the standard Class mappings
+ type = getClassForType(getJavaType(MonetDBtype));
+ }
+
+ if (type == null || type == String.class) {
return getString(i);
} else if (type == BigDecimal.class) {
return getBigDecimal(i);
} else if (type == Boolean.class) {
return Boolean.valueOf(getBoolean(i));
+ } else if (type == Short.class) {
+ return Short.valueOf(getShort(i));
} else if (type == Integer.class) {
return Integer.valueOf(getInt(i));
} else if (type == Long.class) {
@@ -1931,7 +1940,7 @@ public class MonetResultSet extends Mone
return getRowId(colnum);
}
};
- x.readSQL(input, types[i - 1]);
+ x.readSQL(input, MonetDBtype);
return x;
} else {
return getString(i);
diff --git a/java/tests/Test_PSgetObject.java b/java/tests/Test_PSgetObject.java
new file mode 100644
--- /dev/null
+++ b/java/tests/Test_PSgetObject.java
@@ -0,0 +1,105 @@
+/*
+ * 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_PSgetObject {
+ public static void main(String[] args) throws Exception {
+ Class.forName("nl.cwi.monetdb.jdbc.MonetDriver");
+ final Connection con = DriverManager.getConnection(args[0]);
+ con.setAutoCommit(false);
+ // >> false: auto commit was just switched off
+ System.out.println("0. false\t" + con.getAutoCommit());
+
+ final Statement stmt = con.createStatement();
+ try {
+ System.out.print("1. creating test table...");
+ stmt.executeUpdate("CREATE TABLE table_Test_PSgetObject (ti tinyint, si smallint, \
i int, bi bigint)"); + stmt.close();
+ System.out.println(" passed :)");
+ } catch (SQLException e) {
+ System.out.println(e);
+ System.out.println("Creation of test table failed! :(");
+ System.out.println("ABORTING TEST!!!");
+ System.exit(-1);
+ }
+
+ PreparedStatement pstmt;
+ try {
+ System.out.print("2a. inserting 3 records as batch...");
+ pstmt = con.prepareStatement("INSERT INTO table_Test_PSgetObject (ti,si,i,bi) \
VALUES (?,?,?,?)"); + pstmt.setShort(1, (short)1);
+ pstmt.setShort(2, (short)1);
+ pstmt.setInt (3, 1);
+ pstmt.setLong(4, (long)1);
+ pstmt.addBatch();
+
+ pstmt.setShort(1, (short)127);
+ pstmt.setShort(2, (short)12700);
+ pstmt.setInt (3, 1270000);
+ pstmt.setLong(4, (long)127000000);
+ pstmt.addBatch();
+
+ pstmt.setShort(1, (short)-127);
+ pstmt.setShort(2, (short)-12700);
+ pstmt.setInt (3, -1270000);
+ pstmt.setLong(4, (long)-127000000);
+ pstmt.addBatch();
+
+ pstmt.executeBatch();
+ System.out.println(" passed :)");
+
+ System.out.print("2b. closing PreparedStatement...");
+ pstmt.close();
+ System.out.println(" passed :)");
+ } catch (SQLException e) {
+ System.out.println("FAILED to INSERT data:( "+ e.getMessage());
+ while ((e = e.getNextException()) != null)
+ System.out.println("FAILED :( " + e.getMessage());
+ System.out.println("ABORTING TEST!!!");
+ }
+
+ try {
+ System.out.print("3a. selecting records...");
+ pstmt = con.prepareStatement("SELECT ti,si,i,bi FROM table_Test_PSgetObject ORDER \
BY ti,si,i,bi"); + ResultSet rs = pstmt.executeQuery();
+ System.out.println(" passed :)");
+
+ while (rs.next()) {
+ // test fix for https://www.monetdb.org/bugzilla/show_bug.cgi?id=4026
+ Short ti = (Short) rs.getObject(1);
+ Short si = (Short) rs.getObject(2);
+ Integer i = (Integer) rs.getObject(3);
+ Long bi = (Long) rs.getObject(4);
+
+ System.out.println(" Retrieved row data: ti=" + ti + " si=" + si + " i=" + i \
+ " bi=" + bi); + }
+
+ System.out.print("3b. closing ResultSet...");
+ rs.close();
+ System.out.println(" passed :)");
+
+ System.out.print("3c. closing PreparedStatement...");
+ pstmt.close();
+ System.out.println(" passed :)");
+ } catch (SQLException e) {
+ System.out.println("FAILED to RETRIEVE data:( "+ e.getMessage());
+ while ((e = e.getNextException()) != null)
+ System.out.println("FAILED :( " + e.getMessage());
+ System.out.println("ABORTING TEST!!!");
+ }
+
+ System.out.print("4. Rollback changes...");
+ con.rollback();
+ System.out.println(" passed :)");
+
+ System.out.print("5. Close connection...");
+ con.close();
+ System.out.println(" passed :)");
+ }
+}
diff --git a/sql/jdbc/tests/Tests/All b/sql/jdbc/tests/Tests/All
--- a/sql/jdbc/tests/Tests/All
+++ b/sql/jdbc/tests/Tests/All
@@ -13,6 +13,7 @@ HAVE_JDBCTESTS?Test_PSlargebatchval
HAVE_JDBCTESTS?Test_PStimedate
HAVE_JDBCTESTS?Test_PStimezone
HAVE_JDBCTESTS?Test_PStypes
+HAVE_JDBCTESTS?Test_PSgetObject
HAVE_JDBCTESTS?Test_PSmanycon
HAVE_JDBCTESTS?Test_PSmetadata
HAVE_JDBCTESTS?Test_PSsqldata
diff --git a/sql/jdbc/tests/Tests/Test_PSgetObject.SQL.bat \
b/sql/jdbc/tests/Tests/Test_PSgetObject.SQL.bat new file mode 100755
--- /dev/null
+++ b/sql/jdbc/tests/Tests/Test_PSgetObject.SQL.bat
@@ -0,0 +1,1 @@
+@call "%TSTSRCDIR%\Test.SQL.bat" %*
diff --git a/sql/jdbc/tests/Tests/Test_PSgetObject.SQL.sh \
b/sql/jdbc/tests/Tests/Test_PSgetObject.SQL.sh new file mode 100755
--- /dev/null
+++ b/sql/jdbc/tests/Tests/Test_PSgetObject.SQL.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+$TSTSRCDIR/Test.SQL.sh $*
diff --git a/sql/jdbc/tests/Tests/Test_PSgetObject.stable.err \
b/sql/jdbc/tests/Tests/Test_PSgetObject.stable.err new file mode 100644
--- /dev/null
+++ b/sql/jdbc/tests/Tests/Test_PSgetObject.stable.err
@@ -0,0 +1,40 @@
+stderr of test 'Test_PSgetObject` in directory 'sql/jdbc/tests` itself:
+
+
+# 15:26:26 >
+# 15:26:26 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" \
"mapi_open=true" "--set" "mapi_port=39372" "--set" \
"mapi_usock=/var/tmp/mtest-15437/.s.monetdb.39372" "--set" "monet_prompt=" \
"--forcemito" "--dbpath=/export/scratch2/dinther/INSTALL/var/MonetDB/mTests_sql_jdbc_tests" \
"--set" "embedded_r=yes" +# 15:26:26 >
+
+# builtin opt gdk_dbpath = \
/export/scratch2/dinther/INSTALL/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = \
0 +# builtin opt gdk_vmtrim = no
+# builtin opt monet_prompt = >
+# builtin opt monet_daemon = no
+# builtin opt mapi_port = 50000
+# builtin opt mapi_open = false
+# builtin opt mapi_autosense = false
+# builtin opt sql_optimizer = default_pipe
+# builtin opt sql_debug = 0
+# cmdline opt gdk_nr_threads = 0
+# cmdline opt mapi_open = true
+# cmdline opt mapi_port = 39372
+# cmdline opt mapi_usock = /var/tmp/mtest-15437/.s.monetdb.39372
+# cmdline opt monet_prompt =
+# cmdline opt gdk_dbpath = \
/export/scratch2/dinther/INSTALL/var/MonetDB/mTests_sql_jdbc_tests +# cmdline opt \
embedded_r = yes +# cmdline opt gdk_debug = 536870922
+
+# 15:26:27 >
+# 15:26:27 > "./Test_PSgetObject.SQL.sh" "Test_PSgetObject"
+# 15:26:27 >
+
+
+# 15:26:27 >
+# 15:26:27 > java Test_PSgetObject \
"jdbc:monetdb://toulouse:39372/mTests_sql_jdbc_tests?user=monetdb&password=monetdb" \
+# 15:26:27 > +
+
+# 15:26:27 >
+# 15:26:27 > "Done."
+# 15:26:27 >
+
diff --git a/sql/jdbc/tests/Tests/Test_PSgetObject.stable.out \
b/sql/jdbc/tests/Tests/Test_PSgetObject.stable.out new file mode 100644
--- /dev/null
+++ b/sql/jdbc/tests/Tests/Test_PSgetObject.stable.out
@@ -0,0 +1,88 @@
+stdout of test 'Test_PSgetObject` in directory 'sql/jdbc/tests` itself:
+
+
+# 15:26:26 >
+# 15:26:26 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" \
"mapi_open=true" "--set" "mapi_port=39372" "--set" \
"mapi_usock=/var/tmp/mtest-15437/.s.monetdb.39372" "--set" "monet_prompt=" \
"--forcemito" "--dbpath=/export/scratch2/dinther/INSTALL/var/MonetDB/mTests_sql_jdbc_tests" \
"--set" "embedded_r=yes" +# 15:26:26 >
+
+# MonetDB 5 server v11.23.4
+# This is an unreleased version
+# Serving database 'mTests_sql_jdbc_tests', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs and 128bit integers \
dynamically linked +# Found 15.589 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2016 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://toulouse.da.cwi.nl:39372/
+# Listening for UNIX domain connection requests on \
mapi:monetdb:///var/tmp/mtest-15437/.s.monetdb.39372 +# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+# MonetDB/R module loaded
+
+Ready.
+# SQL catalog created, loading sql scripts once
+# loading sql script: 09_like.sql
+# loading sql script: 10_math.sql
+# loading sql script: 11_times.sql
+# loading sql script: 12_url.sql
+# loading sql script: 13_date.sql
+# loading sql script: 14_inet.sql
+# loading sql script: 15_querylog.sql
+# loading sql script: 16_tracelog.sql
+# loading sql script: 17_temporal.sql
+# loading sql script: 20_vacuum.sql
+# loading sql script: 21_dependency_functions.sql
+# loading sql script: 22_clients.sql
+# loading sql script: 23_skyserver.sql
+# loading sql script: 24_zorder.sql
+# loading sql script: 25_debug.sql
+# loading sql script: 26_sysmon.sql
+# loading sql script: 27_rejects.sql
+# loading sql script: 39_analytics.sql
+# loading sql script: 39_analytics_hge.sql
+# loading sql script: 40_geom.sql
+# loading sql script: 40_json.sql
+# loading sql script: 40_json_hge.sql
+# loading sql script: 41_md5sum.sql
+# loading sql script: 45_uuid.sql
+# loading sql script: 46_gsl.sql
+# loading sql script: 46_profiler.sql
+# loading sql script: 51_sys_schema_extension.sql
+# loading sql script: 72_fits.sql
+# loading sql script: 74_netcdf.sql
+# loading sql script: 75_shp.sql
+# loading sql script: 75_storagemodel.sql
+# loading sql script: 80_statistics.sql
+# loading sql script: 80_udf.sql
+# loading sql script: 80_udf_hge.sql
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic