Changeset: 4ffcf78255fe for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4ffcf78255fe Added Files: sql/test/BugTracker-2014/Tests/uppercaseboolean.Bug-3519.sql sql/test/BugTracker-2014/Tests/uppercaseboolean.Bug-3519.stable.err sql/test/BugTracker-2014/Tests/uppercaseboolean.Bug-3519.stable.out Removed Files: sql/test/Skyserver/Skyserver_dropMath.sql sql/test/Skyserver/Skyserver_dropMs_functions.sql Modified Files: clients/R/MonetDB.R/DESCRIPTION clients/R/MonetDB.R/NEWS clients/R/MonetDB.R/R/monetdb.R common/stream/stream.c gdk/gdk_atoms.c sql/scripts/15_querylog.sql sql/scripts/16_tracelog.sql sql/scripts/22_clients.sql sql/scripts/25_debug.sql sql/scripts/26_sysmon.sql sql/scripts/75_storagemodel.sql sql/scripts/80_statistics.sql sql/scripts/99_system.sql sql/test/Skyserver/Skyserver_functions.sql sql/test/Skyserver/Skyserver_functions_v6.sql sql/test/Skyserver/Tests/Skyserver.SQL.py sql/test/Skyserver/Tests/Skyserver_v6.SQL.py Branch: generator Log Message:
Merge with default branch. diffs (truncated from 1341 to 300 lines): diff --git a/clients/R/MonetDB.R/DESCRIPTION b/clients/R/MonetDB.R/DESCRIPTION --- a/clients/R/MonetDB.R/DESCRIPTION +++ b/clients/R/MonetDB.R/DESCRIPTION @@ -1,6 +1,5 @@ Package: MonetDB.R -Version: 0.9.4 -Date: 2013-07-18 +Version: 0.9.5 Title: Connect MonetDB to R Authors@R: c(person("Hannes Muehleisen", role = c("aut", "cre"),email = "han...@cwi.nl"), person("Thomas Lumley", role = "ctb"), 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 @@ -1,3 +1,7 @@ +0.9.5 +- Fixed package date (Thanks, Dimitar) +- Added sys. schema name to internal queries, so SET SCHEMA xx would not break things (Thanks again, Dimitar) + 0.9.4 - dbWriteTable overhaul (thanks, Anthony) - Fix for dbListTables for MonetDB versions after Jan2014 diff --git a/clients/R/MonetDB.R/R/monetdb.R b/clients/R/MonetDB.R/R/monetdb.R --- a/clients/R/MonetDB.R/R/monetdb.R +++ b/clients/R/MonetDB.R/R/monetdb.R @@ -21,7 +21,7 @@ MonetR <- MonetDB <- MonetDBR <- MonetDB setMethod("dbGetInfo", "MonetDBDriver", def=function(dbObj, ...) list(name="MonetDBDriver", - driver.version="0.9.4", + driver.version="0.9.5", DBI.version="0.2-7", client.version=NA, max.connections=NA) @@ -135,7 +135,7 @@ setClass("MonetDBConnection", representa connenv="environment", fetchSize="integer", Id="integer")) setMethod("dbGetInfo", "MonetDBConnection", def=function(dbObj, ...) { - envdata <- dbGetQuery(dbObj, "SELECT name, value from env()") + envdata <- dbGetQuery(dbObj, "SELECT name, value from sys.env()") ll <- as.list(envdata$value) names(ll) <- envdata$name ll$name <- "MonetDBConnection" @@ -148,7 +148,7 @@ setMethod("dbDisconnect", "MonetDBConnec }) 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 tables join schemas on tables.schema_id=schemas.id" + q <- "select schemas.name as sn, tables.name as tn from 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) { @@ -185,7 +185,7 @@ setMethod("dbRollback", "MonetDBConnecti 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 columns join tables on \ + 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 }) diff --git a/common/stream/stream.c b/common/stream/stream.c --- a/common/stream/stream.c +++ b/common/stream/stream.c @@ -781,6 +781,26 @@ stream_gzread(stream *s, void *buf, size s->errnr = MNSTR_READ_ERROR; return -1; } +#ifdef WIN32 + /* on Windows when in text mode, convert \r\n line + * endings to \n */ + if (s->type == ST_ASCII) { + char *p1, *p2, *pe; + + p1 = buf; + pe = p1 + size; + while (p1 < pe && *p1 != '\r') + p1++; + p2 = p1; + while (p1 < pe) { + if (*p1 == '\r' && p1[1] == '\n') + size--; + else + *p2++ = *p1; + p1++; + } + } +#endif return (ssize_t) (size / elmsize); } return 0; @@ -996,6 +1016,26 @@ stream_bzread(stream *s, void *buf, size s->errnr = MNSTR_READ_ERROR; return -1; } +#ifdef WIN32 + /* on Windows when in text mode, convert \r\n line endings to + * \n */ + if (s->type == ST_ASCII) { + char *p1, *p2, *pe; + + p1 = buf; + pe = p1 + size; + while (p1 < pe && *p1 != '\r') + p1++; + p2 = p1; + while (p1 < pe) { + if (*p1 == '\r' && p1[1] == '\n') + size--; + else + *p2++ = *p1; + p1++; + } + } +#endif return size / elmsize; } diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c --- a/gdk/gdk_atoms.c +++ b/gdk/gdk_atoms.c @@ -450,9 +450,15 @@ bitFromStr(const char *src, int *len, bi } else if (p[0] == 't' && p[1] == 'r' && p[2] == 'u' && p[3] == 'e') { **dst = TRUE; p += 4; + } else if (p[0] == 'T' && p[1] == 'R' && p[2] == 'U' && p[3] == 'E') { + **dst = TRUE; + p += 4; } else if (p[0] == 'f' && p[1] == 'a' && p[2] == 'l' && p[3] == 's' && p[4] == 'e') { **dst = FALSE; p += 5; + } else if (p[0] == 'F' && p[1] == 'A' && p[2] == 'L' && p[3] == 'S' && p[4] == 'E') { + **dst = FALSE; + p += 5; } else if (p[0] == 'n' && p[1] == 'i' && p[2] == 'l') { p += 3; } else { diff --git a/sql/scripts/15_querylog.sql b/sql/scripts/15_querylog.sql --- a/sql/scripts/15_querylog.sql +++ b/sql/scripts/15_querylog.sql @@ -69,11 +69,6 @@ select qd.*, ql."start",ql."stop", ql.ar from sys.querylog_catalog() qd, sys.querylog_calls() ql where qd.id = ql.id and qd.owner = user; -update sys._tables - set system = true - where name in ('querylog_history', 'querylog_calls', 'querylog_catalog') - and schema_id = (select id from sys.schemas where name = 'sys'); - -- reset history for a particular user create procedure sys.querylog_empty() external name sql.querylog_empty; diff --git a/sql/scripts/16_tracelog.sql b/sql/scripts/16_tracelog.sql --- a/sql/scripts/16_tracelog.sql +++ b/sql/scripts/16_tracelog.sql @@ -34,7 +34,3 @@ create function sys.tracelog() external name sql.dump_trace; create view sys.tracelog as select * from sys.tracelog(); -update sys._tables - set system = true - where name = 'tracelog' - and schema_id = (select id from sys.schemas where name = 'sys'); diff --git a/sql/scripts/22_clients.sql b/sql/scripts/22_clients.sql --- a/sql/scripts/22_clients.sql +++ b/sql/scripts/22_clients.sql @@ -23,10 +23,6 @@ create function sys.sessions() returns table("user" string, "login" timestamp, "sessiontimeout" bigint, "lastcommand" timestamp, "querytimeout" bigint, "active" bool) external name sql.sessions; create view sys.sessions as select * from sys.sessions(); -update sys._tables - set system = true - where name = 'sessions' - and schema_id = (select id from sys.schemas where name = 'sys'); create procedure sys.shutdown(delay tinyint) external name sql.shutdown; diff --git a/sql/scripts/25_debug.sql b/sql/scripts/25_debug.sql --- a/sql/scripts/25_debug.sql +++ b/sql/scripts/25_debug.sql @@ -45,11 +45,6 @@ create function sys.environment() external name sql.sql_environment; create view sys.environment as select * from sys.environment(); -update sys._tables - set system = true - where name in ( 'environment', 'optimizers') - and schema_id = (select id from sys.schemas where name = 'sys'); - -- The BAT buffer pool overview create function sys.bbp () returns table (id int, name string, htype string, diff --git a/sql/scripts/26_sysmon.sql b/sql/scripts/26_sysmon.sql --- a/sql/scripts/26_sysmon.sql +++ b/sql/scripts/26_sysmon.sql @@ -32,10 +32,6 @@ returns table( external name sql.sysmon_queue; create view sys.queue as select * from sys.queue(); -update sys._tables - set system = true - where name = 'queue' - and schema_id = (select id from sys.schemas where name = 'sys'); -- operations to manipulate the state of havoc queries create procedure sys.pause(tag int) diff --git a/sql/scripts/75_storagemodel.sql b/sql/scripts/75_storagemodel.sql --- a/sql/scripts/75_storagemodel.sql +++ b/sql/scripts/75_storagemodel.sql @@ -49,10 +49,6 @@ create table sys.storagemodelinput( "reference" boolean,-- used as foreign key reference "sorted" boolean -- if set there is no need for an index ); -update sys._tables - set system = true - where name = 'storagemodelinput' - and schema_id = (select id from sys.schemas where name = 'sys'); -- this table can be adjusted to reflect the anticipated final database size -- The model input can be derived from the current database using @@ -181,8 +177,3 @@ as select "schema","table",max(count) as sum(imprints) as imprints, sum(case when sorted = false then 8 * count else 0 end) as auxillary from sys.storagemodel() group by "schema","table"; - -update sys._tables - set system = true - where name in ('tablestoragemodel', 'storagemodel', 'storage') - and schema_id = (select id from sys.schemas where name = 'sys'); diff --git a/sql/scripts/80_statistics.sql b/sql/scripts/80_statistics.sql --- a/sql/scripts/80_statistics.sql +++ b/sql/scripts/80_statistics.sql @@ -35,11 +35,6 @@ CREATE TABLE sys.statistics( maxval string, sorted boolean); -update sys._tables - set system = true - where name = 'statistics' - and schema_id = (select id from sys.schemas where name = 'sys'); - create procedure analyze() external name sql.analyze; diff --git a/sql/scripts/99_system.sql b/sql/scripts/99_system.sql --- a/sql/scripts/99_system.sql +++ b/sql/scripts/99_system.sql @@ -15,13 +15,13 @@ -- Copyright August 2008-2014 MonetDB B.V. -- All Rights Reserved. +-- only system functions until now create table systemfunctions (function_id) as (select id from functions) with data; grant select on systemfunctions to public; -update _tables - set system = true - where name = 'systemfunctions' - and schema_id = (select id from schemas where name = 'sys'); --- sofar only system schemas +-- only system tables until now +update _tables set system = true; + +-- only system schemas until now update schemas set system = true; diff --git a/sql/test/BugTracker-2014/Tests/uppercaseboolean.Bug-3519.sql b/sql/test/BugTracker-2014/Tests/uppercaseboolean.Bug-3519.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2014/Tests/uppercaseboolean.Bug-3519.sql @@ -0,0 +1,22 @@ +start transaction; +create table bug3519(a boolean); +-- works +insert into bug3519 values (true),(false),(TRUE),(FALSE); +insert into bug3519 values ('true'),('false'); +insert into bug3519 values (1),(0),(NULL),('1'),('0'); +COPY 5 RECORDS INTO bug3519 FROM stdin NULL as ''; +true +false +1 +0 + +select * from bug3519; + +-- does not work +insert into bug3519 values ('TRUE'),('FALSE'); +COPY 2 RECORDS INTO bug3519 FROM stdin; +TRUE +FALSE + +select * from bug3519; +rollback; diff --git a/sql/test/BugTracker-2014/Tests/uppercaseboolean.Bug-3519.stable.err b/sql/test/BugTracker-2014/Tests/uppercaseboolean.Bug-3519.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2014/Tests/uppercaseboolean.Bug-3519.stable.err @@ -0,0 +1,36 @@ +stderr of test 'uppercaseboolean.Bug-3519` in directory 'sql/test/BugTracker-2014` itself: + _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list