Changeset: 5f30a74df46f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5f30a74df46f
Removed Files:
buildtools/ChangeLog.Jan2014
clients/ChangeLog.Jan2014
clients/R/MonetDB.R/R/monetdb.R
clients/R/MonetDB.R/man/monetdbGetTransferredBytes.Rd
clients/R/MonetDB.R/src/mapi.c
clients/python2/ChangeLog.Jan2014
clients/python3/ChangeLog.Jan2014
debian/libmonetdb-client6.install
debian/libmonetdb-stream5.install
debian/libmonetdb10.install
gdk/ChangeLog.Jan2014
monetdb5/modules/kernel/alarm.h
monetdb5/modules/mal/Tests/radix.mal
monetdb5/modules/mal/Tests/radix.stable.err
monetdb5/modules/mal/Tests/radix.stable.out
monetdb5/tests/BugDay_2005-10-06_4.8/Tests/erroneous_multiplex.SF-899586.stable.err
monetdb5/tests/BugDay_2005-10-06_4.8/Tests/erroneous_multiplex.SF-899586.stable.out
monetdb5/tests/BugDay_2005-10-06_4.8/Tests/kill_0.SF-1314982.stable.err
monetdb5/tests/BugDay_2005-10-06_4.8/Tests/kill_0.SF-1314982.stable.out
monetdb5/tests/BugDay_2005-10-06_4.8/Tests/multiple_servers.SF-914113.MIL.bat
monetdb5/tests/BugDay_2005-10-06_4.8/Tests/multiple_servers.SF-914113.MIL.sh
monetdb5/tests/BugDay_2005-10-06_4.8/Tests/multiple_servers.SF-914113.stable.err
monetdb5/tests/BugDay_2005-10-06_4.8/Tests/multiple_servers.SF-914113.stable.out
monetdb5/tests/BugDay_2005-10-06_4.8/Tests/return_in_while.SF-905116.stable.err
monetdb5/tests/BugDay_2005-10-06_4.8/Tests/return_in_while.SF-905116.stable.out
monetdb5/tests/BugDay_2005-10-06_4.8/Tests/table_type.SF-916648.stable.err
monetdb5/tests/BugDay_2005-10-06_4.8/Tests/table_type.SF-916648.stable.out
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/BATpropcheck_after_outerjoin.SF-936469.mal
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/BATpropcheck_after_outerjoin.SF-936469.stable.err
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/BATpropcheck_after_outerjoin.SF-936469.stable.out
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/CTrefine_not_sorted.981374.mal
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/CTrefine_not_sorted.981374.stable.err
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/CTrefine_not_sorted.981374.stable.out
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/Confusing_error.SF-852659.stable.err
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/Confusing_error.SF-852659.stable.out
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/Recursive_module_load.SF-853867.stable.err
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/Recursive_module_load.SF-853867.stable.out
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/crash_destroy_commit.SF-1154552.stable.err
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/crash_destroy_commit.SF-1154552.stable.out
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/leftfetchjoin_void_oid.990857.mal
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/leftfetchjoin_void_oid.990857.stable.err
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/leftfetchjoin_void_oid.990857.stable.out
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/radix_normal_segfault.SF-1120748.mal
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/radix_normal_segfault.SF-1120748.stable.err
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/radix_normal_segfault.SF-1120748.stable.out
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/shutdown.994842.mal
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/shutdown.994842.stable.err
monetdb5/tests/BugDay_2005-10-06_4.9.3/Tests/shutdown.994842.stable.out
monetdb5/tests/BugReports/Tests/no.011.mal
monetdb5/tests/BugReports/Tests/no.011.stable.err
monetdb5/tests/BugReports/Tests/no.011.stable.out
monetdb5/tests/BugReports/Tests/no.024.mal
monetdb5/tests/BugReports/Tests/no.024.stable.err
monetdb5/tests/BugReports/Tests/no.024.stable.out
monetdb5/tests/BugReports/Tests/no.027.mal
monetdb5/tests/BugReports/Tests/no.027.stable.err
monetdb5/tests/BugReports/Tests/no.027.stable.out
monetdb5/tests/BugReports/Tests/no.035.mal
monetdb5/tests/BugReports/Tests/no.035.stable.err
monetdb5/tests/BugReports/Tests/no.035.stable.out
monetdb5/tests/BugReports/Tests/no.037.mal
monetdb5/tests/BugReports/Tests/no.037.stable.err
monetdb5/tests/BugReports/Tests/no.037.stable.out
monetdb5/tests/BugReports/Tests/no.070.mal
monetdb5/tests/BugReports/Tests/no.070.modules
monetdb5/tests/BugReports/Tests/no.070.stable.err
monetdb5/tests/BugReports/Tests/no.070.stable.out
monetdb5/tests/BugReports/Tests/no.073.stable.err
monetdb5/tests/BugReports/Tests/no.073.stable.out
monetdb5/tests/BugReports/Tests/no.073_s00.mal
monetdb5/tests/BugReports/Tests/no.073_s01.mal
monetdb5/tests/BugReports/Tests/no.089.modules
monetdb5/tests/BugReports/Tests/no.089.stable.err
monetdb5/tests/BugReports/Tests/no.089.stable.out
monetdb5/tests/BugReports/Tests/no.089_s00.mal
monetdb5/tests/BugReports/Tests/no.089_s01.mal
monetdb5/tests/BugReports/Tests/no.099.mal
monetdb5/tests/BugReports/Tests/no.099.stable.err
monetdb5/tests/BugReports/Tests/no.099.stable.out
monetdb5/tests/BugReports/Tests/no.106.mal
monetdb5/tests/BugReports/Tests/no.106.modules
monetdb5/tests/BugReports/Tests/no.106.prelude
monetdb5/tests/BugReports/Tests/no.106.stable.err
monetdb5/tests/BugReports/Tests/no.106.stable.out
monetdb5/tests/BugReports/Tests/no.106.w.bat
monetdb5/tests/BugReports/Tests/no.107.mal
monetdb5/tests/BugReports/Tests/no.107.modules
monetdb5/tests/BugReports/Tests/no.107.prelude
monetdb5/tests/BugReports/Tests/no.107.stable.err
monetdb5/tests/BugReports/Tests/no.107.stable.out
monetdb5/tests/BugReports/Tests/no.107.w.bat
monetdb5/tests/BugReports/Tests/no.117.mal
monetdb5/tests/BugReports/Tests/no.117.stable.err
monetdb5/tests/BugReports/Tests/no.117.stable.out
monetdb5/tests/BugReports/Tests/no.120.mal
monetdb5/tests/BugReports/Tests/no.120.stable.err
monetdb5/tests/BugReports/Tests/no.120.stable.out
monetdb5/tests/BugReports/Tests/no.125.mal
monetdb5/tests/BugReports/Tests/no.125.modules
monetdb5/tests/BugReports/Tests/no.125.stable.err
monetdb5/tests/BugReports/Tests/no.125.stable.out
monetdb5/tests/BugReports/Tests/no.125.stable.out.Windows
monetdb5/tests/BugReports/Tests/no.145.k100_unique1
monetdb5/tests/BugReports/Tests/no.145.k10_unique1
monetdb5/tests/BugReports/Tests/no.145.k10_unique2
monetdb5/tests/BugReports/Tests/no.145.mal
monetdb5/tests/BugReports/Tests/no.145.modules
monetdb5/tests/BugReports/Tests/no.145.prelude
monetdb5/tests/BugReports/Tests/no.145.stable.err
monetdb5/tests/BugReports/Tests/no.145.stable.out
monetdb5/tests/BugReports/Tests/no.146.mal
monetdb5/tests/BugReports/Tests/no.146.modules
monetdb5/tests/BugReports/Tests/no.146.stable.err
monetdb5/tests/BugReports/Tests/no.147.mal
monetdb5/tests/BugReports/Tests/no.147.modules
monetdb5/tests/BugReports/Tests/no.147.stable.err
monetdb5/tests/BugReports/Tests/no.147.stable.out
monetdb5/tests/BugReports/Tests/no.148.mal
monetdb5/tests/BugReports/Tests/no.148.modules
monetdb5/tests/BugReports/Tests/no.148.stable.err
monetdb5/tests/BugReports/Tests/no.148.stable.out
monetdb5/tests/BugReports/Tests/no.151.mal
monetdb5/tests/BugReports/Tests/no.151.stable.err
monetdb5/tests/BugReports/Tests/no.151.stable.out
monetdb5/tests/BugReports/Tests/no.156.mal
monetdb5/tests/BugReports/Tests/no.156.stable.err
monetdb5/tests/BugReports/Tests/no.156.stable.out
monetdb5/tests/BugReports/Tests/no.158.mal
monetdb5/tests/BugReports/Tests/no.158.modules
monetdb5/tests/BugReports/Tests/no.158.prelude
monetdb5/tests/BugReports/Tests/no.158.source.mal
monetdb5/tests/BugReports/Tests/no.158.stable.err
monetdb5/tests/BugReports/Tests/no.158.stable.out
monetdb5/tests/BugReports/Tests/no.160.mal
monetdb5/tests/BugReports/Tests/no.160.stable.err
monetdb5/tests/BugReports/Tests/no.160.stable.out
monetdb5/tests/BugReports/Tests/no.164.mal
monetdb5/tests/BugReports/Tests/no.164.modules
monetdb5/tests/BugReports/Tests/no.164.stable.err
monetdb5/tests/BugReports/Tests/no.164.stable.out
monetdb5/tests/BugReports/Tests/no.166.mal
monetdb5/tests/BugReports/Tests/no.166.modules
monetdb5/tests/BugReports/Tests/no.166.stable.err
monetdb5/tests/BugReports/Tests/no.166.stable.out
monetdb5/tests/BugReports/Tests/no.168.mal
monetdb5/tests/BugReports/Tests/no.168.modules
monetdb5/tests/BugReports/Tests/no.168.stable.err
monetdb5/tests/BugReports/Tests/no.168.stable.out
monetdb5/tests/BugReports/Tests/no.172.mal
monetdb5/tests/BugReports/Tests/no.172.stable.err
monetdb5/tests/BugReports/Tests/no.172.stable.out
monetdb5/tests/BugTracker/Tests/batcalc-convert_on_void_view.SF-1573060.mal
monetdb5/tests/BugTracker/Tests/batcalc-convert_on_void_view.SF-1573060.stable.err
monetdb5/tests/BugTracker/Tests/batcalc-convert_on_void_view.SF-1573060.stable.out
monetdb5/tests/BugTracker/Tests/merge-join_properties.SF-2952191.malC
monetdb5/tests/BugTracker/Tests/merge-join_properties.SF-2952191.stable.err
monetdb5/tests/BugTracker/Tests/merge-join_properties.SF-2952191.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.1010729.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.1010729.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.1010729.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.602271.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.602271.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.602271.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.602463.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.602463.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.602463.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.632575.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.632575.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.632575.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.642351.b.txt
monetdb5/tests/BugsViaSourgeforce/Tests/ID.642351.c.txt
monetdb5/tests/BugsViaSourgeforce/Tests/ID.642351.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.642351.modules
monetdb5/tests/BugsViaSourgeforce/Tests/ID.642351.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.642351.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.823516.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.823516.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.823516.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.823516.stable.out.64bit
monetdb5/tests/BugsViaSourgeforce/Tests/ID.853867.MIL.bat
monetdb5/tests/BugsViaSourgeforce/Tests/ID.853867.MIL.sh
monetdb5/tests/BugsViaSourgeforce/Tests/ID.853867.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.853867.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.866700.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.866700.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.905495c.MIL.bat
monetdb5/tests/BugsViaSourgeforce/Tests/ID.905495c.MIL.sh
monetdb5/tests/BugsViaSourgeforce/Tests/ID.905495c.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.905495c.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.914155.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.914155.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.914155.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.914935.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.914935.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.914935.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.914935.stable.out.64bit
monetdb5/tests/BugsViaSourgeforce/Tests/ID.916699.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.916699.modules
monetdb5/tests/BugsViaSourgeforce/Tests/ID.916699.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.916699.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.921814.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.921814.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.921814.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.928253.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.928253.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.928253.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.979809.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.979809.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.979809.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.979809.txt
monetdb5/tests/BugsViaSourgeforce/Tests/ID.986551.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.986551.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.986551.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.987455.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.987455.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.987455.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.991053.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.991053.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.991053.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.994842.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.994842.stable.out
monetdb5/tests/BugsViaSourgeforce/Tests/ID.996570.mal
monetdb5/tests/BugsViaSourgeforce/Tests/ID.996570.stable.err
monetdb5/tests/BugsViaSourgeforce/Tests/ID.996570.stable.out
monetdb5/tests/gdkTests/Tests/subgroup.mal
monetdb5/tests/gdkTests/Tests/subgroup.stable.err
monetdb5/tests/gdkTests/Tests/subgroup.stable.out
monetdb5/tests/suite_01/Tests/test_00.mal
monetdb5/tests/suite_01/Tests/test_00.stable.err
monetdb5/tests/suite_01/Tests/test_00.stable.out
monetdb5/tests/suite_01/Tests/test_00.stable.out.64bit
monetdb5/tests/suite_01/Tests/test_00.stable.out.Darwin
monetdb5/tests/suite_01/Tests/test_00.stable.out.Linux
monetdb5/tests/suite_01/Tests/test_00.stable.out.Linux.64bit
monetdb5/tests/suite_01/Tests/test_20.mal
monetdb5/tests/suite_01/Tests/test_20.stable.err
monetdb5/tests/suite_01/Tests/test_20.stable.out
monetdb5/tests/suite_01/Tests/test_30.mal
monetdb5/tests/suite_01/Tests/test_30.stable.err
monetdb5/tests/suite_01/Tests/test_30.stable.out
monetdb5/tests/suite_01/Tests/test_30.stable.out.64bit
monetdb5/tests/suite_01/Tests/test_30.stable.out.Darwin
monetdb5/tests/suite_01/Tests/test_30.stable.out.Linux
monetdb5/tests/suite_01/Tests/test_30.stable.out.Linux.64bit
monetdb5/tests/suite_01/Tests/test_50.mal
monetdb5/tests/suite_01/Tests/test_50.stable.err
monetdb5/tests/suite_01/Tests/test_50.stable.out
monetdb5/tests/suite_01/Tests/test_60.mal
monetdb5/tests/suite_01/Tests/test_60.stable.err
monetdb5/tests/suite_01/Tests/test_60.stable.out
monetdb5/tests/suite_01/Tests/test_60.stable.out.64bit
monetdb5/tests/suite_01/Tests/test_60.stable.out.Darwin
monetdb5/tests/suite_01/Tests/test_60.stable.out.Linux
monetdb5/tests/suite_01/Tests/test_60.stable.out.Linux.64bit
monetdb5/tests/suite_01/Tests/test_90.mal
monetdb5/tests/suite_01/Tests/test_90.modules
monetdb5/tests/suite_01/Tests/test_90.stable.err
monetdb5/tests/suite_01/Tests/test_90.stable.out
monetdb5/tests/suite_06/Tests/test_00.mal
monetdb5/tests/suite_06/Tests/test_00.modules
monetdb5/tests/suite_06/Tests/test_00.stable.err
monetdb5/tests/suite_06/Tests/test_00.stable.out
monetdb5/tests/suite_06/Tests/test_02.mal
monetdb5/tests/suite_06/Tests/test_02.stable.err
monetdb5/tests/suite_06/Tests/test_02.stable.out
tools/merovingian/ChangeLog.Jan2014
Modified Files:
configure.ag
gdk/gdk_imprints.c
Branch: geo
Log Message:
Fix merge problems.
Mostly files that weren't deleted.
diffs (truncated from 160887 to 300 lines):
diff --git a/buildtools/ChangeLog.Jan2014 b/buildtools/ChangeLog.Jan2014
deleted file mode 100644
--- a/buildtools/ChangeLog.Jan2014
+++ /dev/null
@@ -1,3 +0,0 @@
-# ChangeLog file for buildtools
-# This file is updated with Maddlog
-
diff --git a/clients/ChangeLog.Jan2014 b/clients/ChangeLog.Jan2014
deleted file mode 100644
--- a/clients/ChangeLog.Jan2014
+++ /dev/null
@@ -1,3 +0,0 @@
-# ChangeLog file for clients
-# This file is updated with Maddlog
-
diff --git a/clients/R/MonetDB.R/R/monetdb.R b/clients/R/MonetDB.R/R/monetdb.R
deleted file mode 100644
--- a/clients/R/MonetDB.R/R/monetdb.R
+++ /dev/null
@@ -1,958 +0,0 @@
-require(DBI)
-require(digest)
-
-C_LIBRARY <- "MonetDB.R"
-
-.onLoad <- function(lib, pkg) {
- library.dynam( C_LIBRARY, pkg, lib )
- .Call("mapiInit", PACKAGE=C_LIBRARY)
-}
-
-# Make S4 aware of S3 classes
-setOldClass(c("sockconn", "connection", "monetdb_mapi_conn"))
-
-### MonetDBDriver
-setClass("MonetDBDriver", representation("DBIDriver"))
-
-# allow instantiation of this driver with MonetDB to allow existing programs
to work
-MonetR <- MonetDB <- MonetDBR <- MonetDB.R <- function() {
- new("MonetDBDriver")
-}
-
-setMethod("dbGetInfo", "MonetDBDriver", def=function(dbObj, ...)
- list(name="MonetDBDriver",
- driver.version="0.9.5",
- DBI.version="0.2-7",
- client.version=NA,
- max.connections=NA)
-)
-
-# shorthand for connecting to the DB, very handy, e.g. dbListTables(mc("acs"))
-mc <- function(dbname="demo", user="monetdb", password="monetdb",
host="localhost", port=50000L,
- timeout=86400L, wait=FALSE, language="sql", ...) {
-
- dbConnect(MonetDB.R(), dbname, user, password, host, port, timeout, wait,
language, ...)
-}
-
-mq <- function(dbname, query, ...) {
- conn <- mc(dbname, ...)
- res <- dbGetQuery(conn, query)
- dbDisconnect(conn)
- return(res)
-}
-
-setMethod("dbConnect", "MonetDBDriver", def=function(drv, dbname="demo",
user="monetdb",
- password="monetdb",
host="localhost", port=50000L, timeout=86400L, wait=FALSE, language="sql",
- ..., url="") {
-
- if (substring(url, 1, 10) == "monetdb://") {
- dbname <- url
- }
- timeout <- as.integer(timeout)
-
- if (substring(dbname, 1, 10) == "monetdb://") {
- rest <- substring(dbname, 11, nchar(dbname))
- # split at /, so we get the dbname
- slashsplit <- strsplit(rest, "/", fixed=TRUE)
- hostport <- slashsplit[[1]][1]
- dbname <- slashsplit[[1]][2]
-
- # count the number of : in the string
- ndc <- nchar(hostport) - nchar(gsub(":","",hostport,fixed=T))
- if (ndc == 0) {
- host <- hostport
- }
- if (ndc == 1) { # ipv4 case, any ipv6 address has more than one :
- hostportsplit <- strsplit(hostport, ":", fixed=TRUE)
- host <- hostportsplit[[1]][1]
- port <- hostportsplit[[1]][2]
- }
- if (ndc > 1) { # ipv6 case, now we only need to check for ]:
- if (length(grep("]:", hostport, fixed=TRUE)) == 1) { # ipv6 with port
number
- hostportsplit <- strsplit(hostport, "]:", fixed=TRUE)
- host <- substring(hostportsplit[[1]][1],2)
- port <- hostportsplit[[1]][2]
- }
- else {
- host <- hostport
- }
- }
- }
- # this is important, otherwise we'll trip an assertion
- port <- as.integer(port)
-
- # validate port number
- if (length(port) != 1 || port < 1 || port > 65535) {
- stop("Illegal port number ",port)
- }
-
- if (getOption("monetdb.debug.mapi", F)) message("II: Connecting to MonetDB
on host ", host, " at "
- ,"port ", port, " to DB ",
dbname, " with user ", user, " and a non-printed password, timeout is "
- , timeout, " seconds.")
- socket <- FALSE
- if (wait) {
- repeat {
- continue <- FALSE
- tryCatch ({
- # open socket with 5-sec timeout so we can check whether everything
works
- socket <- socket <<- .Call("mapiConnect", host, port, 5,
PACKAGE=C_LIBRARY)
- # authenticate
- .monetAuthenticate(socket, dbname, user, password, language=language)
- # test the connection to make sure it works before
- .Call("mapiDisconnect", socket, PACKAGE=C_LIBRARY)
- break
- }, error = function(e) {
- if ("connection" %in% class(socket)) {
- .Call("mapiDisconnect", socket, PACKAGE=C_LIBRARY)
- }
- message("Server not ready(", e$message, "), retrying (ESC or CTRL+C to
abort)")
- Sys.sleep(1)
- continue <<- TRUE
- })
- }
- }
-
- # make new socket with user-specified timeout
- socket <- .Call("mapiConnect", host, port, timeout, PACKAGE=C_LIBRARY)
- .monetAuthenticate(socket, dbname, user, password, language=language)
- connenv <- new.env(parent=emptyenv())
- connenv$lock <- 0
- connenv$deferred <- list()
- connenv$exception <- list()
-
- conn <- new("MonetDBConnection", socket=socket, connenv=connenv, Id=-1L)
- if (getOption("monetdb.sequential", F)) {
- message("MonetDB: Switching to single-threaded query execution.")
- dbSendQuery(conn, "set optimizer='sequential_pipe'")
- }
-
- return(conn)
-},
-valueClass="MonetDBConnection")
-
-
-### MonetDBConnection
-setClass("MonetDBConnection", representation("DBIConnection",
socket="externalptr",
- connenv="environment",
fetchSize="integer", Id="integer"))
-
-setMethod("dbGetInfo", "MonetDBConnection", def=function(dbObj, ...) {
- envdata <- dbGetQuery(dbObj, "SELECT name, value from sys.env()")
- ll <- as.list(envdata$value)
- names(ll) <- envdata$name
- ll$name <- "MonetDBConnection"
- return(ll)
-})
-
-setMethod("dbDisconnect", "MonetDBConnection", def=function(conn, ...) {
- .Call("mapiDisconnect", conn@socket, PACKAGE=C_LIBRARY)
- return(invisible(TRUE))
-})
-
-setMethod("dbListTables", "MonetDBConnection", def=function(conn, ...,
sys_tables=F, schema_names=F, quote=F) {
- q <- "select schemas.name as sn, tables.name as tn from sys.tables join
sys.schemas on tables.schema_id=schemas.id"
- if (!sys_tables) q <- paste0(q, " where tables.system=false")
- df <- dbGetQuery(conn, q)
- if (quote) {
- df$tn <- paste0("\"", df$tn, "\"")
- }
- res <- df$tn
- if (schema_names) {
- if (quote) {
- df$sn <- paste0("\"", df$sn, "\"")
- }
- res <- paste0(df$sn, ".", df$tn)
- }
- return(as.character(res))
-})
-
-if (is.null(getGeneric("dbTransaction"))) setGeneric("dbTransaction",
function(conn, ...)
- standardGeneric("dbTransaction"))
-
-setMethod("dbTransaction", signature(conn="MonetDBConnection"),
def=function(conn, ...) {
- dbSendQuery(conn, "START TRANSACTION")
- invisible(TRUE)
-})
-
-setMethod("dbCommit", "MonetDBConnection", def=function(conn, ...) {
- dbSendQuery(conn, "COMMIT")
- invisible(TRUE)
-})
-
-setMethod("dbRollback", "MonetDBConnection", def=function(conn, ...) {
- dbSendQuery(conn, "ROLLBACK")
- invisible(TRUE)
-})
-
-setMethod("dbListFields", "MonetDBConnection", def=function(conn, name, ...) {
- if (!dbExistsTable(conn, name))
- stop(paste0("Unknown table: ", name));
- df <- dbGetQuery(conn, paste0("select columns.name as name from sys.columns
join sys.tables on \
- columns.table_id=tables.id where tables.name='", name, "';"))
- df$name
-})
-
-setMethod("dbExistsTable", "MonetDBConnection", def=function(conn, name, ...) {
- #TODO: make this work with more cases
- tolower(name) %in% tolower(dbListTables(conn,sys_tables=T))
-})
-
-setMethod("dbGetException", "MonetDBConnection", def=function(conn, ...) {
- conn@connenv$exception
-})
-
-setMethod("dbReadTable", "MonetDBConnection", def=function(conn, name, ...) {
- if (!dbExistsTable(conn, name))
- stop(paste0("Unknown table: ", name));
- dbGetQuery(conn, paste0("SELECT * FROM ", name))
-})
-
-setMethod("dbGetQuery", signature(conn="MonetDBConnection",
statement="character"),
- def=function(conn, statement, ...) {
-
- res <- dbSendQuery(conn, statement, ...)
- data <- fetch(res, -1)
- dbClearResult(res)
- return(data)
- })
-
-# This one does all the work in this class
-setMethod("dbSendQuery", signature(conn="MonetDBConnection",
statement="character"),
- def=function(conn, statement, ..., list=NULL, async=FALSE) {
-
- if(!is.null(list) || length(list(...))){
- if (length(list(...))) statement <- .bindParameters(statement,
list(...))
- if (!is.null(list)) statement <- .bindParameters(statement, list)
- }
- conn@connenv$exception <- list()
- env <- NULL
- if (getOption("monetdb.debug.query", F)) message("QQ: '",
statement, "'")
- resp <- .mapiParseResponse(.mapiRequest(conn, paste0("s",
statement, ";"), async=async))
-
- env <- new.env(parent=emptyenv())
-
- if (resp$type == Q_TABLE) {
- # we have to pass this as an environment to make conn object
available to result for fetching
- env$success = TRUE
- env$conn <- conn
- env$data <- resp$tuples
- resp$tuples <- NULL # clean up
- env$info <- resp
- env$delivered <- 0
- env$query <- statement
- }
- if (resp$type == Q_UPDATE || resp$type == Q_CREATE || resp$type ==
MSG_ASYNC_REPLY) {
- env$success = TRUE
- env$conn <- conn
- env$query <- statement
- env$info <- resp
- }
- if (resp$type == MSG_MESSAGE) {
- env$success = FALSE
- env$conn <- conn
- env$query <- statement
- env$info <- resp
- env$message <- resp$message
- }
-
- if (!env$success) {
- sp <- strsplit(env$message, "!", fixed=T)[[1]]
- # truncate statement to not hide actual error message
- if (nchar(statement) > 100) { statement <-
paste0(substring(statement, 1, 100), "...") }
- if (length(sp) == 3) {
- errno <- sp[[2]]
- errmsg <- sp[[3]]
- conn@connenv$exception <- list(errNum=errno, errMsg=errmsg)
- stop("Unable to execute statement '", statement, "'.\nServer
says '", errmsg, "' [#",
- errno, "].")
- }
- else {
- conn@connenv$exception <- list(errNum=NA, errMsg=env$message)
- stop("Unable to execute statement '", statement, "'.\nServer
says '", env$message, "'.")
- }
- }
-
- return(new("MonetDBResult", env=env))
- })
-
-
-# adapted from RMonetDB, very useful...
-setMethod("dbWriteTable", "MonetDBConnection", def=function(conn, name, value,
overwrite=FALSE,
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list