Changeset: dd0cd49ed566 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dd0cd49ed566 Added Files: sql/test/BugTracker-2016/Tests/catalog_name_qualifier.Bug-3948.sql sql/test/BugTracker-2016/Tests/catalog_name_qualifier.Bug-3948.stable.err sql/test/BugTracker-2016/Tests/catalog_name_qualifier.Bug-3948.stable.out sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.sql sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.err sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.out sql/test/BugTracker-2016/Tests/data-uuid.csv.bz2 sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.sql sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.err sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out sql/test/BugTracker-2016/Tests/foreign_key.Bug-3938.sql sql/test/BugTracker-2016/Tests/foreign_key.Bug-3938.stable.err sql/test/BugTracker-2016/Tests/foreign_key.Bug-3938.stable.out sql/test/BugTracker-2016/Tests/group_distinct_quantile.Bug-3927.sql sql/test/BugTracker-2016/Tests/group_distinct_quantile.Bug-3927.stable.err sql/test/BugTracker-2016/Tests/group_distinct_quantile.Bug-3927.stable.out sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.sql sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.stable.err sql/test/BugTracker-2016/Tests/merge_project.Bug-3955.stable.out sql/test/BugTracker-2016/Tests/min-max-uuid-column-wrong-results.Bug-3953.sql.in sql/test/BugTracker-2016/Tests/min-max-uuid-column-wrong-results.Bug-3953.stable.err sql/test/BugTracker-2016/Tests/min-max-uuid-column-wrong-results.Bug-3953.stable.out sql/test/BugTracker-2016/Tests/update_crash.Bug-3954.sql sql/test/BugTracker-2016/Tests/update_crash.Bug-3954.stable.err sql/test/BugTracker-2016/Tests/update_crash.Bug-3954.stable.out Modified Files: MonetDB.spec NT/monetdb_config.h.in buildtools/ChangeLog.Jun2016 clients/ChangeLog.Jun2016 clients/R/MonetDB.R/NAMESPACE clients/R/MonetDB.R/R/dbi.R clients/R/MonetDB.R/R/dplyr.R clients/R/Tests/dplyr-flights.R clients/R/Tests/dplyr.R clients/python2/monetdb/mapi.py clients/python3/monetdb/mapi.py debian/monetdb5-sql.install java/ChangeLog.Jun2016 java/src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java java/src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in monetdb5/modules/mal/mat.c monetdb5/optimizer/opt_mergetable.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql_execute.c sql/backends/monet5/sql_upgrades.c sql/benchmarks/tpch/Tests/20-plan.stable.out sql/benchmarks/tpch/Tests/20-plan.stable.out.int128 sql/common/sql_types.c sql/include/sql_mem.h sql/server/rel_optimizer.c sql/server/rel_updates.c sql/storage/sql_storage.h sql/test/BugTracker-2015/Tests/crash.Bug-3736.stable.out sql/test/BugTracker-2016/Tests/All sql/test/Via-m/Tests/event_s11.stable.err sql/test/Via-m/Tests/event_s11.stable.out sql/test/Via-m/Tests/media_s18.stable.err sql/test/Via-m/Tests/media_s18.stable.out sql/test/Via-m/Tests/media_s19.stable.err sql/test/Via-m/Tests/media_s19.stable.out sql/test/copy/Tests/int_parse.stable.err sql/test/copy/Tests/int_parse.stable.out sql/test/copy/Tests/int_parse_best.stable.out sql/test/copy/Tests/load_stdin_incorrect_line_nr.stable.err sql/test/copy/Tests/load_stdin_incorrect_line_nr.stable.out sql/test/copy/Tests/null_as_string_errors.stable.err sql/test/copy/Tests/null_as_string_errors.stable.out sql/test/pg_regress/Tests/case.stable.out sql/test/pg_regress/Tests/create_misc.stable.err sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out sql/test/testdb-upgrade/Tests/upgrade.stable.out sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128 testing/Mtest.py.in tools/embedded/build-rpkg.sh tools/embedded/demo.c tools/embedded/embedded.c tools/embedded/embedded.h tools/embedded/embeddedr.c tools/embedded/embeddedr.h tools/embedded/rpackage/DESCRIPTION tools/embedded/rpackage/R/monetdb.R tools/embedded/rpackage/configure tools/embedded/rpackage/man/embedded.Rd tools/merovingian/daemon/monetdbd.1.in tools/merovingian/daemon/monetdbd.service.in tools/mserver/monet_version.c.in Branch: pythonudf Log Message:
Merge with Jun2016. diffs (truncated from 3563 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -106,6 +106,8 @@ License: MPLv2.0 URL: http://www.monetdb.org/ Source: http://dev.monetdb.org/downloads/sources/Jul2015-SP3/%{name}-%{version}.tar.bz2 +# we need systemd for the _unitdir macro to exist +BuildRequires: systemd BuildRequires: bison BuildRequires: bzip2-devel %if %{?with_fits:1}%{!?with_fits:0} diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in --- a/NT/monetdb_config.h.in +++ b/NT/monetdb_config.h.in @@ -148,7 +148,7 @@ /* #undef HAVE_FDATASYNC */ /* Define to 1 if you have the <fenv.h> header file. */ -#if !defined(_MSV_VER) || _MSC_VER > 1600 +#if !defined(_MSC_VER) || _MSC_VER > 1600 #define HAVE_FENV_H 1 #endif @@ -240,7 +240,7 @@ #define HAVE_IO_H 1 /* Define to 1 if you have the `isinf' function. */ -#if !defined(_MSV_VER) || _MSC_VER > 1600 +#if !defined(_MSC_VER) || _MSC_VER > 1600 #define HAVE_ISINF 1 #endif @@ -309,7 +309,7 @@ /* Define to 1 if you have the `llabs' function. */ #define HAVE_LLABS 1 -#if defined(_MSV_VER) && _MSC_VER <= 1500 +#if defined(_MSC_VER) && _MSC_VER <= 1500 #define llabs _abs64 #endif @@ -460,7 +460,7 @@ /* #undef HAVE_RLIMIT_H */ /* Define to 1 if you have the `round' function. */ -#if !defined(_MSV_VER) || _MSC_VER > 1600 +#if !defined(_MSC_VER) || _MSC_VER > 1600 #define HAVE_ROUND 1 #endif diff --git a/buildtools/ChangeLog.Jun2016 b/buildtools/ChangeLog.Jun2016 --- a/buildtools/ChangeLog.Jun2016 +++ b/buildtools/ChangeLog.Jun2016 @@ -7,5 +7,5 @@ * Sat Jan 23 2016 Sjoerd Mullender <sjo...@acm.org> - Implemented a systemd configuration file for a monetdbd.service - on Fedora. + on systems that support it (Fedora, newer Ubuntu). diff --git a/clients/ChangeLog.Jun2016 b/clients/ChangeLog.Jun2016 --- a/clients/ChangeLog.Jun2016 +++ b/clients/ChangeLog.Jun2016 @@ -1,3 +1,7 @@ # ChangeLog file for clients # This file is updated with Maddlog +* Wed Mar 16 2016 Sjoerd Mullender <sjo...@acm.org> +- The Ruby client is now in a separate repository + (http://dev.monetdb.org/hg/monetdb-ruby) and released independently. + diff --git a/clients/R/MonetDB.R/NAMESPACE b/clients/R/MonetDB.R/NAMESPACE --- a/clients/R/MonetDB.R/NAMESPACE +++ b/clients/R/MonetDB.R/NAMESPACE @@ -21,18 +21,4 @@ export(monetdb.server.getpid) # dplyr.R export(src_monetdb) -export(src_translate_env.src_monetdb) -export(src_desc.src_monetdb) -export(tbl.src_monetdb) -export(db_query_fields.MonetDBConnection) -export(db_query_fields.MonetDBEmbeddedConnection) -export(db_query_rows.MonetDBConnection) -export(db_query_rows.MonetDBEmbeddedConnection) -export(db_save_query.MonetDBConnection) -export(db_insert_into.MonetDBConnection) -export(db_create_index.MonetDBConnection) -export(db_analyze.MonetDBConnection) -export(sql_subquery.MonetDBConnection) -export(monetdb_queryinfo) -export(sample_n.tbl_monetdb) -export(sample_frac.tbl_monetdb) +# rest of dplyr.R exported via hack in src_monetdb diff --git a/clients/R/MonetDB.R/R/dbi.R b/clients/R/MonetDB.R/R/dbi.R --- a/clients/R/MonetDB.R/R/dbi.R +++ b/clients/R/MonetDB.R/R/dbi.R @@ -97,7 +97,8 @@ setMethod("dbConnect", "MonetDBDriver", if (!requireNamespace("MonetDBLite", quietly=T)) { stop("MonetDBLite package required for embedded mode") } - MonetDBLite::monetdb_embedded_startup(embedded, !getOption("monetdb.debug.embedded", FALSE)) + MonetDBLite::monetdb_embedded_startup(embedded, !getOption("monetdb.debug.embedded", FALSE), + getOption("monetdb.sequential", TRUE)) connenv <- new.env(parent=emptyenv()) connenv$conn <- MonetDBLite::monetdb_embedded_connect() connenv$open <- TRUE @@ -331,7 +332,7 @@ setMethod("dbSendQuery", signature(conn= # This one does all the work in this class setMethod("dbSendQuery", signature(conn="MonetDBEmbeddedConnection", statement="character"), - def=function(conn, statement, ..., list=NULL, notreally=F) { + def=function(conn, statement, ..., list=NULL, execute = T, resultconvert = T) { if (!conn@connenv$open) { stop("This connection was closed.") } @@ -344,7 +345,7 @@ setMethod("dbSendQuery", signature(conn= if(!is.null(log_file <- getOption("monetdb.log.query", NULL))) cat(c(statement, ";\n"), file = log_file, sep="", append = TRUE) startt <- Sys.time() - resp <- MonetDBLite::monetdb_embedded_query(conn@connenv$conn, statement, notreally) + resp <- MonetDBLite::monetdb_embedded_query(conn@connenv$conn, statement, execute, resultconvert) takent <- round(as.numeric(Sys.time() - startt), 2) env <- new.env(parent=emptyenv()) if (resp$type == Q_TABLE) { diff --git a/clients/R/MonetDB.R/R/dplyr.R b/clients/R/MonetDB.R/R/dplyr.R --- a/clients/R/MonetDB.R/R/dplyr.R +++ b/clients/R/MonetDB.R/R/dplyr.R @@ -4,7 +4,26 @@ src_monetdb <- function(dbname="demo", h con <- DBI::dbConnect(MonetDB.R(), dbname = dbname , host = host, port = port, user = user, password = password, ...) } - dplyr::src_sql("monetdb", con, info = DBI::dbGetInfo(con)) + s <- dplyr::src_sql("monetdb", con, info = DBI::dbGetInfo(con)) + + # this is a (dirty) hack so we don't need to depend on dplyr + dplyrMt <- getNamespace("dplyr")$.__S3MethodsTable__. + + dplyrMt[["src_translate_env.src_monetdb"]] <- src_translate_env.src_monetdb + dplyrMt[["src_desc.src_monetdb"]] <- src_desc.src_monetdb + dplyrMt[["tbl.src_monetdb"]] <- tbl.src_monetdb + dplyrMt[["db_query_fields.MonetDBConnection"]] <- db_query_fields.MonetDBEmbeddedConnection + dplyrMt[["db_query_rows.MonetDBConnection"]] <- db_query_rows.MonetDBConnection + dplyrMt[["db_query_rows.MonetDBEmbeddedConnection"]] <- db_query_rows.MonetDBEmbeddedConnection + dplyrMt[["db_save_query.MonetDBConnection"]] <- db_save_query.MonetDBConnection + dplyrMt[["db_insert_into.MonetDBConnection"]] <- db_insert_into.MonetDBConnection + dplyrMt[["db_create_index.MonetDBConnection"]] <- db_create_index.MonetDBConnection + dplyrMt[["db_analyze.MonetDBConnection"]] <- db_analyze.MonetDBConnection + dplyrMt[["sql_subquery.MonetDBConnection"]] <- sql_subquery.MonetDBConnection + dplyrMt[["sample_n.tbl_monetdb"]] <- sample_n.tbl_monetdb + dplyrMt[["sample_frac.tbl_monetdb"]] <- sample_frac.tbl_monetdb + + s } src_translate_env.src_monetdb <- function(x) { @@ -59,7 +78,7 @@ db_query_fields.MonetDBConnection <- fun } db_query_fields.MonetDBEmbeddedConnection <- function(con, sql, ...) { - names(DBI::dbGetQuery(con, dplyr::build_sql("SELECT * FROM ", sql), notreally=T)) + names(DBI::dbGetQuery(con, dplyr::build_sql("SELECT * FROM ", sql), execute = F)) } db_query_rows.MonetDBConnection <- function(con, sql, ...) { @@ -67,7 +86,7 @@ db_query_rows.MonetDBConnection <- funct } db_query_rows.MonetDBEmbeddedConnection <- function(con, sql, ...) { - attr(DBI::dbGetQuery(con, sql, notreally=T), "__rows") + attr(DBI::dbGetQuery(con, sql, resultconvert = F), "__rows") } db_insert_into.MonetDBConnection <- function(con, table, values, ...) { diff --git a/clients/R/Tests/dplyr-flights.R b/clients/R/Tests/dplyr-flights.R --- a/clients/R/Tests/dplyr-flights.R +++ b/clients/R/Tests/dplyr-flights.R @@ -10,9 +10,6 @@ dd <- capture.output( suppressMessages ( library(dplyr, quietly=T) -# FIXME: this should no longer be required -library(MonetDB.R, quietly = T) - args <- commandArgs(trailingOnly = TRUE) dbport <- 50000 dbname <- "mTests_clients_R" diff --git a/clients/R/Tests/dplyr.R b/clients/R/Tests/dplyr.R --- a/clients/R/Tests/dplyr.R +++ b/clients/R/Tests/dplyr.R @@ -10,9 +10,6 @@ dd <- capture.output( suppressMessages ( library(dplyr, quietly = T) -# FIXME: this should no longer be required -library(MonetDB.R, quietly = T) - args <- commandArgs(trailingOnly = TRUE) dbport <- 50000 dbname <- "mTests_clients_R" diff --git a/clients/python2/monetdb/mapi.py b/clients/python2/monetdb/mapi.py --- a/clients/python2/monetdb/mapi.py +++ b/clients/python2/monetdb/mapi.py @@ -256,7 +256,7 @@ class Connection(object): while count > 0: recv = self.socket.recv(count) if len(recv) == 0: - raise OperationalError("Server closed connection") + raise socket.error("Server closed connection") count -= len(recv) result.write(recv) return result.getvalue() diff --git a/clients/python3/monetdb/mapi.py b/clients/python3/monetdb/mapi.py --- a/clients/python3/monetdb/mapi.py +++ b/clients/python3/monetdb/mapi.py @@ -258,7 +258,7 @@ class Connection(object): while count > 0: recv = self.socket.recv(count) if len(recv) == 0: - raise OperationalError("Server closed connection") + raise socket.error("Server closed connection") count -= len(recv) result.write(recv) return result.getvalue() diff --git a/debian/monetdb5-sql.install b/debian/monetdb5-sql.install --- a/debian/monetdb5-sql.install +++ b/debian/monetdb5-sql.install @@ -2,6 +2,7 @@ debian/tmp/usr/bin/monetdbd usr/bin debian/tmp/usr/bin/monetdb usr/bin debian/tmp/usr/lib/monetdb5/*.sql usr/lib/monetdb5 debian/tmp/usr/lib/monetdb5/autoload/??_sql.mal usr/lib/monetdb5/autoload +debian/tmp/usr/lib/systemd/system/monetdbd.service lib/systemd/system # usr/lib/monetdb5/sql*.mal EXCEPT: sql*_hge.mal debian/tmp/usr/lib/monetdb5/sql.mal usr/lib/monetdb5 debian/tmp/usr/lib/monetdb5/sql_aggr_[!h]*.mal usr/lib/monetdb5 diff --git a/java/ChangeLog.Jun2016 b/java/ChangeLog.Jun2016 --- a/java/ChangeLog.Jun2016 +++ b/java/ChangeLog.Jun2016 @@ -1,6 +1,16 @@ # ChangeLog file for java # This file is updated with Maddlog +* Thu Mar 17 2016 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> +- Improved DatabaseMetaData.getTypeInfo(). It now returns better information + on LITERAL_PREFIX, LITERAL_SUFFIX, CREATE_PARAMS, CASE_SENSITIVE, + FIXED_PREC_SCALE and MAXIMUM_SCALE for some data types. Also the returned rows + are now ordered by DATA_TYPE, TYPE_NAME, PRECISION as required by the specs. + Also corrected output column names "searchable" into "SEARCHABLE" and + "MAXIMUM SCALE" into "MAXIMUM_SCALE" to match the JDBC specification. +- Corrected DatabaseMetaData.getPseudoColumns(). It used to return 12 empty rows. + Now it returns no rows as MonetDB does not have pseudo columns. + * Thu Mar 3 2016 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> - Implemented method DatabaseMetaData.getClientProperties(). It used to always return a resultset with 4 completely empty rows. It now returns a @@ -30,8 +40,8 @@ * Thu Jan 28 2016 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> - Method getFunctions() in DatabaseMetadata used to throw an SQLException: - SELECT: no such column 'functions.sql' This has been corrected. - It now returns a resultset as requested. + SELECT: no such column 'functions.sql' + This has been corrected. It now returns a resultset as requested. - The resultsets of DatabaseMetadata methods now no longer return a value for the *_CAT columns as MonetDB does not support Catalogs. diff --git a/java/src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java b/java/src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java --- a/java/src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java +++ b/java/src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java @@ -2313,20 +2313,18 @@ public class MonetDatabaseMetaData exten /** * Get a description of a table's columns that are automatically - * updated when any value in a row is updated. They are - * unordered. + * updated when any value in a row is updated. They are unordered. * * <P>Each column description has the following columns: * <OL> * <LI><B>SCOPE</B> short => is not used * <LI><B>COLUMN_NAME</B> String => column name - * <LI><B>DATA_TYPE</B> short => SQL data type from java.sql.Types + * <LI><B>DATA_TYPE</B> int => SQL data type from java.sql.Types * <LI><B>TYPE_NAME</B> String => Data source dependent type name * <LI><B>COLUMN_SIZE</B> int => precision * <LI><B>BUFFER_LENGTH</B> int => length of column value in bytes - * <LI><B>DECIMAL_DIGITS</B> short => scale - * <LI><B>PSEUDO_COLUMN</B> short => is this a pseudo column - * like an Oracle ROWID + * <LI><B>DECIMAL_DIGITS</B> short => scale + * <LI><B>PSEUDO_COLUMN</B> short => is this a pseudo column like an Oracle ROWID * <UL> * <LI> versionColumnUnknown - may or may not be pseudo column * <LI> versionColumnNotPseudo - is NOT a pseudo column @@ -2347,26 +2345,19 @@ public class MonetDatabaseMetaData exten String table ) throws SQLException { - // I don't know of columns which update themselves, except maybe on the _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list