Changeset: 4ca509098380 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4ca509098380
Modified Files:
        clients/R/MonetDB.R/R/dbi.R
        monetdb5/extras/rapi/converters.c
        sql/common/sql_types.c
        sql/server/sql_parser.y
Branch: embedded
Log Message:

More RSQLite compatibility


diffs (64 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 @@ setMethod("dbWriteTable", "MonetDBConnec
     return(invisible(TRUE))
   }
   if (is.vector(value) && !is.list(value)) value <- data.frame(x=value, 
stringsAsFactors=F)
-  if (length(value)<1) stop("value must have at least one column")
+  if (length(value) < 1) stop("value must have at least one column")
   if (is.null(names(value))) names(value) <- paste("V", 1:length(value), 
sep='')
   if (length(value[[1]])>0) {
     if (!is.data.frame(value)) value <- as.data.frame(value, 
row.names=1:length(value[[1]]) , stringsAsFactors=F)
@@ -853,11 +853,12 @@ setMethod("dbGetInfo", "MonetDBResult", 
 monet.read.csv <- monetdb.read.csv <- function(conn, files, tablename, 
header=TRUE, 
                                                locked=FALSE, 
best.effort=FALSE, na.strings="", nrow.check=500, 
                                                delim=",", newline="\\n", 
quote="\"", create=TRUE, 
-                                               col.names=NULL, 
lower.case.names=FALSE, ...){
+                                               col.names=NULL, 
lower.case.names=FALSE, sep=delim, ...){
   
   if (length(na.strings)>1) stop("na.strings must be of length 1")
+  if (!missing(sep)) delim <- sep
+
   headers <- lapply(files, utils::read.csv, sep=delim, na.strings=na.strings, 
quote=quote, nrows=nrow.check, header=header, ...)
-
   if (length(files)>1){
     nn <- sapply(headers, ncol)
     if (!all(nn==nn[1])) stop("Files have different numbers of columns")
diff --git a/monetdb5/extras/rapi/converters.c 
b/monetdb5/extras/rapi/converters.c
--- a/monetdb5/extras/rapi/converters.c
+++ b/monetdb5/extras/rapi/converters.c
@@ -10,7 +10,7 @@
                valptr = ptrfun(retsxp);                            \
                if (bat->T->nonil && !bat->T->nil) {                \
                        if (memcopy) {                                          
                        \
-                               memcpy(valptr, Tloc(bat, BUNfirst(bat)),    \
+                               memcpy(valptr, p,                           \
                                        BATcount(bat) * sizeof(tpe));           
\
                        } else {                                        \
                                for (j = 0; j < BATcount(bat); j++) {       \
diff --git a/sql/common/sql_types.c b/sql/common/sql_types.c
--- a/sql/common/sql_types.c
+++ b/sql/common/sql_types.c
@@ -1625,6 +1625,8 @@ sqltypeinit( sql_allocator *sa)
                sql_create_func3(sa, "splitpart", "str", "splitpart", *t, *t, 
INT, *t, INOUT);
                sql_create_func(sa, "substring", "str", "substring", *t, INT, 
*t, INOUT);
                sql_create_func3(sa, "substring", "str", "substring", *t, INT, 
INT, *t, INOUT);
+               sql_create_func(sa, "substr", "str", "substring", *t, INT, *t, 
INOUT);
+               sql_create_func3(sa, "substr", "str", "substring", *t, INT, 
INT, *t, INOUT);
                sql_create_func(sa, "like", "algebra", "like", *t, *t, BIT, 
SCALE_NONE);
                sql_create_func3(sa, "like", "algebra", "like", *t, *t, *t, 
BIT, SCALE_NONE);
                sql_create_func(sa, "ilike", "algebra", "ilike", *t, *t, BIT, 
SCALE_NONE);
diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y
--- a/sql/server/sql_parser.y
+++ b/sql/server/sql_parser.y
@@ -1354,7 +1354,8 @@ as_subquery_clause:
  ;
 
 with_or_without_data:
-     WITH NO DATA      { $$ = 0; }
+        /* empty */    { $$ = 1; }
+ |   WITH NO DATA      { $$ = 0; }
  |   WITH DATA                 { $$ = 1; }
  ;
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to