Changeset: eb4bb3abeef2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=eb4bb3abeef2
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/duplicate_primary_keys.Bug-3474.sql
        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:
        clients/R/MonetDB.R/DESCRIPTION
        clients/R/MonetDB.R/NAMESPACE
        clients/R/MonetDB.R/NEWS
        clients/R/MonetDB.R/R/dbi.R
        clients/R/MonetDB.R/R/dplyr.R
        clients/R/MonetDB.R/R/mapi.R
        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
        gdk/gdk_calc.c
        gdk/gdk_imprints.c
        gdk/gdk_logger.c
        gdk/gdk_logger.h
        gdk/gdk_private.h
        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/bat5.mal
        monetdb5/modules/kernel/batmmath.c
        monetdb5/modules/kernel/batmmath.h
        monetdb5/modules/kernel/group.c
        monetdb5/modules/kernel/group.h
        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/mal_mapi.c
        monetdb5/modules/mal/mal_mapi.h
        monetdb5/modules/mal/manifold.c
        monetdb5/modules/mal/mat.c
        monetdb5/modules/mal/pcre.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/opt_datacell.c
        sql/backends/monet5/datacell/opt_datacell.h
        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_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/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/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/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/21-explain.stable.out
        sql/benchmarks/tpch/Tests/22-explain.stable.out
        sql/benchmarks/tpch/Tests/22-explain.stable.out.int128
        sql/common/sql_hash.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_bam.stable.out
        sql/server/sql_atom.c
        sql/server/sql_atom.h
        sql/server/sql_mvc.c
        sql/server/sql_mvc.h
        sql/storage/bat/bat_logger.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-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/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/pg_regress/Tests/float4.stable.err
        sql/test/pg_regress/Tests/float8.sql
        sql/test/pg_regress/Tests/int8.stable.err
        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/forkmserver.c
        tools/merovingian/daemon/merovingian.c
        tools/merovingian/utils/properties.c
        tools/merovingian/utils/properties.h
        tools/merovingian/utils/utils.c
        tools/merovingian/utils/utils.h
Branch: transaction-replication
Log Message:

Merge with default branch
Manually resolve conflicts (mostly related to adding const modifiers)


diffs (truncated from 16897 to 300 lines):

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/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")
     )
   )
 }
 
-brief_desc.src_monetdb <- function(x) {
+src_desc.src_monetdb <- function(x) {
   paste0("MonetDB ",x$info$monet_version, " (",x$info$monet_release, ") [", 
x$info$merovingian_uri,"]")
 }
 
 tbl.src_monetdb <- function(src, from, ...) {
   monetdb_check_subquery(from)
-  tbl_sql("mownetdb", src = src, from = from, ...)
+  dplyr::tbl_sql("monetdb", src = src, from = from, ...)
 }
 
-# sql_create_index.src_monetdb
-
 db_query_fields.MonetDBConnection <- function(con, sql, ...) {
-  # prepare gives us column info without actually running a query
-  dbGetQuery(con,build_sql("PREPARE SELECT * FROM ", ident(sql)))$column
+  # prepare gives us column info without actually running a query. Nice.
+  dbGetQuery(con, dplyr::build_sql("PREPARE SELECT * FROM ", sql))$column
 }
 
 db_query_rows.MonetDBConnection <- function(con, sql, ...) {
@@ -38,21 +37,18 @@ db_query_rows.MonetDBConnection <- funct
 }
 
 db_insert_into.MonetDBConnection <- function(con, table, values, ...) {
-  dbWriteTable(con,table,values,append=T,transaction=F,csvdump=T)
+  dbWriteTable(con,dbQuoteIdentifier(con,table),values,
+    append=T,transaction=F,csvdump=T)
 }
 
 db_save_query.MonetDBConnection <- function(con, sql, name, temporary = TRUE,
                                             ...) {
-  tt_sql <- build_sql("CREATE TEMPORARY TABLE ", ident(name), " AS ",
+  tt_sql <- dplyr::build_sql("CREATE TEMPORARY TABLE ", dplyr::ident(name), " 
AS ",
     sql, " WITH DATA", con = con)
   dbGetQuery(con, tt_sql)
   name
 }
 
-db_begin.MonetDBConnection <- function(con, ...) {
-  dbBegin(con)
-}
-
 db_create_index.MonetDBConnection <- function(con, table, columns, name = NULL,
                                            ...) {
   TRUE
@@ -62,13 +58,10 @@ db_analyze.MonetDBConnection <- function
   TRUE
 }
 
-# this should be the default in dplyr anyways...
-db_begin.MonetDBConnection <- function(con, ...) dbBegin(con)
-
 sql_subquery.MonetDBConnection <- function(con, sql, name = unique_name(), 
...) {
-  if (is.ident(sql)) return(sql)
+  if (dplyr::is.ident(sql)) return(sql)
   monetdb_check_subquery(sql)
-  build_sql("(", sql, ") AS ", ident(name), con = con)
+  dplyr::build_sql("(", sql, ") AS ", dplyr::ident(name), con = con)
 }
 
 monetdb_check_subquery <- function(sql) {
@@ -91,4 +84,14 @@ monetdb_queryinfo <- function(conn, quer
     .mapiRequest(conn, paste0("Xreply_size ", REPLY_SIZE))
   })
   info
-}
\ No newline at end of file
+}
+
+# copied from dplyr's utils.r, sql_subquery needs it
+unique_name <- local({
+  i <- 0
+
+  function() {
+    i <<- i + 1
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to