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
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to