Changeset: 7dddb6cca464 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7dddb6cca464
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: geo
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 =
"[email protected]"),
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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list