Changeset: fd93e342de41 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fd93e342de41
Added Files:
sql/jdbc/tests/Tests/Test_CisValid.stable.err
sql/jdbc/tests/Tests/Test_CisValid.stable.out
sql/test/BugTracker-2016/Tests/rename_exps.Bug-3974.stable.out.32bit
Modified Files:
NT/monetdb_config.h.in
clients/R/MonetDB.R/R/dbi.R
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows.single
monetdb5/mal/mal_runtime.c
monetdb5/optimizer/opt_constants.c
sql/backends/monet5/sql_upgrades.c
sql/server/sql_parser.y
sql/storage/store.c
sql/test/BugTracker-2013/Tests/binary_copy_into.Bug-3345.SQL.py
sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out.32bit
sql/test/Tests/systemfunctions.stable.out
sql/test/Tests/systemfunctions.stable.out.int128
sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-chain/Tests/check.stable.out
sql/test/emptydb-upgrade-chain/Tests/check.stable.out.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-hge/Tests/check.stable.out.int128
sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade/Tests/check.stable.out
sql/test/emptydb-upgrade/Tests/check.stable.out.int128
sql/test/emptydb-upgrade/Tests/upgrade.stable.out
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.int128
sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out
sql/test/testdb-upgrade/Tests/upgrade.stable.out
sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
testing/Mtest.py.in
Branch: jit
Log Message:
Merge with default
diffs (truncated from 118399 to 300 lines):
diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in
--- a/NT/monetdb_config.h.in
+++ b/NT/monetdb_config.h.in
@@ -1135,11 +1135,11 @@ typedef __uint128_t uhge;
#ifdef HAVE_EMBEDDED_R
#define _MSC_EXTENSIONS 1
#undef HAVE_CTIME_R
-#define PROMPT1 "\001\001\n" /* prompt: ready for new query
*/
-#define PROMPT2 "\001\002\n" /* prompt: more data needed */
#else
#define HAVE_MAPI 1
#endif
+#define PROMPT1 "\001\001\n" /* prompt: ready for new query
*/
+#define PROMPT2 "\001\002\n" /* prompt: more data needed */
#endif /* _SEEN_MONETDB_CONFIG_H */
diff --git a/clients/R/MonetDB.R/R/dbi.R b/clients/R/MonetDB.R/R/dbi.R
--- a/clients/R/MonetDB.R/R/dbi.R
+++ b/clients/R/MonetDB.R/R/dbi.R
@@ -524,7 +524,7 @@ setMethod("dbWriteTable", signature(conn
if (csvdump) {
tmp <- tempfile(fileext = ".csv")
write.table(value, tmp, sep = ",", quote = TRUE, row.names = FALSE,
col.names = FALSE, na="", fileEncoding = "UTF-8")
- dbSendQuery(conn, paste0("COPY INTO ", qname, " FROM '", tmp, "' USING
DELIMITERS ',','\\n','\"' NULL AS ''"))
+ dbSendQuery(conn, paste0("COPY INTO ", qname, " FROM '",
encodeString(tmp), "' USING DELIMITERS ',','\\n','\"' NULL AS ''"))
file.remove(tmp)
} else {
vins <- paste("(", paste(rep("?", length(value)), collapse=', '), ")",
sep='')
@@ -924,7 +924,7 @@ monet.read.csv <- monetdb.read.csv <- fu
delimspec <- paste0("USING DELIMITERS '", delim, "','", newline, "','",
quote, "'")
for(i in seq_along(files)) {
- thefile <- normalizePath(files[i])
+ thefile <- encodeString(normalizePath(files[i]))
dbSendUpdate(conn, paste("COPY", if(header) "OFFSET 2", "INTO",
tablename, "FROM", paste("'", thefile, "'", sep=""), delimspec, "NULL
as", paste("'",
na.strings[1], "'", sep=""), if(locked) "LOCKED", if(best.effort) "BEST
EFFORT"))
diff --git
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows.single
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows.single
---
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows.single
+++
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows.single
@@ -56,7 +56,7 @@ Ready.
% def # name
% clob # type
% 449 # length
-[
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.garbageCollector();"
]
+[
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.pushselect();optimizer.aliases();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.garbageCollector();"
]
#explain copy into ttt from 'a:\tmp/xyz';
% .explain # table_name
% mal # name
@@ -88,7 +88,7 @@ end user.s4_1;
% def # name
% clob # type
% 472 # length
-[
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.sql_append();optimizer.garbageCollector();"
]
+[
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.pushselect();optimizer.aliases();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.sql_append();optimizer.garbageCollector();"
]
#explain copy into ttt from 'Z:/tmp/xyz';
% .explain # table_name
% mal # name
diff --git a/monetdb5/mal/mal_runtime.c b/monetdb5/mal/mal_runtime.c
--- a/monetdb5/mal/mal_runtime.c
+++ b/monetdb5/mal/mal_runtime.c
@@ -229,9 +229,11 @@ getBatSpace(BAT *b){
if( b == NULL)
return 0;
space += BATcount(b) * b->T->width;
- if( b->T->vheap) space += heapinfo(b->T->vheap, abs(b->batCacheid));
- if(b->T) space += hashinfo(b->T->hash, abs(b->batCacheid));
- space += IMPSimprintsize(b);
+ if( space){
+ if( b->T->vheap) space += heapinfo(b->T->vheap,
abs(b->batCacheid));
+ if( b->T) space += hashinfo(b->T->hash, abs(b->batCacheid));
+ space += IMPSimprintsize(b);
+ }
return space;
}
diff --git a/monetdb5/optimizer/opt_constants.c
b/monetdb5/optimizer/opt_constants.c
--- a/monetdb5/optimizer/opt_constants.c
+++ b/monetdb5/optimizer/opt_constants.c
@@ -9,8 +9,7 @@
/*
* Constant Duplicate Removal
* The compilers may generate an abundance of constants on
- * the stack. This simple optimizer re-organizes performs a complete
- * job to use constants only once.
+ * the stack. This simple optimizer merges them into a single reference.
* This makes it easier to search for statement duplicates
* and alias their variables.
*/
@@ -79,11 +78,12 @@ OPTconstantsImplementation(Client cntxt,
}
}
- for (i = 0; i < mb->stop; i++){
- p= getInstrPtr(mb,i);
- for (k=0; k < p->argc; k++)
- getArg(p,k) = alias[getArg(p,k)];
- }
+ if( actions)
+ for (i = 0; i < mb->stop; i++){
+ p= getInstrPtr(mb,i);
+ for (k=0; k < p->argc; k++)
+ getArg(p,k) = alias[getArg(p,k)];
+ }
GDKfree(alias);
GDKfree(cst);
GDKfree(index);
diff --git a/sql/backends/monet5/sql_upgrades.c
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -1523,6 +1523,201 @@ sql_update_geom(Client c, mvc *sql, int
return err; /* usually MAL_SUCCEED */
}
+static str
+sql_update_default(Client c, mvc *sql)
+{
+ size_t bufsize = 10240, pos = 0;
+ char *buf = GDKmalloc(bufsize), *err = NULL;
+ ValRecord *schvar = stack_get_var(sql, "current_schema");
+ char *schema = NULL;
+ sql_schema *s;
+
+ s = mvc_bind_schema(sql, "sys");
+ if (schvar)
+ schema = strdup(schvar->val.sval);
+ pos += snprintf(buf + pos, bufsize - pos, "set schema \"sys\";\n");
+
+ {
+ sql_table *t;
+
+ if ((t = mvc_bind_table(sql, s, "storagemodel")) != NULL)
+ t->system = 0;
+ if ((t = mvc_bind_table(sql, s, "storagemodelinput")) != NULL)
+ t->system = 0;
+ if ((t = mvc_bind_table(sql, s, "storage")) != NULL)
+ t->system = 0;
+ if ((t = mvc_bind_table(sql, s, "tablestoragemodel")) != NULL)
+ t->system = 0;
+ }
+
+ /* 18_index.sql */
+ pos += snprintf(buf + pos, bufsize - pos,
+ "create procedure sys.createorderindex(sys string, tab
string, col string)\n"
+ "external name sql.createorderindex;\n"
+ "create procedure sys.droporderindex(sys string, tab
string, col string)\n"
+ "external name sql.droporderindex;\n");
+
+ /* 75_storagemodel.sql */
+ pos += snprintf(buf + pos, bufsize - pos,
+ "drop view sys.tablestoragemodel;\n"
+ "drop view sys.storagemodel;\n"
+ "drop function sys.storagemodel();\n"
+ "drop procedure sys.storagemodelinit();\n"
+ "drop function sys.\"storage\"(string, string,
string);\n"
+ "drop function sys.\"storage\"(string, string);\n"
+ "drop function sys.\"storage\"(string);\n"
+ "drop view sys.\"storage\";\n"
+ "drop function sys.\"storage\"();\n"
+ "alter table sys.storagemodelinput add column
\"orderidx\" bigint;\n"
+ "create function sys.\"storage\"()\n"
+ "returns table (\n"
+ " \"schema\" string,\n"
+ " \"table\" string,\n"
+ " \"column\" string,\n"
+ " \"type\" string,\n"
+ " \"mode\" string,\n"
+ " location string,\n"
+ " \"count\" bigint,\n"
+ " typewidth int,\n"
+ " columnsize bigint,\n"
+ " heapsize bigint,\n"
+ " hashes bigint,\n"
+ " phash boolean,\n"
+ " \"imprints\" bigint,\n"
+ " sorted boolean,\n"
+ " orderidx bigint\n"
+ ")\n"
+ "external name sql.\"storage\";\n"
+ "create view sys.\"storage\" as select * from
sys.\"storage\"();\n"
+ "create function sys.\"storage\"( sname string)\n"
+ "returns table (\n"
+ " \"schema\" string,\n"
+ " \"table\" string,\n"
+ " \"column\" string,\n"
+ " \"type\" string,\n"
+ " \"mode\" string,\n"
+ " location string,\n"
+ " \"count\" bigint,\n"
+ " typewidth int,\n"
+ " columnsize bigint,\n"
+ " heapsize bigint,\n"
+ " hashes bigint,\n"
+ " phash boolean,\n"
+ " \"imprints\" bigint,\n"
+ " sorted boolean,\n"
+ " orderidx bigint\n"
+ ")\n"
+ "external name sql.\"storage\";\n"
+ "create function sys.\"storage\"( sname string, tname
string)\n"
+ "returns table (\n"
+ " \"schema\" string,\n"
+ " \"table\" string,\n"
+ " \"column\" string,\n"
+ " \"type\" string,\n"
+ " \"mode\" string,\n"
+ " location string,\n"
+ " \"count\" bigint,\n"
+ " typewidth int,\n"
+ " columnsize bigint,\n"
+ " heapsize bigint,\n"
+ " hashes bigint,\n"
+ " phash boolean,\n"
+ " \"imprints\" bigint,\n"
+ " sorted boolean,\n"
+ " orderidx bigint\n"
+ ")\n"
+ "external name sql.\"storage\";\n"
+ "create function sys.\"storage\"( sname string, tname
string, cname string)\n"
+ "returns table (\n"
+ " \"schema\" string,\n"
+ " \"table\" string,\n"
+ " \"column\" string,\n"
+ " \"type\" string,\n"
+ " \"mode\" string,\n"
+ " location string,\n"
+ " \"count\" bigint,\n"
+ " typewidth int,\n"
+ " columnsize bigint,\n"
+ " heapsize bigint,\n"
+ " hashes bigint,\n"
+ " phash boolean,\n"
+ " \"imprints\" bigint,\n"
+ " sorted boolean,\n"
+ " orderidx bigint\n"
+ ")\n"
+ "external name sql.\"storage\";\n"
+ "create procedure sys.storagemodelinit()\n"
+ "begin\n"
+ " delete from sys.storagemodelinput;\n"
+ " insert into sys.storagemodelinput\n"
+ " select X.\"schema\", X.\"table\", X.\"column\",
X.\"type\", X.typewidth, X.count, 0, X.typewidth, false, X.sorted, X.orderidx
from sys.\"storage\"() X;\n"
+ " update sys.storagemodelinput\n"
+ " set reference = true\n"
+ " where concat(concat(\"schema\",\"table\"),
\"column\") in (\n"
+ " SELECT concat( concat(\"fkschema\".\"name\",
\"fktable\".\"name\"), \"fkkeycol\".\"name\" )\n"
+ " FROM \"sys\".\"keys\" AS \"fkkey\",\n"
+ " \"sys\".\"objects\" AS \"fkkeycol\",\n"
+ " \"sys\".\"tables\" AS \"fktable\",\n"
+ " \"sys\".\"schemas\" AS \"fkschema\"\n"
+ " WHERE \"fktable\".\"id\" =
\"fkkey\".\"table_id\"\n"
+ " AND \"fkkey\".\"id\" = \"fkkeycol\".\"id\"\n"
+ " AND \"fkschema\".\"id\" =
\"fktable\".\"schema_id\"\n"
+ " AND \"fkkey\".\"rkey\" > -1);\n"
+ " update sys.storagemodelinput\n"
+ " set \"distinct\" = \"count\"\n"
+ " where \"type\" = 'varchar' or \"type\"='clob';\n"
+ "end;\n"
+ "create function sys.storagemodel()\n"
+ "returns table (\n"
+ " \"schema\" string,\n"
+ " \"table\" string,\n"
+ " \"column\" string,\n"
+ " \"type\" string,\n"
+ " \"count\" bigint,\n"
+ " columnsize bigint,\n"
+ " heapsize bigint,\n"
+ " hashes bigint,\n"
+ " \"imprints\" bigint,\n"
+ " sorted boolean,\n"
+ " orderidx bigint)\n"
+ "begin\n"
+ " return select I.\"schema\", I.\"table\",
I.\"column\", I.\"type\", I.\"count\",\n"
+ " columnsize(I.\"type\", I.count, I.\"distinct\"),\n"
+ " heapsize(I.\"type\", I.\"distinct\",
I.\"atomwidth\"),\n"
+ " hashsize(I.\"reference\", I.\"count\"),\n"
+ " imprintsize(I.\"count\",I.\"type\"),\n"
+ " I.sorted, I.orderidx\n"
+ " from sys.storagemodelinput I;\n"
+ "end;\n"
+ "create view sys.storagemodel as select * from
sys.storagemodel();\n"
+ "create view sys.tablestoragemodel\n"
+ "as select \"schema\",\"table\",max(count) as
\"count\",\n"
+ " sum(columnsize) as columnsize,\n"
+ " sum(heapsize) as heapsize,\n"
+ " sum(hashes) as hashes,\n"
+ " sum(\"imprints\") as \"imprints\",\n"
+ " sum(case when sorted = false then 8 * count else 0
end) as auxiliary\n"
+ "from sys.storagemodel() group by
\"schema\",\"table\";\n"
+ "update sys._tables set system = true where name in
('storage', 'storagemodel', 'tablestoragemodel') and schema_id = (select id
from sys.schemas where name = 'sys');\n");
+ pos += snprintf(buf + pos, bufsize - pos,
+ "insert into sys.systemfunctions (select f.id from
sys.functions f, sys.schemas s where f.name in ('storage', 'storagemodel') and
f.type = %d and f.schema_id = s.id and s.name = 'sys');\n",
+ F_UNION);
+ pos += snprintf(buf + pos, bufsize - pos,
+ "insert into sys.systemfunctions (select f.id from
sys.functions f, sys.schemas s where f.name in ('createorderindex',
'droporderindex', 'storagemodelinit') and f.type = %d and f.schema_id = s.id
and s.name = 'sys');\n",
+ F_PROC);
+
+ if (schema) {
+ pos += snprintf(buf + pos, bufsize - pos, "set schema
\"%s\";\n", schema);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list