Changeset: 503571785830 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=503571785830
Modified Files:
        clients/R/MonetDB.R/NEWS
        clients/R/MonetDB.R/R/dbi.R
        clients/R/Tests/dbapply.reqtests
        clients/R/Tests/dbi.R
        clients/R/Tests/dbi.stable.err
        clients/R/Tests/dbi.stable.out
        clients/R/Tests/dplyr.reqtests
        clients/R/Tests/survey.reqtests
Branch: default
Log Message:

R Connector: more identifier quoting fun


diffs (236 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
@@ -4,7 +4,7 @@ 1.0.0
 - Now creating actual R integers if data fits
 - dbWriteTable now quotes table/column names if necessary, and outputs 
warnings if it did
 - New mdbapply function to automatically create and run embedded R functions 
in MonetDB
-- Fixes for dplyr backend
+- Fixes for dplyr backend (Thanks, Anthony)
 - 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)
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
@@ -287,15 +287,15 @@ setMethod("dbSendQuery", signature(conn=
 
 # quoting
 quoteIfNeeded <- function(conn, x, ...) {
-  chars <- !grepl("^[A-Za-z][A-Za-z0-9_]*$", x, perl=T) && 
!grepl("^\"[^\"]*\"$", x, perl=T)
+  chars <- !grepl("^[a-z][a-z0-9_]*$", x, perl=T) & !grepl("^\"[^\"]*\"$", x, 
perl=T)
   if (any(chars)) {
-    message("Identifier(s) ", paste(x[chars], collapse=", "), " contain 
reserved SQL characters and need to be quoted.")
+    message("Identifier(s) ", paste(x[chars], collapse=", "), " contain 
uppercase or reserved SQL characters and need(s) to be quoted in queries.")
   }
   reserved <- toupper(x) %in% .SQL92Keywords
   if (any(reserved)) {
-    message("Identifier(s) ", paste(x[reserved], collapse=", "), " are 
reserved SQL keywords and need to be quoted.")
+    message("Identifier(s) ", paste(x[reserved], collapse=", "), " are 
reserved SQL keywords and need(s) to be quoted in queries.")
   }
-  qts <- reserved || chars
+  qts <- reserved | chars
   x[qts] <- dbQuoteIdentifier(conn, x[qts])
   x
 }
diff --git a/clients/R/Tests/dbapply.reqtests b/clients/R/Tests/dbapply.reqtests
--- a/clients/R/Tests/dbapply.reqtests
+++ b/clients/R/Tests/dbapply.reqtests
@@ -1,1 +1,2 @@
 install
+dbi
diff --git a/clients/R/Tests/dbi.R b/clients/R/Tests/dbi.R
--- a/clients/R/Tests/dbi.R
+++ b/clients/R/Tests/dbi.R
@@ -53,7 +53,6 @@ dbWriteTable(con,tname,iris)
 stopifnot(identical(dbExistsTable(con,tname),TRUE))
 stopifnot(identical(dbExistsTable(con,"monetdbtest2"),FALSE))
 stopifnot(tname %in% dbListTables(con))
-
 stopifnot(identical(dbListFields(con,tname),names(iris)))
 # get stuff, first very convenient
 iris2 <- dbReadTable(con,tname)
@@ -178,7 +177,18 @@ dbWriteTable(conn, "evilt", data.frame(y
 stopifnot(dbExistsTable(conn, "evilt"))
 dbRollback(conn)
 
-stopifnot(dbGetQuery(conn, "SELECT * FROM tables WHERE 1=0") != NULL)
+# evil table from survey
+stopifnot(dbIsValid(conn))
+dbBegin(conn)
+data(api, package="survey")
+x <- apiclus1
+x$idkey <- seq( nrow( x ) )
+dbWriteTable( conn , 'x' , x , transaction=F)
+stopifnot(dbExistsTable(conn, "x"))
+dbRollback(conn)
+
+# empty result set
+stopifnot(!is.null(dbGetQuery(conn, "SELECT * FROM tables WHERE 1=0")))
 
 stopifnot(dbIsValid(conn))
 #thrice to catch null pointer errors
diff --git a/clients/R/Tests/dbi.stable.err b/clients/R/Tests/dbi.stable.err
--- a/clients/R/Tests/dbi.stable.err
+++ b/clients/R/Tests/dbi.stable.err
@@ -1,11 +1,11 @@
 stderr of test 'dbi` in directory 'clients/R` itself:
 
 
-# 16:49:50 >  
-# 16:49:50 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=36003" "--set" 
"mapi_usock=/var/tmp/mtest-66827/.s.monetdb.36003" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/Users/hannes/monetdb-install/var/MonetDB/mTests_clients_R" "--set" 
"mal_listing=0" "--set" "embedded_r=yes"
-# 16:49:50 >  
+# 12:27:25 >  
+# 12:27:25 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=31728" "--set" 
"mapi_usock=/var/tmp/mtest-43693/.s.monetdb.31728" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/Users/hannes/monetdb-install/var/MonetDB/mTests_clients_R" "--set" 
"mal_listing=0" "--set" "embedded_r=yes"
+# 12:27:25 >  
 
-# builtin opt  gdk_dbpath = 
/Users/hannes/monetdb-install/var/monetdb5/dbfarm/demo
+# builtin opt  gdk_dbpath = 
/usr/local/Cellar/monetdb/11.19.9/var/monetdb5/dbfarm/demo
 # builtin opt  gdk_debug = 0
 # builtin opt  gdk_vmtrim = no
 # builtin opt  monet_prompt = >
@@ -17,8 +17,8 @@ stderr of test 'dbi` in directory 'clien
 # builtin opt  sql_debug = 0
 # cmdline opt  gdk_nr_threads = 0
 # cmdline opt  mapi_open = true
-# cmdline opt  mapi_port = 36003
-# cmdline opt  mapi_usock = /var/tmp/mtest-66827/.s.monetdb.36003
+# cmdline opt  mapi_port = 31728
+# cmdline opt  mapi_usock = /var/tmp/mtest-43693/.s.monetdb.31728
 # cmdline opt  monet_prompt = 
 # cmdline opt  mal_listing = 2
 # cmdline opt  gdk_dbpath = 
/Users/hannes/monetdb-install/var/MonetDB/mTests_clients_R
@@ -26,15 +26,18 @@ stderr of test 'dbi` in directory 'clien
 # cmdline opt  embedded_r = yes
 # cmdline opt  gdk_debug = 536870922
 
-# 16:49:50 >  
-# 16:49:50 >  "R" "--vanilla" "--slave" "--args" "36003"
-# 16:49:50 >  
+# 12:27:25 >  
+# 12:27:25 >  "R" "--vanilla" "--slave" "--args" "31728"
+# 12:27:25 >  
 
-Identifier(s) Sepal.Length, Sepal.Width, Petal.Length, Petal.Width, Species 
contain reserved SQL characters and need to be quoted.
-Identifier(s) Sepal.Length, Sepal.Width, Petal.Length, Petal.Width, Species 
contain reserved SQL characters and need to be quoted.
-Identifier(s) year, month, day are reserved SQL keywords and need to be quoted.
+Identifier(s) Sepal.Length, Sepal.Width, Petal.Length, Petal.Width, Species 
contain uppercase or reserved SQL characters and need(s) to be quoted in 
queries.
+Identifier(s) Sepal.Length, Sepal.Width, Petal.Length, Petal.Width, Species 
contain uppercase or reserved SQL characters and need(s) to be quoted in 
queries.
+Identifier(s) some.dot contain uppercase or reserved SQL characters and 
need(s) to be quoted in queries.
+Identifier(s) year, month, day are reserved SQL keywords and need(s) to be 
quoted in queries.
+Identifier(s) sch.wide, comp.imp, yr.rnd, acs.k3, acs.46, acs.core, pct.resp, 
not.hsg, some.col, col.grad, grad.sch, avg.ed, api.stu contain uppercase or 
reserved SQL characters and need(s) to be quoted in queries.
+Identifier(s) full are reserved SQL keywords and need(s) to be quoted in 
queries.
 
-# 16:49:52 >  
-# 16:49:52 >  "Done."
-# 16:49:52 >  
+# 12:27:27 >  
+# 12:27:27 >  "Done."
+# 12:27:27 >  
 
diff --git a/clients/R/Tests/dbi.stable.out b/clients/R/Tests/dbi.stable.out
--- a/clients/R/Tests/dbi.stable.out
+++ b/clients/R/Tests/dbi.stable.out
@@ -1,25 +1,20 @@
 stdout of test 'dbi` in directory 'clients/R` itself:
 
 
-# 16:49:50 >  
-# 16:49:50 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=36003" "--set" 
"mapi_usock=/var/tmp/mtest-66827/.s.monetdb.36003" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/Users/hannes/monetdb-install/var/MonetDB/mTests_clients_R" "--set" 
"mal_listing=0" "--set" "embedded_r=yes"
-# 16:49:50 >  
+# 12:26:31 >  
+# 12:26:31 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=31372" "--set" 
"mapi_usock=/var/tmp/mtest-43570/.s.monetdb.31372" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/Users/hannes/monetdb-install/var/MonetDB/mTests_clients_R" "--set" 
"mal_listing=0" "--set" "embedded_r=yes"
+# 12:26:31 >  
 
-# MonetDB 5 server v11.22.0
-# This is an unreleased version
-# Serving database 'mTests_clients_R', using 4 threads
-# Compiled for x86_64-apple-darwin14.3.0/64bit with 64bit OIDs and 128bit 
integers dynamically linked
+# MonetDB 5 server v11.19.9 "Oct2014-SP2"
+# Serving database 'mTests_clients_R', using 8 threads
+# Compiled for x86_64-apple-darwin14.1.0/64bit with 64bit OIDs dynamically 
linked
 # Found 16.000 GiB available main-memory.
 # Copyright (c) 1993-July 2008 CWI.
 # Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved
 # Visit http://www.monetdb.org/ for further information
-# Listening for connection requests on 
mapi:monetdb://dakar.da.cwi.nl.hhk.dk:36003/
-# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-66827/.s.monetdb.36003
-# MonetDB/GIS module loaded
-# Start processing logs sql/sql_logs version 52200
-# Finished processing logs sql/sql_logs
+# Listening for connection requests on mapi:monetdb://herbert2.local:31372/
+# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-43570/.s.monetdb.31372
 # MonetDB/SQL module loaded
-# MonetDB/R   module loaded
 
 Ready.
 # SQL catalog created, loading sql scripts once
@@ -31,7 +26,7 @@ Ready.
 # loading sql script: 14_inet.sql
 # loading sql script: 15_querylog.sql
 # loading sql script: 16_tracelog.sql
-# loading sql script: 17_temporal.sql
+# loading sql script: 19_cluster.sql
 # loading sql script: 20_vacuum.sql
 # loading sql script: 21_dependency_functions.sql
 # loading sql script: 22_clients.sql
@@ -39,27 +34,19 @@ Ready.
 # loading sql script: 24_zorder.sql
 # loading sql script: 25_debug.sql
 # loading sql script: 26_sysmon.sql
-# loading sql script: 27_rejects.sql
 # loading sql script: 39_analytics.sql
-# loading sql script: 39_analytics_hge.sql
-# loading sql script: 40_geom.sql
 # loading sql script: 40_json.sql
-# loading sql script: 40_json_hge.sql
-# loading sql script: 41_md5sum.sql
+# loading sql script: 41_jsonstore.sql
 # loading sql script: 45_uuid.sql
-# loading sql script: 46_gsl.sql
-# loading sql script: 51_sys_schema_extension.sql
 # loading sql script: 75_storagemodel.sql
 # loading sql script: 80_statistics.sql
 # loading sql script: 80_udf.sql
-# loading sql script: 80_udf_hge.sql
 # loading sql script: 90_generator.sql
-# loading sql script: 90_generator_hge.sql
 # loading sql script: 99_system.sql
 
-# 16:49:50 >  
-# 16:49:50 >  "R" "--vanilla" "--slave" "--args" "36003"
-# 16:49:50 >  
+# 12:26:31 >  
+# 12:26:31 >  "R" "--vanilla" "--slave" "--args" "31372"
+# 12:26:31 >  
 
 [1] TRUE
 [1] TRUE
@@ -85,9 +72,12 @@ 1 150
 [1] TRUE
 [1] TRUE
 [1] TRUE
+[1] TRUE
+[1] TRUE
+[1] TRUE
 [1] "SUCCESS"
 
-# 16:49:52 >  
-# 16:49:52 >  "Done."
-# 16:49:52 >  
+# 12:26:33 >  
+# 12:26:33 >  "Done."
+# 12:26:33 >  
 
diff --git a/clients/R/Tests/dplyr.reqtests b/clients/R/Tests/dplyr.reqtests
--- a/clients/R/Tests/dplyr.reqtests
+++ b/clients/R/Tests/dplyr.reqtests
@@ -1,1 +1,2 @@
 install
+dbi
diff --git a/clients/R/Tests/survey.reqtests b/clients/R/Tests/survey.reqtests
--- a/clients/R/Tests/survey.reqtests
+++ b/clients/R/Tests/survey.reqtests
@@ -1,1 +1,2 @@
 install
+dbi
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to