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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list