Changeset: a4901d488594 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a4901d488594
Modified Files:
clients/R/MonetDB.R/NAMESPACE
clients/R/MonetDB.R/NEWS
clients/R/MonetDB.R/R/monetdb.R
clients/R/MonetDB.R/src/mapi.c
clients/R/db.tests/monetdb.test.R
clients/R/db.tests/monetframe.test.R
clients/R/db.tests/sqlsurvey.test.R
Branch: default
Log Message:
R Connector: minor updates
diffs (162 lines):
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
@@ -12,6 +12,9 @@ export(monetdb_queryinfo)
# shorthand for db connections
export(mc)
+# shorthand for db queries
+export(mq)
+
# control.R
export(monetdb.server.setup)
export(monetdb.server.start)
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
@@ -2,6 +2,7 @@ 0.9.2
- monetdb_queryinfo method to find out things about an arbitrary query cheaply
- new options monetdb.sequential, monetdb.debug.query and monetdb.debug.mapi
- debug output now uses the message() function
+- reinstated warning about monetdb:// db urls, we do not like them
0.9.1
- dbGetInfo() now supported on MonetDBConnection (dplyr compatibility)
diff --git a/clients/R/MonetDB.R/R/monetdb.R b/clients/R/MonetDB.R/R/monetdb.R
--- a/clients/R/MonetDB.R/R/monetdb.R
+++ b/clients/R/MonetDB.R/R/monetdb.R
@@ -32,7 +32,7 @@ mc <- function(dbname="demo", user="mone
dbConnect(MonetDB.R(),dbname,user,password,host,port,timeout,wait,language,...)
}
-# TODO: document, export etc
+# TODO: document
mq <- function(db,query,...) {
conn <- mc(db,...)
res <- dbGetQuery(conn,query)
@@ -48,7 +48,7 @@ setMethod("dbConnect", "MonetDBDriver",
timeout <- as.integer(timeout)
if (substring(dbname,1,10) == "monetdb://") {
- #warning("MonetDB.R: Using 'monetdb://...' URIs
in dbConnect() is deprecated. Please switch to dbname, host, port named
arguments.")
+ message("MonetDB.R: Using 'monetdb://...' URIs
in dbConnect() is deprecated. Please switch to dbname, host, port named
arguments.")
rest <- substring(dbname,11,nchar(dbname))
# split at /, so we get the dbname
slashsplit <- strsplit(rest,"/",fixed=TRUE)
@@ -90,8 +90,6 @@ setMethod("dbConnect", "MonetDBDriver",
}
# make new socket with user-specified timeout
- #socket <- socket <<- socketConnection(host = host,
port = port,
- # blocking = TRUE, open="r+b",timeout = timeout)
socket <-
.Call("mapiConnect",host,port,timeout,PACKAGE=C_LIBRARY)
.monetAuthenticate(socket,dbname,user,password,language=language)
connenv <- new.env(parent=emptyenv())
@@ -183,7 +181,7 @@ setMethod("dbSendQuery", signature(conn=
}
conn@connenv$exception <- list()
env <- NULL
- if (getOption("monetdb.debug.query",F)) message("QQ:
'",statement)
+ if (getOption("monetdb.debug.query",F)) message("QQ:
'",statement,"'")
resp <-
.mapiParseResponse(.mapiRequest(conn,paste0("s",statement,";"),async=async))
env <- new.env(parent=emptyenv())
@@ -430,14 +428,6 @@ setMethod("fetch", signature(res="MonetD
}
# convert tuple string vector into matrix so we can
access a single column efficiently
- # stupid MAPI, [, ] and , or \t are completely
unneccessary
-
- #rawdata <- gsub(",\t", "\t", res@env$data[1:n],fixed=T)
- #rawdata <- gsub("^\\[ ", "",rawdata)
- #rawdata <- gsub("\t\\]$", "", rawdata)
- #parts <- do.call("rbind",
strsplit(rawdata,"\t",fixed=TRUE,useBytes=TRUE))
- #parts[parts=="NULL"] <- NA
-
# call to a faster C implementation for the hard and
annoying task of splitting everyting into fields
parts <- .Call("mapiSplit",
res@env$data[1:n],as.integer(info$cols), PACKAGE=C_LIBRARY)
@@ -451,8 +441,6 @@ setMethod("fetch", signature(res="MonetD
if (col == .CT_BOOL)
df[[j]] <- parts[[j]]=="true"
if (col == .CT_CHR) {
- #strings <- parts[,j]
- #df[[j]] <-
substring(strings,2,nchar(strings)-1)
df[[j]] <- parts[[j]]
}
if (col == .CT_RAW) {
@@ -630,8 +618,6 @@ REPLY_SIZE <- 100 # Apparently, -1 me
return (NULL)
}
-
-
.mapiLongInt <- function(someint) {
stopifnot(length(someint) == 1)
formatC(someint,format="d")
diff --git a/clients/R/MonetDB.R/src/mapi.c b/clients/R/MonetDB.R/src/mapi.c
--- a/clients/R/MonetDB.R/src/mapi.c
+++ b/clients/R/MonetDB.R/src/mapi.c
@@ -271,19 +271,6 @@ SEXP mapiRead(SEXP conn) {
}
response_buf[response_buf_offset] = '\0';
- // We have this issue that on Windows sometimes a \0 appears in the
middle of the response...
- // since it always appears instead of a \t, let's replace it for now
and pray
- // MonetDB Bug #3369 http://bugs.monetdb.org/show_bug.cgi?id=3369
-#ifdef __WIN32__
- size_t i;
- for (i = 0; i < response_buf_offset; i++) {
- if (response_buf[i] == '\0') {
- warning("Removed a NULL character from response at
offset %lu of %lu",(unsigned long) i,(unsigned long) response_buf_offset);
- response_buf[i] = '\t';
- }
- }
-#endif
-
PROTECT(lines = NEW_STRING(1));
SET_STRING_ELT(lines, 0, mkChar(response_buf));
free(response_buf);
diff --git a/clients/R/db.tests/monetdb.test.R
b/clients/R/db.tests/monetdb.test.R
--- a/clients/R/db.tests/monetdb.test.R
+++ b/clients/R/db.tests/monetdb.test.R
@@ -1,13 +1,15 @@
+options(monetdb.debug.query=T)
+
library(MonetDB.R)
drv <- dbDriver("MonetDB")
stopifnot(identical(dbGetInfo(drv)$name,"MonetDBDriver"))
-con <- dbConnect(drv, "monetdb://localhost:50000/monetdbrtest", "monetdb",
"monetdb",timeout=100,debug.queries=T)
+con <- dbConnect(drv, "monetdbrtest")
stopifnot(identical(class(con)[[1]],"MonetDBConnection"))
# overwrite variable to force destructor
-con <- dbConnect(drv, "monetdb://localhost:50000/monetdbrtest", "monetdb",
"monetdb",timeout=100,debug.queries=T)
-con <- dbConnect(drv, "monetdb://localhost:50000/monetdbrtest", "monetdb",
"monetdb",timeout=100,debug.queries=T)
+con <- dbConnect(drv, "monetdbrtest")
+con <- dbConnect(drv, "monetdbrtest")
gc()
# basic MAPI/SQL test
diff --git a/clients/R/db.tests/monetframe.test.R
b/clients/R/db.tests/monetframe.test.R
--- a/clients/R/db.tests/monetframe.test.R
+++ b/clients/R/db.tests/monetframe.test.R
@@ -1,4 +1,5 @@
library(monet.frame)
+options(monetdb.debug.query=T)
con <- dbConnect(dbDriver("MonetDB"),
"monetdb://localhost:50000/monetdbrtest", "monetdb", "monetdb",timeout=100)
diff --git a/clients/R/db.tests/sqlsurvey.test.R
b/clients/R/db.tests/sqlsurvey.test.R
--- a/clients/R/db.tests/sqlsurvey.test.R
+++ b/clients/R/db.tests/sqlsurvey.test.R
@@ -1,6 +1,8 @@
library(MonetDB.R)
library(sqlsurvey)
+options(monetdb.debug.query=T)
+
# install.packages("sqlsurvey",
repos=c("http://cran.r-project.org","http://R-Forge.R-project.org"), dep=TRUE)
db <- dbConnect( MonetDB.R() , "monetdb://localhost/monetdbrtest")
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list