Changeset: 694a6e13ae1b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=694a6e13ae1b
Modified Files:
        clients/R/MonetDB.R/NEWS
        clients/R/MonetDB.R/R/dbi.R
        clients/R/MonetDB.R/man/monetdb.read.csv.Rd
Branch: default
Log Message:

R Connector: Patch from Anthony to lowercase column names on data import


diffs (58 lines):

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
@@ -8,6 +8,7 @@ 1.0.0
 - Fix for case when query only returns a prompt (CALL ..., Thanks, Roman)
 - Fix for empty result set on dbGetQuery(), no longer returning NULL (Thanks, 
Fabian)
 - Fix for dbConnect(), it ignored the url parameter somehow, which broke some 
sqlsurvey (Thanks, Anthony)
+- Added lower.case.names= to monet.read.csv() in case users want to avoid 
quoting
 
 0.9.7
 - Fixed crash on Windows (Sorry, everyone)
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
@@ -622,7 +622,7 @@ setMethod("dbGetInfo", "MonetDBResult", 
 # adapted from RMonetDB, no java-specific things in here...
 monet.read.csv <- monetdb.read.csv <- function(conn, files, tablename, 
nrows=NA, header=TRUE, 
                                                locked=FALSE, na.strings="", 
nrow.check=500, 
-                                               delim=",", newline="\\n", 
quote="\"", create=TRUE, ...){
+                                               delim=",", newline="\\n", 
quote="\"", create=TRUE, lower.case.names=FALSE, ...){
   
   if (length(na.strings)>1) stop("na.strings must be of length 1")
   headers <- lapply(files, utils::read.csv, sep=delim, na.strings=na.strings, 
quote=quote, nrows=nrow.check, 
@@ -641,7 +641,13 @@ monet.read.csv <- monetdb.read.csv <- fu
     if(!all(types==types[, 1])) stop("Files have different variable types")
   } 
   
-  if (create) dbWriteTable(conn, tablename, headers[[1]][FALSE, ])
+  if (create){
+  
+       if( lower.case.names ) names( headers ) <- tolower( names( headers ) )
+  
+       dbWriteTable(conn, tablename, headers[[1]][FALSE, ])
+       
+  }
   
   delimspec <- paste0("USING DELIMITERS '", delim, "','", newline, "','", 
quote, "'")
   
diff --git a/clients/R/MonetDB.R/man/monetdb.read.csv.Rd 
b/clients/R/MonetDB.R/man/monetdb.read.csv.Rd
--- a/clients/R/MonetDB.R/man/monetdb.read.csv.Rd
+++ b/clients/R/MonetDB.R/man/monetdb.read.csv.Rd
@@ -11,7 +11,7 @@
 \usage{
    monetdb.read.csv (conn, files, tablename, nrows, header=TRUE, 
   locked=FALSE, na.strings="", nrow.check=500, delim=",",
-  newline = "\\\\n", quote = "\"", create=TRUE, ...)
+  newline = "\\\\n", quote = "\"", create=TRUE, lower.case.names=FALSE...)
 }
 \arguments{
   \item{conn}{A MonetDB.R database connection. Created using 
\code{\link[DBI]{dbConnect}} with the 
@@ -30,6 +30,7 @@
    \item{newline}{Newline in CSV file, usually \\n for UNIX-like systems and 
\\r\\r on Windows.}
    \item{quote}{Quote character(s) in CSV file.}
   \item{create}{Create table before importing?}
+  \item{lower.case.names}{Convert all column names to lowercase in the 
database?}
  }
  
 \value{
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to