Changeset: 2a2e546666cb for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2a2e546666cb Added Files: clients/R/MonetDB.R/man/src_monetdb.Rd clients/Tests/malcheck.sh clients/Tests/malcheck.stable.err clients/Tests/malcheck.stable.out clients/Tests/malcheck.timeout sql/test/BugTracker-2014/Tests/copy_decimal_into.Bug-3596.sql sql/test/BugTracker-2014/Tests/copy_decimal_into.Bug-3596.stable.err sql/test/BugTracker-2014/Tests/copy_decimal_into.Bug-3596.stable.out sql/test/BugTracker-2014/Tests/duplicate_primary_keys.Bug-3474.sql sql/test/BugTracker-2014/Tests/duplicate_primary_keys.Bug-3474.stable.err sql/test/BugTracker-2014/Tests/duplicate_primary_keys.Bug-3474.stable.out sql/test/BugTracker-2014/Tests/insert_into_temp_table.Bug-3600.sql sql/test/BugTracker-2014/Tests/insert_into_temp_table.Bug-3600.stable.err sql/test/BugTracker-2014/Tests/insert_into_temp_table.Bug-3600.stable.out sql/test/BugTracker-2014/Tests/manifold.Bug-3556.sql sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.err sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.sql sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.err sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out sql/test/BugTracker-2014/Tests/sign-sorted.Bug-3594.sql sql/test/BugTracker-2014/Tests/sign-sorted.Bug-3594.stable.err sql/test/BugTracker-2014/Tests/sign-sorted.Bug-3594.stable.out testing/malcheck.py Removed Files: clients/R/MonetDB.R/man/monetdbGetTransferredBytes.Rd Modified Files: NT/monetdb_config.h.in clients/R/MonetDB.R/DESCRIPTION clients/R/MonetDB.R/NAMESPACE clients/R/MonetDB.R/NEWS clients/R/MonetDB.R/R/control.R clients/R/MonetDB.R/R/dbi.R clients/R/MonetDB.R/R/dplyr.R clients/R/MonetDB.R/R/mapi.R clients/R/MonetDB.R/src/mapi.c clients/R/Tests/dbi.R clients/R/Tests/dbi.stable.out clients/R/Tests/dplyr.R clients/R/Tests/dplyr.stable.err clients/R/Tests/dplyr.stable.out clients/R/Tests/install-dependencies.sh clients/R/Tests/install.sh clients/R/Tests/survey.R clients/Tests/All clients/Tests/MAL-signatures_all.stable.out clients/Tests/MAL-signatures_all.stable.out.int128 clients/Tests/MAL-signatures_fits_geom.stable.out clients/Tests/MAL-signatures_fits_geom.stable.out.int128 clients/Tests/MAL-signatures_geom.stable.out clients/Tests/MAL-signatures_geom.stable.out.int128 clients/Tests/MAL-signatures_none.stable.out clients/Tests/MAL-signatures_none.stable.out.int128 clients/Tests/exports.stable.out clients/mapiclient/mclient.c clients/mapiclient/mnc.c clients/mapilib/mapi.c clients/mapilib/mapi.h clients/odbc/driver/ODBCGlobal.h common/stream/stream.c common/stream/stream_socket.h common/utils/mutils.c common/utils/mutils.h configure.ag gdk/gdk_align.c gdk/gdk_atoms.c gdk/gdk_bat.c gdk/gdk_calc.c gdk/gdk_imprints.c gdk/gdk_logger.c gdk/gdk_logger.h gdk/gdk_posix.c gdk/gdk_posix.h gdk/gdk_private.h gdk/gdk_storage.c gdk/gdk_system.h gdk/gdk_utils.c geom/monetdb5/geom.c java/src/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java monetdb5/NT/M5server.bat monetdb5/extras/rapi/rapi.c monetdb5/extras/rdf/rdf.h monetdb5/extras/rdf/rdfalgebra.c monetdb5/extras/sphinx/sphinx.c monetdb5/extras/sphinx/sphinx.h monetdb5/mal/mal_runtime.c monetdb5/modules/atoms/Tests/xml10.mal monetdb5/modules/atoms/Tests/xml10.stable.out monetdb5/modules/atoms/batxml.c monetdb5/modules/atoms/blob.c monetdb5/modules/atoms/blob.h monetdb5/modules/atoms/mtime.mal monetdb5/modules/kernel/aggr.c monetdb5/modules/kernel/alarm.c monetdb5/modules/kernel/bat5.mal monetdb5/modules/kernel/batmmath.c monetdb5/modules/kernel/batmmath.h monetdb5/modules/kernel/batstr.c monetdb5/modules/kernel/counters.c monetdb5/modules/kernel/group.c monetdb5/modules/kernel/group.h monetdb5/modules/kernel/logger.c monetdb5/modules/kernel/mmath.c monetdb5/modules/kernel/mmath.h monetdb5/modules/kernel/mmath.mal monetdb5/modules/mal/Tests/inspect05.stable.out monetdb5/modules/mal/batcalc.c monetdb5/modules/mal/calc.c monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/mal_mapi.h monetdb5/modules/mal/manifold.c monetdb5/modules/mal/mat.c monetdb5/modules/mal/mkey.c monetdb5/modules/mal/pcre.c monetdb5/modules/mal/transaction.c monetdb5/optimizer/opt_groups.c monetdb5/scheduler/Tests/memo01.mal monetdb5/scheduler/Tests/memo01.stable.out monetdb5/scheduler/Tests/memo02.mal monetdb5/scheduler/Tests/memo02.stable.out monetdb5/tests/gdkTests/Tests/void.mal sql/backends/monet5/UDF/Tests/udf-fuse.stable.out sql/backends/monet5/UDF/Tests/udf-reverse.stable.out sql/backends/monet5/datacell/dcsocket.c sql/backends/monet5/datacell/opt_datacell.c sql/backends/monet5/datacell/opt_datacell.h sql/backends/monet5/gsl/gsl.c sql/backends/monet5/sql.c sql/backends/monet5/sql.h sql/backends/monet5/sql_bat2time.c sql/backends/monet5/sql_cast.c sql/backends/monet5/sql_cast.h sql/backends/monet5/sql_cast_impl_down_from_flt.h sql/backends/monet5/sql_cast_impl_down_from_int.h sql/backends/monet5/sql_cast_impl_up_to_flt.h sql/backends/monet5/sql_cast_impl_up_to_int.h sql/backends/monet5/sql_fround.c sql/backends/monet5/sql_fround_impl.h sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_result.c sql/backends/monet5/sql_round.c sql/backends/monet5/sql_round_impl.h sql/benchmarks/ssbm/Tests/01-explain.stable.out sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/02-explain.stable.out sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/03-explain.stable.out sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/04-explain.stable.out sql/benchmarks/ssbm/Tests/04-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/05-explain.stable.out sql/benchmarks/ssbm/Tests/05-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/06-explain.stable.out sql/benchmarks/ssbm/Tests/06-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/07-explain.stable.out sql/benchmarks/ssbm/Tests/07-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/08-explain.stable.out sql/benchmarks/ssbm/Tests/08-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/09-explain.stable.out sql/benchmarks/ssbm/Tests/09-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/10-explain.stable.out sql/benchmarks/ssbm/Tests/10-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/11-explain.stable.out sql/benchmarks/ssbm/Tests/11-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/12-explain.stable.out sql/benchmarks/ssbm/Tests/12-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/13-explain.stable.out sql/benchmarks/ssbm/Tests/13-explain.stable.out.int128 sql/benchmarks/tpch/Tests/01-explain.stable.out sql/benchmarks/tpch/Tests/01-explain.stable.out.int128 sql/benchmarks/tpch/Tests/02-explain.stable.out sql/benchmarks/tpch/Tests/03-explain.stable.out sql/benchmarks/tpch/Tests/03-explain.stable.out.int128 sql/benchmarks/tpch/Tests/04-explain.stable.out sql/benchmarks/tpch/Tests/05-explain.stable.out sql/benchmarks/tpch/Tests/05-explain.stable.out.int128 sql/benchmarks/tpch/Tests/06-explain.stable.out sql/benchmarks/tpch/Tests/06-explain.stable.out.int128 sql/benchmarks/tpch/Tests/07-explain.stable.out sql/benchmarks/tpch/Tests/07-explain.stable.out.int128 sql/benchmarks/tpch/Tests/08-explain.stable.out sql/benchmarks/tpch/Tests/08-explain.stable.out.int128 sql/benchmarks/tpch/Tests/09-explain.stable.out sql/benchmarks/tpch/Tests/09-explain.stable.out.int128 sql/benchmarks/tpch/Tests/10-explain.stable.out sql/benchmarks/tpch/Tests/10-explain.stable.out.int128 sql/benchmarks/tpch/Tests/11-explain.stable.out sql/benchmarks/tpch/Tests/11-explain.stable.out.int128 sql/benchmarks/tpch/Tests/11-plan.stable.out sql/benchmarks/tpch/Tests/11-plan.stable.out.int128 sql/benchmarks/tpch/Tests/12-explain.stable.out sql/benchmarks/tpch/Tests/12-explain.stable.out.int128 sql/benchmarks/tpch/Tests/13-explain.stable.out sql/benchmarks/tpch/Tests/14-explain.stable.out sql/benchmarks/tpch/Tests/14-explain.stable.out.int128 sql/benchmarks/tpch/Tests/14-plan.stable.out sql/benchmarks/tpch/Tests/14-plan.stable.out.int128 sql/benchmarks/tpch/Tests/15-explain.stable.out sql/benchmarks/tpch/Tests/15-explain.stable.out.int128 sql/benchmarks/tpch/Tests/16-explain.stable.out sql/benchmarks/tpch/Tests/17-explain.stable.out sql/benchmarks/tpch/Tests/17-explain.stable.out.int128 sql/benchmarks/tpch/Tests/17-plan.stable.out sql/benchmarks/tpch/Tests/17-plan.stable.out.int128 sql/benchmarks/tpch/Tests/18-explain.stable.out sql/benchmarks/tpch/Tests/18-explain.stable.out.int128 sql/benchmarks/tpch/Tests/19-explain.stable.out sql/benchmarks/tpch/Tests/19-explain.stable.out.int128 sql/benchmarks/tpch/Tests/20-explain.stable.out sql/benchmarks/tpch/Tests/20-explain.stable.out.int128 sql/benchmarks/tpch/Tests/20-plan.stable.out sql/benchmarks/tpch/Tests/20-plan.stable.out.int128 sql/benchmarks/tpch/Tests/21-explain.stable.out sql/benchmarks/tpch/Tests/22-explain.stable.out sql/benchmarks/tpch/Tests/22-explain.stable.out.int128 sql/benchmarks/tpch/Tests/22-plan.stable.out sql/common/sql_hash.c sql/common/sql_string.c sql/common/sql_types.c sql/common/sql_types.h sql/include/sql_catalog.h sql/include/sql_hash.h sql/jdbc/tests/Tests/Test_Dobjects.stable.out sql/jdbc/tests/Tests/Test_Dobjects_bam.stable.out sql/server/rel_select.c sql/server/sql_atom.c sql/server/sql_atom.h sql/server/sql_mvc.c sql/server/sql_mvc.h sql/server/sql_parser.y sql/storage/bat/bat_logger.c sql/storage/bat/bat_storage.c sql/storage/bat/bat_table.c sql/storage/bat/res_table.c sql/storage/restrict/restrict_logger.c sql/storage/restrict/restrict_table.c sql/storage/sql_catalog.c sql/storage/sql_storage.h sql/storage/store.c sql/storage/store_connections.c sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128 sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out sql/test/BugTracker-2012/Tests/user_defined_decimal_function.Bug-2992.stable.out sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out.int128 sql/test/BugTracker-2014/Tests/All sql/test/BugTracker-2014/Tests/stringfloatshtcompare.Bug-3512.stable.err sql/test/BugTracker-2014/Tests/stringfloatshtcompare.Bug-3512.stable.out sql/test/BugTracker/Tests/alter_col_to_set_same_constraint.SF-1850781.stable.err sql/test/BugTracker/Tests/alter_table_add_fkey.SF-1737668.stable.err sql/test/BugTracker/Tests/alter_table_set_not_null.SF-1997030.stable.err sql/test/BugTracker/Tests/ambiguous_join.SF-1580565.stable.err sql/test/BugTracker/Tests/auto_increment.SF-1834820.stable.err sql/test/BugTracker/Tests/between_having_problem.SF-1959391.stable.err sql/test/BugTracker/Tests/between_with_column.SF-1959410.stable.err sql/test/BugTracker/Tests/bind_with_cast.SF-1720934.stable.err sql/test/BugTracker/Tests/broken_join.SF-1373391.stable.err sql/test/BugTracker/Tests/bug_in_selection.SF-1892413.stable.err sql/test/BugTracker/Tests/coalesce_equal_coalesce.SF-1907905.stable.err sql/test/BugTracker/Tests/copy_decimal.SF-1582957.stable.err sql/test/BugTracker/Tests/copy_overflow_null_bug.SF-1842550.stable.err sql/test/BugTracker/Tests/crash_on_fkey_update.SF-1703497.stable.err sql/test/BugTracker/Tests/crash_on_fkey_update2.SF-1703497.stable.err sql/test/BugTracker/Tests/create_column.SF-1643542.stable.err sql/test/BugTracker/Tests/create_same_temp_tab_after_its_drop.SF-1850809.stable.err sql/test/BugTracker/Tests/creation_of_exeception_for_select.SF-1841749.stable.err sql/test/BugTracker/Tests/drop_system_tables.SF-1550768.stable.err sql/test/BugTracker/Tests/explain.SF-1739353.stable.out sql/test/BugTracker/Tests/groupby_orderby_nonselected.SF-1723863.stable.err sql/test/BugTracker/Tests/insert_date.SF-1838785.stable.err sql/test/BugTracker/Tests/insert_values.SF-1578838.stable.err sql/test/BugTracker/Tests/inserting_invalid_timestamp.SF-1363557.stable.err sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out sql/test/BugTracker/Tests/limits_of_decimal.SF-1685357.stable.err sql/test/BugTracker/Tests/multivalue_insert.SF-1509864.stable.err sql/test/BugTracker/Tests/number_null_first_row.SF-1833286.stable.err sql/test/BugTracker/Tests/reset_session_vars.SF-1505987.stable.err sql/test/BugTracker/Tests/revoke_role.SF-1691646.stable.err sql/test/BugTracker/Tests/set_a_new_user_password.SF-1844050.stable.err sql/test/BugTracker/Tests/set_operation_coersions.SF-1543216.stable.err sql/test/BugTracker/Tests/string2int_conversion.SF-1356068.stable.err sql/test/BugTracker/Tests/subquery_orderby.SF-1688915.stable.err sql/test/BugTracker/Tests/table_dependency_inside_union.SF-1884382.stable.err sql/test/BugTracker/Tests/temporary_tables.SF-1715669.stable.err sql/test/BugTracker/Tests/update_fkey_with_value_not_in_the_pkey.SF-1734143.stable.err sql/test/BugTracker/Tests/update_pkey_bug.SF-1733712.stable.err sql/test/BugTracker/Tests/variables.SF-1508160.stable.err sql/test/BugTracker/Tests/view_creation_using_func.SF-1714814.stable.err sql/test/Tests/systemfunctions.stable.out.int128 sql/test/leaks/Tests/check0.stable.out sql/test/leaks/Tests/check3.stable.out sql/test/leaks/Tests/check4.stable.out sql/test/leaks/Tests/check5.stable.out sql/test/leaks/Tests/select1.stable.out sql/test/leaks/Tests/select2.stable.out sql/test/leaks/Tests/temp2.stable.out sql/test/leaks/Tests/temp3.stable.out sql/test/pg_regress/Tests/alter_table.sql sql/test/pg_regress/Tests/alter_table.stable.err sql/test/pg_regress/Tests/alter_table.stable.out sql/test/pg_regress/Tests/comments.stable.err sql/test/pg_regress/Tests/float4.stable.err sql/test/pg_regress/Tests/float8.sql sql/test/pg_regress/Tests/float8.stable.err sql/test/pg_regress/Tests/float8.stable.out sql/test/pg_regress/Tests/int8.stable.err sql/test/pg_regress/Tests/numeric.stable.err sql/test/pg_regress/Tests/numeric.stable.out sql/test/pg_regress/Tests/numerology.sql sql/test/pg_regress/Tests/numerology.stable.err sql/test/pg_regress/Tests/numerology.stable.out sql/test/pg_regress/Tests/strings.stable.err sql/test/pg_regress/Tests/strings.stable.out sql/test/pg_regress/Tests/strings_cast.sql sql/test/pg_regress/Tests/strings_cast.stable.err sql/test/pg_regress/Tests/strings_cast.stable.out sql/test/pg_regress/postgresql2sql99.sh testing/Makefile.ag testing/Mtest.py.in testing/exportutils.py testing/listexports.py.in tools/merovingian/daemon/client.c tools/merovingian/daemon/connections.c tools/merovingian/daemon/controlrunner.c tools/merovingian/daemon/forkmserver.c tools/merovingian/daemon/merovingian.c tools/merovingian/daemon/multiplex-funnel.c tools/merovingian/daemon/proxy.c tools/merovingian/utils/control.c tools/merovingian/utils/properties.c tools/merovingian/utils/properties.h tools/merovingian/utils/utils.c tools/merovingian/utils/utils.h Branch: HTM Log Message:
Merge with default branch Resolve conflicts Fix a few issues: - Incorrect return for SQLprecommit - Incorrect error messages diffs (truncated from 23565 to 300 lines): 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 @@ -111,13 +111,6 @@ /* Define to 1 if you have the <crypt.h> header file. */ /* #undef HAVE_CRYPT_H */ -/* Define to 1 if you have the <cstdio> header file. */ -#if _MSC_VER >= 1300 -#define HAVE_CSTDIO 1 -#else -/* #undef HAVE_CSTDIO */ -#endif - /* Define to 1 if you have the `ctime_r' function. */ #define HAVE_CTIME_R 1 @@ -151,6 +144,9 @@ /* If the system has a working fdatasync */ /* #undef HAVE_FDATASYNC */ +/* Define to 1 if you have the <fenv.h> header file. */ +/* #undef HAVE_FENV_H */ + /* Define to 1 if you have the `fpclass' function. */ #define HAVE_FPCLASS 1 @@ -226,13 +222,6 @@ /* Define to 1 if you have the <inttypes.h> header file. */ #define HAVE_INTTYPES_H 1 /* generated by the Makefile */ -/* Define to 1 if you have the <iostream> header file. */ -#if _MSC_VER >= 1300 -#define HAVE_IOSTREAM 1 -#else -/* #undef HAVE_IOSTREAM */ -#endif - /* Define to 1 if you have the <io.h> header file. */ #define HAVE_IO_H 1 @@ -1038,9 +1027,6 @@ typedef unsigned __int64 uint64_t; #define __bool_true_false_are_defined 1 -#define SLASH_2_DIR_SEP(s) {char *t; for(t=strchr(s, '/' ); t; t=strchr(t+1, '/' )) *t=DIR_SEP;} -#define DIR_SEP_2_SLASH(s) {char *t; for(t=strchr(s, DIR_SEP); t; t=strchr(t+1, DIR_SEP)) *t='/' ;} - #ifdef HAVE_LONG_LONG typedef long long lng; # define SIZEOF_LNG SIZEOF_LONG_LONG diff --git a/clients/R/MonetDB.R/DESCRIPTION b/clients/R/MonetDB.R/DESCRIPTION --- a/clients/R/MonetDB.R/DESCRIPTION +++ b/clients/R/MonetDB.R/DESCRIPTION @@ -4,14 +4,11 @@ Title: Connect MonetDB to R Authors@R: c(person("Hannes Muehleisen", role = c("aut", "cre"),email = "han...@cwi.nl"), person("Thomas Lumley", role = "ctb"), person("Anthony Damico", role = "ctb")) -Depends: DBI (>= 0.3), digest (>= 0.6.4), bitops (>= 1.0), methods -Suggests: dplyr(>= 0.2.0.9000) -Description: Allows to pull data from MonetDB into R +Author: Hannes Muehleisen [aut, cre], Thomas Lumley [ctb], Anthony Damico [ctb] +Maintainer: Hannes Muehleisen <han...@cwi.nl> +Depends: DBI (>= 0.3.1), digest (>= 0.6.4), methods, R (>= 3.1.1) +Enhances: dplyr (>= 0.3.0) +Description: Allows to pull data from MonetDB into R. Includes a DBI implementation and a dplyr backend. License: MPL (== 1.1) URL: http://monetr.r-forge.r-project.org -Maintainer: Hannes Muehleisen <han...@cwi.nl> -SystemRequirements: MonetDB installation, available at - http://www.monetdb.org -Author: Hannes Muehleisen [aut, cre], - Thomas Lumley [ctb], - Anthony Damico [ctb] +SystemRequirements: MonetDB, available from http://www.monetdb.org \ No newline at end of file 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 @@ -1,10 +1,10 @@ -import(DBI,digest,methods,bitops) +import(DBI,digest,methods) # export only driver constructor, everything else is DBI stuff.. export(MonetDB,MonetR,MonetDBR,MonetDB.R) export(monet.read.csv,monetdb.read.csv) # this one is not in the DBI -exportMethods(dbSendUpdate,dbSendUpdateAsync,dbTransaction,dbIsValid) +exportMethods(dbSendUpdate,dbSendUpdateAsync,dbTransaction) # shorthands export(mc,mq) @@ -18,8 +18,8 @@ useDynLib(MonetDB.R) # dplyr.R export(src_monetdb) -export(translate_env.src_monetdb) -export(brief_desc.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_rows.MonetDBConnection) @@ -27,5 +27,5 @@ export(db_save_query.MonetDBConnection) export(db_insert_into.MonetDBConnection) export(db_create_index.MonetDBConnection) export(db_analyze.MonetDBConnection) -export(db_begin.MonetDBConnection) export(sql_subquery.MonetDBConnection) +export(monetdb_queryinfo) diff --git a/clients/R/MonetDB.R/NEWS b/clients/R/MonetDB.R/NEWS --- a/clients/R/MonetDB.R/NEWS +++ b/clients/R/MonetDB.R/NEWS @@ -1,12 +1,12 @@ 0.9.5 -- Fixed package date (Thanks, Dimitar) +- Removed package date (Thanks, Dimitar) - Added sys. schema name to internal queries, so SET SCHEMA xx would not break things (Thanks again, Dimitar) - Fixed monetdb:// URL handling on newer R versions (Thanks, Alex) - DBI 0.3 compatibility (isValid etc.) - deprecated dbTransaction() (DBI has standardized dbBegin()) - Back to R socket code for peace of mind - Code cleanup -- dplyr integration moved to MonetDB.R +- dplyr integration moved to MonetDB.R package 0.9.4 - dbWriteTable overhaul (thanks, Anthony) diff --git a/clients/R/MonetDB.R/R/control.R b/clients/R/MonetDB.R/R/control.R --- a/clients/R/MonetDB.R/R/control.R +++ b/clients/R/MonetDB.R/R/control.R @@ -69,10 +69,20 @@ monetdb.server.start <- monetdb.server.stop <- - function( correct.pid ){ + function( correct.pid, wait=T ){ if ( .Platform$OS.type == "unix" ) { - system(paste0("kill ",correct.pid)) + system(paste0("kill ",correct.pid)) + waittime <- 2 + if (!wait) return(TRUE) + Sys.sleep(1) + repeat { + psout <- system(paste0("ps ax | grep \"^", correct.pid, ".*mserver5\""), ignore.stdout=T) + if (psout != 0) break + message("Waiting ",waittime,"s for server shutdown (ESC or CTRL+C to abort)") + Sys.sleep(waittime) + waittime <- waittime * 2 + } } if ( .Platform$OS.type == "windows" ) { 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 @@ -18,17 +18,12 @@ MonetR <- MonetDB <- MonetDBR <- MonetDB new("MonetDBDriver") } -# dbIsValid is missing from the DBI 0.3, so redefine -setGeneric("dbIsValid", - def = function(dbObj, ...) standardGeneric("dbIsValid"), - valueClass = "logical") - setMethod("dbIsValid", "MonetDBDriver", def=function(dbObj, ...) { - return(TRUE) # driver object cannot be invalid + return(invisible(TRUE)) # driver object cannot be invalid }) setMethod("dbUnloadDriver", "MonetDBDriver", def=function(drv, ...) { - return(TRUE) # there is nothing to really unload here... + return(invisible(TRUE)) # there is nothing to really unload here... }) setMethod("dbGetInfo", "MonetDBDriver", def=function(dbObj, ...) @@ -107,7 +102,7 @@ setMethod("dbConnect", "MonetDBDriver", continue <- FALSE tryCatch ({ # open socket with 5-sec timeout so we can check whether everything works - socket <- socket <<- .mapiConnect(host, port, 5) + suppressWarnings(socket <- socket <<- .mapiConnect(host, port, 5)) # authenticate .mapiAuthenticate(socket, dbname, user, password, language=language) .mapiDisconnect(socket) @@ -124,7 +119,7 @@ setMethod("dbConnect", "MonetDBDriver", } # make new socket with user-specified timeout - socket <- .mapiConnect(host, port, 5) + socket <- .mapiConnect(host, port, timeout) .mapiAuthenticate(socket, dbname, user, password, language=language) connenv <- new.env(parent=emptyenv()) connenv$lock <- 0 @@ -156,7 +151,7 @@ setMethod("dbGetInfo", "MonetDBConnectio }) setMethod("dbIsValid", "MonetDBConnection", def=function(dbObj, ...) { - return(!is.na(tryCatch(dbGetInfo(dbObj), error=function(e){NA}))) + return(invisible(!is.na(tryCatch({dbGetInfo(dbObj);TRUE}, error=function(e){NA})))) }) setMethod("dbDisconnect", "MonetDBConnection", def=function(conn, ...) { @@ -214,8 +209,9 @@ setMethod("dbListFields", "MonetDBConnec }) setMethod("dbExistsTable", "MonetDBConnection", def=function(conn, name, ...) { - #TODO: make this work with more cases - tolower(name) %in% tolower(dbListTables(conn,sys_tables=T)) + # TODO: this is evil... + return(tolower(gsub("(^\"|\"$)","",as.character(name))) %in% + tolower(dbListTables(conn,sys_tables=T))) }) setMethod("dbGetException", "MonetDBConnection", def=function(conn, ...) { @@ -225,7 +221,7 @@ setMethod("dbGetException", "MonetDBConn setMethod("dbReadTable", "MonetDBConnection", def=function(conn, name, ...) { if (!dbExistsTable(conn, name)) stop(paste0("Unknown table: ", name)); - dbGetQuery(conn, paste0("SELECT * FROM ", name)) + dbGetQuery(conn,paste0("SELECT * FROM ", name)) }) # This one does all the work in this class @@ -315,7 +311,7 @@ setMethod("dbWriteTable", "MonetDBConnec if (overwrite && append) { stop("Setting both overwrite and append to true makes no sense.") } - qname <- dbQuoteIdentifier(conn, name) + qname <- make.db.names(conn, name) if (dbExistsTable(conn, qname)) { if (overwrite) dbRemoveTable(conn, qname) if (!overwrite && !append) stop("Table ", qname, " already exists. Set overwrite=TRUE if you want @@ -324,7 +320,7 @@ setMethod("dbWriteTable", "MonetDBConnec } if (!dbExistsTable(conn, qname)) { fts <- sapply(value, dbDataType, dbObj=conn) - fdef <- paste(dbQuoteIdentifier(conn, names(value)), fts, collapse=', ') + fdef <- paste(make.db.names(conn, names(value)), fts, collapse=', ') ct <- paste("CREATE TABLE ", qname, " (", fdef, ")", sep= '') dbSendUpdate(conn, ct) } @@ -580,21 +576,21 @@ setMethod("dbClearResult", "MonetDBResul res@env$open <- FALSE } } - invisible(TRUE) + return(invisible(TRUE)) }, valueClass = "logical") setMethod("dbHasCompleted", "MonetDBResult", def = function(res, ...) { if (res@env$info$type == Q_TABLE) { return(res@env$delivered == res@env$info$rows) } - return(TRUE) + return(invisible(TRUE)) }, valueClass = "logical") setMethod("dbIsValid", signature(dbObj="MonetDBResult"), def=function(dbObj, ...) { if (dbObj@env$info$type == Q_TABLE) { return(dbObj@env$open) } - return(TRUE) + return(invisible(TRUE)) }) monetTypes <- rep(c("numeric", "character", "character", "logical", "raw"), c(9, 3, 4, 1, 1)) 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 @@ -1,36 +1,35 @@ src_monetdb <- function(dbname, host = "localhost", port = 50000L, user = "monetdb", password = "monetdb", ...) { + requireNamespace("dplyr") con <- dbConnect(MonetDB.R(), dbname = dbname , host = host, port = port, user = user, password = password, ...) - src_sql("monetdb", con, info = dbGetInfo(con)) + dplyr::src_sql("monetdb", con, info = dbGetInfo(con)) } -translate_env.src_monetdb <- function(x) { - sql_variant( - base_scalar, - sql_translator(.parent = base_agg, - n = function() sql("COUNT(*)"), - sd = sql_prefix("STDDEV_SAMP"), - var = sql_prefix("VAR_SAMP"), - median = sql_prefix("MEDIAN") +src_translate_env.src_monetdb <- function(x) { + dplyr::sql_variant( + dplyr::base_scalar, + dplyr::sql_translator(.parent = dplyr::base_agg, + n = function() dplyr::sql("COUNT(*)"), + sd = dplyr::sql_prefix("STDDEV_SAMP"), + var = dplyr::sql_prefix("VAR_SAMP"), + median = dplyr::sql_prefix("MEDIAN") ) ) } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list