Changeset: b01446d8caa7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b01446d8caa7
Modified Files:
clients/R/MonetDB.R/NEWS
tools/embedded/Tests/dbi.R
tools/embedded/Tests/lowlevel.R
tools/embedded/embedded.c
tools/embedded/rpackage/configure.win
Branch: embedded-java
Log Message:
Merge with embedded branch
diffs (130 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,10 +4,10 @@ 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 (Thanks, Anthony)
+- Fixes for dplyr backend
- 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)
+- Fix for dbConnect(), it ignored the url parameter somehow, which broke some
sqlsurvey
- Added col.names argument to monet.read.csv()
- Added lower.case.names argument to monet.read.csv() in case users want to
avoid quoting (a bit)
- Fix for dbConnect() that should be more robust to invalid connections
@@ -17,9 +17,9 @@ 1.0.0
- Fixed a bug in monetdb.read.csv for multiple CSV files without headers
- dplyr src_monetdb now has a con parameter to pass an existing DBI connection
- Fixed a bug when running in a non-UTF8 locale (Thanks, Marcis)
-- Fixed a bug when dbWriteTable would not adhere to transactional semantics
(Thanks, Anthony)
-- Added transactions to monetdb.read.csv so no empty tables are left over
(Thanks, Anthony)
-- Fixed != comparisions in dplyr (Thanks, Anthony)
+- Fixed a bug when dbWriteTable would not adhere to transactional semantics
+- Added transactions to monetdb.read.csv so no empty tables are left over
+- Fixed != comparisions in dplyr (Thanks, David)
0.9.7
- Fixed crash on Windows (Sorry, everyone)
diff --git a/tools/embedded/Tests/dbi.R b/tools/embedded/Tests/dbi.R
--- a/tools/embedded/Tests/dbi.R
+++ b/tools/embedded/Tests/dbi.R
@@ -1,8 +1,9 @@
basedir <- Sys.getenv("TSTTRGDIR")
-if (basedir == "") {
- stop("Need TSTTRGDIR environment vars")
+if (basedir != "") {
+ library(MonetDBLite, quietly=T, lib.loc=file.path(basedir, "rlibdir"))
+} else {
+ library(MonetDBLite)
}
-library(MonetDBLite, quietly=T, lib.loc=file.path(basedir, "rlibdir"))
library(MonetDB.R)
library(testthat)
@@ -258,7 +259,7 @@ test_that("dis/re-connect", {
expect_false(dbIsValid(con))
expect_error(dbSendQuery(con, "SELECT 1"))
# this throws a warning because we cannot re-initialize embedded monetdb
- expect_warning(con <- dbConnect(MonetDB.R::MonetDB.R(),
embedded=tempdir()))
+ expect_warning(con <- dbConnect(MonetDB.R::MonetDB.R(),
embedded="/tmp"))
res <- dbSendQuery(con, "SELECT 1")
expect_true(dbIsValid(res))
})
diff --git a/tools/embedded/Tests/lowlevel.R b/tools/embedded/Tests/lowlevel.R
--- a/tools/embedded/Tests/lowlevel.R
+++ b/tools/embedded/Tests/lowlevel.R
@@ -1,9 +1,11 @@
+library(testthat)
+
basedir <- Sys.getenv("TSTTRGDIR")
-if (basedir == "") {
- stop("Need TSTTRGDIR environment vars")
+if (basedir != "") {
+ library(MonetDBLite, quietly=T, lib.loc=file.path(basedir, "rlibdir"))
+} else {
+ library(MonetDBLite)
}
-library(MonetDBLite, quietly=T, lib.loc=file.path(basedir, "rlibdir"))
-library(testthat)
test_that("db starts up", {
expect_error(monetdb_embedded_startup("/dev/null"))
@@ -79,6 +81,18 @@ test_that("rollback with errors", {
monetdb_embedded_disconnect(con)
})
+test_that("transaction immediately after rollback", {
+ con <- monetdb_embedded_connect()
+ monetdb_embedded_query(con, "START TRANSACTION")
+ res <- monetdb_embedded_query(con, "SELECT 42")
+ expect_equal(res$type, 1)
+ monetdb_embedded_query(con, "ROLLBACK")
+ monetdb_embedded_query(con, "START TRANSACTION")
+ res <- monetdb_embedded_query(con, "SELECT 42")
+ expect_equal(res$type, 1)
+ monetdb_embedded_disconnect(con)
+})
+
test_that("pointless rollback/commit", {
con <- monetdb_embedded_connect()
expect_equal(monetdb_embedded_query(con, "SELECT 1")$type, 1)
diff --git a/tools/embedded/embedded.c b/tools/embedded/embedded.c
--- a/tools/embedded/embedded.c
+++ b/tools/embedded/embedded.c
@@ -174,6 +174,7 @@ char* monetdb_query(void* conn, char* qu
while (*query == ' ' || *query == '\t') query++;
if (strncasecmp(query, "START", 5) == 0) { // START TRANSACTION
m->session->auto_commit = 0;
+ m->session->status = 0;
}
else if (strncasecmp(query, "ROLLBACK", 8) == 0) {
m->session->status = -1;
@@ -185,7 +186,7 @@ char* monetdb_query(void* conn, char* qu
else if (strncasecmp(query, "SHIBBOLEET", 10) == 0) {
res =
GDKstrdup("\x46\x6f\x72\x20\x69\x6d\x6d\x65\x64\x69\x61\x74\x65\x20\x74\x65\x63\x68\x6e\x69\x63\x61\x6c\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x63\x61\x6c\x6c\x20\x2b\x33\x31\x20\x32\x30\x20\x35\x39\x32\x20\x34\x30\x33\x39");
}
- else if (m->session->status < 0 && m->session->auto_commit ==0){
+ else if (m->session->status < 0 && m->session->auto_commit == 0){
res = GDKstrdup("Current transaction is aborted (please
ROLLBACK)");
} else {
res = (*SQLstatementIntern_ptr)(c, &query, "name", 1, 0,
(res_table **) result);
diff --git a/tools/embedded/rpackage/configure.win
b/tools/embedded/rpackage/configure.win
--- a/tools/embedded/rpackage/configure.win
+++ b/tools/embedded/rpackage/configure.win
@@ -14,11 +14,11 @@ cd src
make
make install
cd tools/embedded
-cp libembedded_la-embedded.lo libmonetdb5.o
-cp libembedded.la libembedded.a
+cp libembeddedr_la-embeddedr.lo libmonetdb5.o
+cp libembeddedr.la libembeddedr.a
cp ../../sql/backends/monet5/lib_sql.la ../../sql/backends/monet5/libsql.a
-"${R_HOME}/bin/R.exe" CMD SHLIB -o libmonetdb5.dll libmonetdb5.o -L.
-L../../sql/backends/monet5 -Wl,--whole-archive -lembedded -lsql
-Wl,--no-whole-archive -lpthread -lpsapi -lws2_32 -static-libgcc
-static-libstdc++ -Wl,--export-all-symbols -Wl,--allow-multiple-definition
-Lwindows/pcre-8.37/libs/x64/ -lpcre
+"${R_HOME}/bin/R.exe" CMD SHLIB -o libmonetdb5.dll libmonetdb5.o -L.
-L../../sql/backends/monet5 -Wl,--whole-archive -lembeddedr -lsql
-Wl,--no-whole-archive -lpthread -lpsapi -lws2_32 -static-libgcc
-static-libstdc++ -Wl,--export-all-symbols -Wl,--allow-multiple-definition
-Lwindows/pcre-8.37/libs/x64/ -lpcre
cd ../../..
mkdir -p $R_PACKAGE_DIR/libs/x64
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list