Changeset: 488c0ddd873e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=488c0ddd873e
Modified Files:
        clients/R/MonetDB.R/R/dbi.R
Branch: embedded
Log Message:

R client: temporary table support for dbWriteTable and some more DBI compliance


diffs (54 lines):

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
@@ -455,7 +455,7 @@ quoteIfNeeded <- function(conn, x, warn=
 }
 
 setMethod("dbWriteTable", signature(conn="MonetDBConnection", name = 
"character", value="data.frame"), def=function(conn, name, value, 
overwrite=FALSE, 
-  append=FALSE, csvdump=FALSE, transaction=TRUE,...) {
+  append=FALSE, csvdump=FALSE, transaction=TRUE, temporary=FALSE, ...) {
   if (is.character(value)) {
     message("Treating character vector parameter as file name(s) for 
monetdb.read.csv()")
     monetdb.read.csv(conn=conn, files=value, tablename=name, create=!append, 
...)
@@ -483,10 +483,15 @@ setMethod("dbWriteTable", signature(conn
       to remove the existing table. Set append=TRUE if you would like to add 
the new data to the 
       existing table.")
   }
+  
   if (!dbExistsTable(conn, qname)) {
     fts <- sapply(value, dbDataType, dbObj=conn)
     fdef <- paste(quoteIfNeeded(conn, names(value)), fts, collapse=', ')
-    ct <- paste("CREATE TABLE ", qname, " (", fdef, ")", sep= '')
+    if (TEMPORARY) {
+      ct <- paste0("CREATE TEMPORARY TABLE ", qname, " (", fdef, ") ON COMMIT 
PRESERVE ROWS")
+    } else {
+      ct <- paste0("CREATE TABLE ", qname, " (", fdef, ")")
+    }
     dbSendUpdate(conn, ct)
   }
   if (length(value[[1]])) {
@@ -861,11 +866,20 @@ setMethod("dbColumnInfo", "MonetDBEmbedd
 }, 
 valueClass = "data.frame")
 
+setMethod("dbGetStatement", "MonetDBResult", def = function(res, ...) {
+  res@env$query
+}, 
+valueClass = "character")
 
-setMethod("dbGetInfo", "MonetDBResult", def=function(dbObj, ...) {
-  return(list(statement=dbObj@env$query, rows.affected=0, 
row.count=dbObj@env$info$rows, 
-              has.completed=dbHasCompleted(dbObj), is.select=TRUE))    
-}, valueClass="list")
+setMethod("dbGetRowCount", "MonetDBResult", def = function(res, ...) {
+  res@env$info$rows
+}, 
+valueClass = "numeric")
+
+setMethod("dbGetRowsAffected", "MonetDBResult", def = function(res, ...) {
+  as.numeric(NA)
+}, 
+valueClass = "numeric")
 
 # adapted from RMonetDB, no java-specific things in here...
 monet.read.csv <- monetdb.read.csv <- function(conn, files, tablename, 
header=TRUE, 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to