MonetDB: Nov2019 - Compilation fixes and missing 'free' calls

2019-10-23 Thread Pedro Ferreira
Changeset: 4842e8a6ddba for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4842e8a6ddba
Modified Files:
clients/mapiclient/dump.c
Branch: Nov2019
Log Message:

Compilation fixes and missing 'free' calls


diffs (129 lines):

diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -1167,11 +1167,8 @@ describe_table(Mapi mid, const char *sch
t = sescape(tname);
maxquerylen = 5120 + strlen(t) + strlen(s);
query = malloc(maxquerylen);
-   if (query == NULL) {
-   if (sname != NULL)
-   free(sname);
+   if (query == NULL)
goto bailout;
-   }
 
snprintf(query, maxquerylen,
 "%s "
@@ -1485,7 +1482,7 @@ int
 describe_sequence(Mapi mid, const char *schema, const char *tname, stream 
*toConsole)
 {
MapiHdl hdl = NULL;
-   char *query;
+   char *query = NULL;
size_t maxquerylen;
char *sname = NULL;
const char *comments_clause = get_comments_clause(mid);
@@ -1509,11 +1506,8 @@ describe_sequence(Mapi mid, const char *
maxquerylen = 5120 + strlen(tname) + strlen(schema);
 
query = malloc(maxquerylen);
-   if (query == NULL) {
-   if (sname != NULL)
-   free(sname);
+   if (query == NULL)
goto bailout;
-   }
 
snprintf(query, maxquerylen,
"%s "
@@ -1959,8 +1953,12 @@ dump_function(Mapi mid, stream *toConsol
if (flkey) {
char* nflkey = flkey ? strdup(flkey) : NULL;
if (!nflkey) {
-   if (remark)
+   if (remark) {
free(remark);
+   free(sname);
+   free(fname);
+   free(ftkey);
+   }
goto bailout;
} else
flkey = nflkey;
@@ -1976,8 +1974,12 @@ dump_function(Mapi mid, stream *toConsol
if (!ffunc || query_len < 0 || query_len >= (int) query_size) {
free(ffunc);
free(flkey);
-   if (remark)
+   if (remark) {
free(remark);
+   free(sname);
+   free(fname);
+   free(ftkey);
+   }
free(query);
goto bailout;
}
@@ -1987,8 +1989,12 @@ dump_function(Mapi mid, stream *toConsol
if (hdl == NULL || mapi_error(mid)) {
free(ffunc);
free(flkey);
-   if (remark)
+   if (remark) {
free(remark);
+   free(sname);
+   free(fname);
+   free(ftkey);
+   }
goto bailout;
}
if (flang != 1 && flang != 2) {
@@ -2006,8 +2012,12 @@ dump_function(Mapi mid, stream *toConsol
free(ascal);
free(ffunc);
free(flkey);
-   if (remark)
+   if (remark) {
free(remark);
+   free(sname);
+   free(fname);
+   free(ftkey);
+   }
goto bailout;
}
if (strcmp(ainou, "0") == 0) {
@@ -2043,8 +2053,12 @@ dump_function(Mapi mid, stream *toConsol
free(ascal);
free(ffunc);
free(flkey);
-   if (remark)
+   if (remark) {
free(remark);
+   free(sname);
+   free(fname);
+   free(ftkey);
+   }
goto bailout;
}
 
@@ -2139,7 +2153,7 @@ int
 dump_functions(Mapi mid, stream *toConsole, char set_schema, const char 
*sname, const char *fname, const char *id)
 {
MapiHdl hdl = NULL;
-   char *query;
+   char *query = NULL;
size_t query_size;
int query_len;
bool hashge;
@@ -2204,8 +2218,10 @@ dump_functions(Mapi mid, stream *toConso
}
query_len += snprintf(query + query_len, query_size - query_len, "ORDER 
BY f.func, f.id");
assert(query_len < (int) query_size);
-   if (query_len >= (int) query_size)
+   if (query_len >= (int) query_size) {
+ 

MonetDB: Apr2019 - Added missing rollback command to end of script.

2019-10-23 Thread Martin van Dinther
Changeset: b17dafcdef40 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b17dafcdef40
Modified Files:
sql/test/BugTracker-2019/Tests/crash-in-rel_dependencies.Bug-6703.sql

sql/test/BugTracker-2019/Tests/crash-in-rel_dependencies.Bug-6703.stable.out
Branch: Apr2019
Log Message:

Added missing rollback command to end of script.


diffs (20 lines):

diff --git 
a/sql/test/BugTracker-2019/Tests/crash-in-rel_dependencies.Bug-6703.sql 
b/sql/test/BugTracker-2019/Tests/crash-in-rel_dependencies.Bug-6703.sql
--- a/sql/test/BugTracker-2019/Tests/crash-in-rel_dependencies.Bug-6703.sql
+++ b/sql/test/BugTracker-2019/Tests/crash-in-rel_dependencies.Bug-6703.sql
@@ -56,3 +56,5 @@ create view s0_mix_source_string_result_
 -- The INSERT INTO fails
 insert into resultbuffer_int_str (q, i1,s1, prob) select cast(0 as int) as 
q,a1, a2, prob from s0_mix_source_string_result_result as r;
 
+ROLLBACK;
+
diff --git 
a/sql/test/BugTracker-2019/Tests/crash-in-rel_dependencies.Bug-6703.stable.out 
b/sql/test/BugTracker-2019/Tests/crash-in-rel_dependencies.Bug-6703.stable.out
--- 
a/sql/test/BugTracker-2019/Tests/crash-in-rel_dependencies.Bug-6703.stable.out
+++ 
b/sql/test/BugTracker-2019/Tests/crash-in-rel_dependencies.Bug-6703.stable.out
@@ -72,6 +72,7 @@ Ready.
 #create view s0_mix_source_string_result_result as with q0_x0 as (select a1, 
prob from (select cachedrel_44.a1 as a1, cachedrel_44.a2 as a2, cachedrel_44.a3 
as a3, t__x2.a1 as a4, cachedrel_44.prob * t__x2.prob as prob from 
cachedrel_44,(select a2 as a1, prob from (select paramname as a1, value as a2, 
prob from paramsint where paramname = 's0_userid') as t__x1) as t__x2 where 
cachedrel_44.a3 = t__x2.a1) as t__x3),q0_x1 as (select a1, prob from (select 
cachedrel_6.a1 as a1, q0_x0.a1 as a2, cachedrel_6.prob * q0_x0.prob as prob 
from cachedrel_6,q0_x0 where cachedrel_6.a1 = q0_x0.a1) as t__x5),q0_x2 as 
(select a1, prob from (select cachedrel_647.a1 as a1, cachedrel_647.a2 as a2, 
q0_x1.a1 as a3, cachedrel_647.prob * q0_x1.prob as prob from 
cachedrel_647,q0_x1 where cachedrel_647.a2 = q0_x1.a1) as t__x7),q0_x3 as 
(select a1, 1 as prob from q0_x2),q0_x4 as (select a1, a4 as a2, prob from 
(select q0_x3.a1 as a1, cachedrel_33.a1 as a2, cachedrel_33.a2 as a3, 
cachedrel_33.a3 as a4, q0_x3.pro
 b * cachedrel_33.prob as prob from q0_x3,cachedrel_33 where q0_x3.a1 = 
cachedrel_33.a1) as t__x9),q0_x5 as (select a2 as a1, max(prob) as prob from 
q0_x4 group by a2),q0_x8 as (select a1, prob from (select q0_x5.a1 as a1, 
q0_x5.prob / t__x11.prob as prob from q0_x5,(select max(prob) as prob from 
q0_x5) as t__x11) as t__x12),q0_x9 as (select a1, a4 as a2, prob from (select 
q0_x8.a1 as a1, cachedrel_84.a1 as a2, cachedrel_84.a2 as a3, cachedrel_84.a3 
as a4, q0_x8.prob * cachedrel_84.prob as prob from q0_x8,cachedrel_84 where 
q0_x8.a1 = cachedrel_84.a1) as t__x14),q0_x10 as (select a2 as a1, max(prob) as 
prob from q0_x9 group by a2),q0_x12 as (select a1, a4 as a2, prob from (select 
q0_x10.a1 as a1, cachedrel_84.a1 as a2, cachedrel_84.a2 as a3, cachedrel_84.a3 
as a4, q0_x10.prob * cachedrel_84.prob as prob from q0_x10,cachedrel_84 where 
q0_x10.a1 = cachedrel_84.a1) as t__x16),q0_x13 as (select a2 as a1, max(prob) 
as prob from q0_x12 group by a2),q0_x15 as (select a1, a4 as a2, prob from
  (select q0_x13.a1 as a1, cachedrel_84.a1 as a2, cachedrel_84.a2 as a3, 
cachedrel_84.a3 as a4, q0_x13.prob * cachedrel_84.prob as prob from 
q0_x13,cachedrel_84 where q0_x13.a1 = cachedrel_84.a1) as t__x18),q0_x16 as 
(select a2 as a1, max(prob) as prob from q0_x15 group by a2),q0_x18 as (select 
a1, a4 as a2, prob from (select q0_x16.a1 as a1, cachedrel_104.a1 as a2, 
cachedrel_104.a2 as a3, cachedrel_104.a3 as a4, q0_x16.prob * 
cachedrel_104.prob as prob from q0_x16,cachedrel_104 where q0_x16.a1 = 
cachedrel_104.a1) as t__x20),q0_x19 as (select a2 as a1, max(prob) as prob from 
q0_x18 group by a2),q0_x20 as (select a1, a4 as a2, prob from (select q0_x19.a1 
as a1, cachedrel_104.a1 as a2, cachedrel_104.a2 as a3, cachedrel_104.a3 as a4, 
q0_x19.prob * cachedrel_104.prob as prob from q0_x19,cachedrel_104 where 
q0_x19.a1 = cachedrel_104.a1) as t__x22),q0_x21 as (select a2 as a1, max(prob) 
as prob from q0_x20 group by a2),q0_x22 as (select a1, a4 as a2, prob from 
(select q0_x21.a1 as a1, cache
 drel_104.a1 as a2, cachedrel_104.a2 as a3, cachedrel_104.a3 as a4, q0_x21.prob 
* cachedrel_104.prob as prob from q0_x21,cachedrel_104 where q0_x21.a1 = 
cachedrel_104.a1) as t__x24),q0_x23 as (select a2 as a1, max(prob) as prob from 
q0_x22 group by a2),q0_x24 as (select a1, a4 as a2, prob from (select q0_x23.a1 
as a1, cachedrel_421.a1 as a2, cachedrel_421.a2 as a3, cachedrel_421.a3 as a4, 
q0_x23.prob * cachedrel_421.prob as prob from q0_x23,cachedrel_421 where 
q0_x23.a1 = cachedrel_421.a1) as t__x26),q0_x25 as (select a2 as a1, prob from 
q0_x24),q0_x26 as (select a1, a3 as a2, max(prob) as prob from (select 
cachedrel_91.a1 as a1, cachedrel_91.a2 as 

MonetDB: default - Merge with Nov2019

2019-10-23 Thread Pedro Ferreira
Changeset: c0c552fd820c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c0c552fd820c
Modified Files:
sql/backends/monet5/sql_upgrades.c
sql/test/BugTracker-2009/Tests/All

sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out

sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err
sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err
sql/test/Dump/Tests/dump-again.stable.err
sql/test/Tests/comment-auth.stable.err
sql/test/Tests/comment-dump.stable.err
sql/test/mergetables/Tests/sqlsmith.Bug-6455.stable.err
sql/test/mergetables/Tests/sqlsmith.Bug-6459.stable.err
sql/test/testdb-reload/Tests/reload.stable.err
sql/test/testdb/Tests/dump-nogeom.stable.err
Branch: default
Log Message:

Merge with Nov2019


diffs (240 lines):

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
@@ -1941,6 +1941,7 @@ sql_update_apr2019_sp2(Client c)
if (pos > 7900) { \
pos += snprintf(buf + pos, bufsize - pos, ") as t1(c1,c2,c3) 
where t1.c1 not in (select \"id\" from dependencies where depend_id = 
t1.c2);\n"); \
assert(pos < bufsize); \
+   printf("Running database upgrade commands:\n%s\n", buf); \
err = SQLstatementIntern(c, , "update", true, false, NULL); 
\
if (err) \
goto bailout; \
@@ -2071,6 +2072,7 @@ sql_update_nov2019_missing_dependencies(
pos += snprintf(buf + pos, bufsize - pos, ") as t1(c1,c2,c3) 
where t1.c1 not in (select \"id\" from dependencies where depend_id = 
t1.c2);\n");
 
assert(pos < bufsize);
+   printf("Running database upgrade commands:\n%s\n", buf);
err = SQLstatementIntern(c, , "update", true, false, NULL);
}
 
diff --git a/sql/test/BugTracker-2009/Tests/All 
b/sql/test/BugTracker-2009/Tests/All
--- a/sql/test/BugTracker-2009/Tests/All
+++ b/sql/test/BugTracker-2009/Tests/All
@@ -25,7 +25,7 @@ bool-str-bug
 rollback_bug
 update-crash
 correlated-selection-bug
-HAVE_MAL_DEBUGGER?segfault_when_quitting_debugger.SF-2538837
+HAVE_MAL_DEBUGGER_WIN32?segfault_when_quitting_debugger.SF-2538837
 row_number_bug.SF-2546109
 #set_history_and_drop_table.SF-2607045  not relevant anymore
 TypeException_having_count_distinct.SF-2494227
diff --git 
a/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
 
b/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
--- 
a/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
+++ 
b/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
@@ -60,8 +60,6 @@ stdout of test 'crash-select_after_MAL_e
 # loading sql script: 90_generator.sql
 # loading sql script: 90_generator_hge.sql
 # loading sql script: 99_system.sql
-#WARNING To speedup calc./ a bulk operator implementation is needed
-#X_24965:bat[:lng] := 
mal.multiplex("calc":str,"/":str,0:bte,X_24964:bat[:int]);
 
 # 14:22:38 >  
 # 14:22:38 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-11002" "--port=36959"
diff --git 
a/sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err 
b/sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err
--- a/sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err
+++ b/sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err
@@ -30,8 +30,6 @@ stderr of test 'type-resolution-error.Bu
 #X_353:bat[:lng] := mal.multiplex("user":str, "hashsize":str, 
X_319:bat[:bit], X_298:bat[:lng]);
 #WARNING To speedup user.imprintsize a bulk operator implementation is needed
 #X_355:bat[:lng] := mal.multiplex("user":str, "imprintsize":str, 
X_298:bat[:lng], X_284:bat[:str]);
-#WARNING To speedup calc.ifthenelse a bulk operator implementation is needed
-#X_572:bat[:bit] := mal.multiplex("calc":str, "ifthenelse":str, X_571:bit, 
X_130:bat[:int], X_560:bat[:bit]);
 
 # 12:52:03 >  
 # 12:52:03 >  "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-19106" "--port=36358"
diff --git 
a/sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err 
b/sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err
--- a/sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err
+++ b/sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err
@@ -20,16 +20,6 @@ stderr of test 'python-loader-string.Bug
 # cmdline opt  monet_prompt = 
 # cmdline opt  gdk_dbpath = 
/home/ferreira/repositories/MonetDB-Apr2019/BUILD/var/MonetDB/mTests_sql_test_BugTracker-2019
 # cmdline opt  embedded_py = 2
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#

MonetDB: Nov2019 - Removed more obsolete messages

2019-10-23 Thread Pedro Ferreira
Changeset: b05e6716b0e5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b05e6716b0e5
Modified Files:

sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out

sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err
sql/test/Tests/comment-auth.stable.err
sql/test/Tests/comment-dump.stable.err
sql/test/mergetables/Tests/sqlsmith.Bug-6455.stable.err
sql/test/mergetables/Tests/sqlsmith.Bug-6459.stable.err
Branch: Nov2019
Log Message:

Removed more obsolete messages


diffs (98 lines):

diff --git 
a/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
 
b/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
--- 
a/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
+++ 
b/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
@@ -60,8 +60,6 @@ stdout of test 'crash-select_after_MAL_e
 # loading sql script: 90_generator.sql
 # loading sql script: 90_generator_hge.sql
 # loading sql script: 99_system.sql
-#WARNING To speedup calc./ a bulk operator implementation is needed
-#X_24965:bat[:lng] := 
mal.multiplex("calc":str,"/":str,0:bte,X_24964:bat[:int]);
 
 # 14:22:38 >  
 # 14:22:38 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-11002" "--port=36959"
diff --git 
a/sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err 
b/sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err
--- a/sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err
+++ b/sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err
@@ -30,8 +30,6 @@ stderr of test 'type-resolution-error.Bu
 #X_353:bat[:lng] := mal.multiplex("user":str, "hashsize":str, 
X_319:bat[:bit], X_298:bat[:lng]);
 #WARNING To speedup user.imprintsize a bulk operator implementation is needed
 #X_355:bat[:lng] := mal.multiplex("user":str, "imprintsize":str, 
X_298:bat[:lng], X_284:bat[:str]);
-#WARNING To speedup calc.ifthenelse a bulk operator implementation is needed
-#X_572:bat[:bit] := mal.multiplex("calc":str, "ifthenelse":str, X_571:bit, 
X_130:bat[:int], X_560:bat[:bit]);
 
 # 12:52:03 >  
 # 12:52:03 >  "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-19106" "--port=36358"
diff --git a/sql/test/Tests/comment-auth.stable.err 
b/sql/test/Tests/comment-auth.stable.err
--- a/sql/test/Tests/comment-auth.stable.err
+++ b/sql/test/Tests/comment-auth.stable.err
@@ -23,8 +23,6 @@ stderr of test 'comment-auth` in directo
 # cmdline opt  gdk_dbpath = 
/Users/joeri/monets/default/var/MonetDB/mTests_sql_test
 # cmdline opt  embedded_r = yes
 # cmdline opt  gdk_debug = 536870922
-#WARNING To speedup aggr.exist a bulk operator implementation is needed
-#X_583:bat[:bit] := mal.multiplex("aggr":str, "exist":str, 
X_558:bat[:int]);
 
 # 14:17:01 >  
 # 14:17:01 >  "/usr/local/opt/python/bin/python2.7" "comment-auth.SQL.py" 
"comment-auth"
diff --git a/sql/test/Tests/comment-dump.stable.err 
b/sql/test/Tests/comment-dump.stable.err
--- a/sql/test/Tests/comment-dump.stable.err
+++ b/sql/test/Tests/comment-dump.stable.err
@@ -23,26 +23,6 @@ stderr of test 'comment-dump` in directo
 # cmdline opt  gdk_dbpath = 
/Users/joeri/monets/default/var/MonetDB/mTests_sql_test
 # cmdline opt  embedded_r = yes
 # cmdline opt  gdk_debug = 536870922
-#WARNING To speedup sql.password a bulk operator implementation is needed
-#X_233:bat[:str] := mal.multiplex("sql":str, "password":str, 
X_208:bat[:str]);
-#WARNING To speedup sql.password a bulk operator implementation is needed
-#X_234:bat[:str] := mal.multiplex("sql":str, "password":str, 
X_209:bat[:str]);
-#WARNING To speedup sql.password a bulk operator implementation is needed
-#X_235:bat[:str] := mal.multiplex("sql":str, "password":str, 
X_210:bat[:str]);
-#WARNING To speedup sql.password a bulk operator implementation is needed
-#X_236:bat[:str] := mal.multiplex("sql":str, "password":str, 
X_211:bat[:str]);
-#WARNING To speedup sql.password a bulk operator implementation is needed
-#X_237:bat[:str] := mal.multiplex("sql":str, "password":str, 
X_212:bat[:str]);
-#WARNING To speedup sql.password a bulk operator implementation is needed
-#X_233:bat[:str] := mal.multiplex("sql":str, "password":str, 
X_208:bat[:str]);
-#WARNING To speedup sql.password a bulk operator implementation is needed
-#X_234:bat[:str] := mal.multiplex("sql":str, "password":str, 
X_209:bat[:str]);
-#WARNING To speedup sql.password a bulk operator implementation is needed
-#X_235:bat[:str] := mal.multiplex("sql":str, "password":str, 
X_210:bat[:str]);
-#WARNING To speedup sql.password a bulk operator implementation is needed
-#X_236:bat[:str] := mal.multiplex("sql":str, "password":str, 
X_211:bat[:str]);
-#WARNING To speedup sql.password a bulk operator implementation is needed
-# 

MonetDB: default - Try to be more Windows-friendly

2019-10-23 Thread Joeri van Ruth
Changeset: 9ac311ca0ba7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9ac311ca0ba7
Modified Files:
sql/storage/store.c
Branch: default
Log Message:

Try to be more Windows-friendly


diffs (66 lines):

diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -2593,7 +2593,7 @@ store_hot_snapshot(str tarfile)
lng result = 0;
char tmppath[FILENAME_MAX];
char dirpath[FILENAME_MAX];
-   int do_unlink = 0;
+   int do_remove = 0;
int dir_fd = -1;
stream *tar_stream = NULL;
buffer *plan_buf = NULL;
@@ -2611,7 +2611,13 @@ store_hot_snapshot(str tarfile)
GDKerror("Failed to open %s for writing", tmppath);
goto end;
}
-   do_unlink = 1;
+   do_remove = 1;
+
+#ifdef HAVE_FSYNC
+   // The following only makes sense on POSIX, where fsync'ing a file
+   // guarantees the bytes of the file to go to disk, but not necessarily
+   // guarantees the existence of the file in a directory to be persistent.
+   // Hence the fsync-the-parent ceremony.
 
// Set dirpath to the directory containing the tar file.
// Call realpath(2) to make the path absolute so it has at least
@@ -2637,6 +2643,10 @@ store_hot_snapshot(str tarfile)
GDKerror("First fsync on %s failed: %s", dirpath, 
strerror(errno));
goto end;
}
+#else
+   (void)dirpath;
+#endif
+
 
plan_buf = buffer_create(64 * 1024);
if (!plan_buf) {
@@ -2673,12 +2683,14 @@ store_hot_snapshot(str tarfile)
GDKerror("rename %s to %s failed: %s", tmppath, tarfile, 
strerror(errno));
goto end;
}
-   do_unlink = 0;
+   do_remove = 0;
+#ifdef HAVE_FSYNC
+   // More POSIX fsync-the-parent-dir ceremony
if (fsync(dir_fd) < 0) {
GDKerror("fsync on dir %s failed: %s", dirpath, 
strerror(errno));
goto end;
}
-
+#endif
// the original idea was to return a sort of sequence number of the
// database that identifies exactly which version has been snapshotted
// but no such number is available:
@@ -2699,8 +2711,8 @@ end:
close_stream(plan_stream);
if (plan_buf)
buffer_destroy(plan_buf);
-   if (do_unlink) // ERROR no unlink
-   (void) unlink(tmppath); // Best effort, ignore the result
+   if (do_remove) // ERROR no unlink
+   (void) remove(tmppath); // Best effort, ignore the result
return result;
 }
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Replace PATH_MAX with FILENAME_MAX

2019-10-23 Thread Joeri van Ruth
Changeset: dd935b6718fc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dd935b6718fc
Modified Files:
sql/storage/store.c
Branch: default
Log Message:

Replace PATH_MAX with FILENAME_MAX

The latter is already used in many places in the code.


diffs (58 lines):

diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -2591,8 +2591,8 @@ store_hot_snapshot(str tarfile)
 {
int locked = 0;
lng result = 0;
-   char tmppath[PATH_MAX];
-   char dirpath[PATH_MAX];
+   char tmppath[FILENAME_MAX];
+   char dirpath[FILENAME_MAX];
int do_unlink = 0;
int dir_fd = -1;
stream *tar_stream = NULL;
@@ -2605,7 +2605,7 @@ store_hot_snapshot(str tarfile)
goto end;
}
 
-   snprintf(tmppath, PATH_MAX, "%s.tmp", tarfile);
+   snprintf(tmppath, sizeof(tmppath), "%s.tmp", tarfile);
tar_stream = open_wstream(tmppath);
if (!tar_stream) {
GDKerror("Failed to open %s for writing", tmppath);
@@ -2617,7 +2617,7 @@ store_hot_snapshot(str tarfile)
// Call realpath(2) to make the path absolute so it has at least
// one DIR_SEP in it. Realpath requires the file to exist so
// we feed it tmppath rather than tarfile.
-   if (realpath(tmppath, dirpath) == NULL) {
+   if (realpath(tmppath, dirpath) == NULL) { // ERROR no realpath
GDKerror("couldn't resolve path %s: %s", tarfile, 
strerror(errno));
goto end;
}
@@ -2626,14 +2626,14 @@ store_hot_snapshot(str tarfile)
// Open the directory so we can call fsync on it.
// We use raw posix calls because this is not available in the streams 
library
// and I'm not quite sure what a generic streams-api should look like.
-   dir_fd = open(dirpath, O_RDONLY);
+   dir_fd = open(dirpath, O_RDONLY); // ERROR no o_rdonly
if (dir_fd < 0) {
GDKerror("couldn't open directory %s: %s", dirpath, 
strerror(errno));
goto end;
}
 
// Fsync the directory. Postgres believes this is necessary for 
durability.
-   if (fsync(dir_fd) < 0) {
+   if (fsync(dir_fd) < 0) { // ERROR no fsync
GDKerror("First fsync on %s failed: %s", dirpath, 
strerror(errno));
goto end;
}
@@ -2699,7 +2699,7 @@ end:
close_stream(plan_stream);
if (plan_buf)
buffer_destroy(plan_buf);
-   if (do_unlink)
+   if (do_unlink) // ERROR no unlink
(void) unlink(tmppath); // Best effort, ignore the result
return result;
 }
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Nov2019 - Removed obsolete warning messages

2019-10-23 Thread Pedro Ferreira
Changeset: 907505a79484 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=907505a79484
Modified Files:
sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err
sql/test/Dump/Tests/dump-again.stable.err
sql/test/Tests/comment-dump.stable.err
sql/test/testdb-reload/Tests/reload.stable.err
sql/test/testdb/Tests/dump-nogeom.stable.err
Branch: Nov2019
Log Message:

Removed obsolete warning messages


diffs (121 lines):

diff --git 
a/sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err 
b/sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err
--- a/sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err
+++ b/sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err
@@ -20,16 +20,6 @@ stderr of test 'python-loader-string.Bug
 # cmdline opt  monet_prompt = 
 # cmdline opt  gdk_dbpath = 
/home/ferreira/repositories/MonetDB-Apr2019/BUILD/var/MonetDB/mTests_sql_test_BugTracker-2019
 # cmdline opt  embedded_py = 2
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#X_282:bat[:lng] := mal.multiplex("sql":str, "get_value":str, 
X_247:bat[:str], X_257:bat[:str]);
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#X_283:bat[:lng] := mal.multiplex("sql":str, "get_value":str, 
X_248:bat[:str], X_258:bat[:str]);
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#X_284:bat[:lng] := mal.multiplex("sql":str, "get_value":str, 
X_249:bat[:str], X_259:bat[:str]);
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#X_285:bat[:lng] := mal.multiplex("sql":str, "get_value":str, 
X_250:bat[:str], X_260:bat[:str]);
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#X_286:bat[:lng] := mal.multiplex("sql":str, "get_value":str, 
X_251:bat[:str], X_261:bat[:str]);
 
 # 10:43:17 >  
 # 10:43:17 >  "Done."
diff --git a/sql/test/Dump/Tests/dump-again.stable.err 
b/sql/test/Dump/Tests/dump-again.stable.err
--- a/sql/test/Dump/Tests/dump-again.stable.err
+++ b/sql/test/Dump/Tests/dump-again.stable.err
@@ -23,14 +23,6 @@ stderr of test 'dump-again` in directory
 # cmdline opt  gdk_dbpath = 
/home/sjoerd/@Monet-stable/var/MonetDB/mTests_sql_test_Dump
 # cmdline opt  embedded_c = true
 # cmdline opt  gdk_debug = 553648138
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#X_258:bat[:lng] := mal.multiplex("sql":str, "get_value":str, 
X_230:bat[:str], X_238:bat[:str]);
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#X_259:bat[:lng] := mal.multiplex("sql":str, "get_value":str, 
X_231:bat[:str], X_239:bat[:str]);
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#X_260:bat[:lng] := mal.multiplex("sql":str, "get_value":str, 
X_232:bat[:str], X_240:bat[:str]);
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#X_261:bat[:lng] := mal.multiplex("sql":str, "get_value":str, 
X_233:bat[:str], X_241:bat[:str]);
 
 # 22:27:57 >  
 # 22:27:57 >  "/usr/bin/python" "dump-again.SQL.py" "dump-again"
diff --git a/sql/test/Tests/comment-dump.stable.err 
b/sql/test/Tests/comment-dump.stable.err
--- a/sql/test/Tests/comment-dump.stable.err
+++ b/sql/test/Tests/comment-dump.stable.err
@@ -43,16 +43,6 @@ stderr of test 'comment-dump` in directo
 #X_236:bat[:str] := mal.multiplex("sql":str, "password":str, 
X_211:bat[:str]);
 #WARNING To speedup sql.password a bulk operator implementation is needed
 #X_237:bat[:str] := mal.multiplex("sql":str, "password":str, 
X_212:bat[:str]);
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#X_281:bat[:lng] := mal.multiplex("sql":str, "get_value":str, 
X_246:bat[:str], X_256:bat[:str]);
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#X_282:bat[:lng] := mal.multiplex("sql":str, "get_value":str, 
X_247:bat[:str], X_257:bat[:str]);
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#X_283:bat[:lng] := mal.multiplex("sql":str, "get_value":str, 
X_248:bat[:str], X_258:bat[:str]);
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#X_284:bat[:lng] := mal.multiplex("sql":str, "get_value":str, 
X_249:bat[:str], X_259:bat[:str]);
-#WARNING To speedup sql.get_value a bulk operator implementation is needed
-#X_285:bat[:lng] := mal.multiplex("sql":str, "get_value":str, 
X_250:bat[:str], X_260:bat[:str]);
 
 # 17:19:14 >  
 # 17:19:14 >  "/usr/local/opt/python/bin/python2.7" "comment-dump.SQL.py" 
"comment-dump"
diff --git a/sql/test/testdb-reload/Tests/reload.stable.err 
b/sql/test/testdb-reload/Tests/reload.stable.err
--- a/sql/test/testdb-reload/Tests/reload.stable.err
+++ b/sql/test/testdb-reload/Tests/reload.stable.err
@@ -22,18 +22,6 @@ stderr of test 'reload` in directory 'sq
 # cmdline opt  

MonetDB: default - Avoid more warnings

2019-10-23 Thread Joeri van Ruth
Changeset: 95416176ea2b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=95416176ea2b
Modified Files:
monetdb5/modules/kernel/batmmath.c
monetdb5/modules/kernel/mmath.c
Branch: default
Log Message:

Avoid more warnings


diffs (37 lines):

diff --git a/monetdb5/modules/kernel/batmmath.c 
b/monetdb5/modules/kernel/batmmath.c
--- a/monetdb5/modules/kernel/batmmath.c
+++ b/monetdb5/modules/kernel/batmmath.c
@@ -312,10 +312,14 @@ str CMDscience_cst_bat_##FUNC##_##TYPE(b
 #define scienceNotImpl(FUNC)   
\
 str CMDscience_bat_flt_##FUNC(bat *ret, const bat *bid)
\
 {  
\
+   (void)ret;  \
+   (void)bid;  \
throw(MAL, "batmmath." #FUNC, SQLSTATE(0A000) PROGRAM_NYI); \
 }  
\
 str CMDscience_bat_dbl_##FUNC(bat *ret, const bat *bid)
\
 {  
\
+   (void)ret;  \
+   (void)bid;  \
throw(MAL, "batmmath." #FUNC, SQLSTATE(0A000) PROGRAM_NYI); \
 }
 
diff --git a/monetdb5/modules/kernel/mmath.c b/monetdb5/modules/kernel/mmath.c
--- a/monetdb5/modules/kernel/mmath.c
+++ b/monetdb5/modules/kernel/mmath.c
@@ -117,11 +117,15 @@ MATHbinary##NAME##TYPE(TYPE *res, const 
 str
\
 MATHunary##NAME##dbl(dbl *res , const dbl *a)  
\
 {  
\
+   (void)res;  \
+   (void)a;\
throw(MAL, "mmath." #FUNC, SQLSTATE(0A000) PROGRAM_NYI);\
 }  
\
 str
\
 MATHunary##NAME##flt(flt *res , const flt *a)  
\
 {  
\
+   (void)res;  \
+   (void)a;\
throw(MAL, "mmath." #FUNC, SQLSTATE(0A000) PROGRAM_NYI);\
 }
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Avoid double mnstr_close()

2019-10-23 Thread Joeri van Ruth
Changeset: 4f5971f4b417 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4f5971f4b417
Modified Files:
sql/storage/store.c
Branch: default
Log Message:

Avoid double mnstr_close()


diffs (11 lines):

diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -2566,6 +2566,7 @@ hot_snapshot_write_tar(stream *out, cons
if (tar_copy_stream(out, dest_path, timestamp, 
infile, size) != GDK_SUCCEED)
goto end;
mnstr_close(infile);
+   infile = NULL;
break;
case 'w':
if (tar_write_data(out, dest_path, timestamp, 
p, size) != GDK_SUCCEED)
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Fix '‘ret’ may be used uninitialized' errors ...

2019-10-23 Thread Joeri van Ruth
Changeset: 1e8e77843dee for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1e8e77843dee
Modified Files:
sql/storage/store.c
Branch: default
Log Message:

Fix '‘ret’ may be used uninitialized' errors in store.c


diffs (28 lines):

diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -2527,7 +2527,7 @@ end:
 static gdk_return
 hot_snapshot_write_tar(stream *out, const char *prefix, const char *plan)
 {
-   gdk_return ret;
+   gdk_return ret = GDK_FAIL;
const char *p = plan; // our cursor in the plan
time_t timestamp = time(NULL);
// Name convention: _path for the absolute path
@@ -2541,7 +2541,6 @@ hot_snapshot_write_tar(stream *out, cons
int len;
if (sscanf(p, "%[^\n]\n%n", abs_src_path, ) != 1) {
GDKerror("internal error: first line of plan is malformed");
-   ret = GDK_FAIL;
goto end;
}
p += len;
@@ -2575,7 +2574,6 @@ hot_snapshot_write_tar(stream *out, cons
break;
default:
GDKerror("Unknown command in snapshot plan: %c 
(%s)", command, src_name);
-   ret = GDK_FAIL;
goto end;
}
}
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Nov2019 - Disable test on Windows

2019-10-23 Thread Pedro Ferreira
Changeset: 8ef045a61007 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8ef045a61007
Modified Files:
sql/test/BugTracker-2009/Tests/All
Branch: Nov2019
Log Message:

Disable test on Windows


diffs (12 lines):

diff --git a/sql/test/BugTracker-2009/Tests/All 
b/sql/test/BugTracker-2009/Tests/All
--- a/sql/test/BugTracker-2009/Tests/All
+++ b/sql/test/BugTracker-2009/Tests/All
@@ -25,7 +25,7 @@ bool-str-bug
 rollback_bug
 update-crash
 correlated-selection-bug
-HAVE_MAL_DEBUGGER?segfault_when_quitting_debugger.SF-2538837
+HAVE_MAL_DEBUGGER_WIN32?segfault_when_quitting_debugger.SF-2538837
 row_number_bug.SF-2546109
 #set_history_and_drop_table.SF-2607045  not relevant anymore
 TypeException_having_count_distinct.SF-2494227
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Merge with Nov2019

2019-10-23 Thread Pedro Ferreira
Changeset: 6628fde0fc40 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6628fde0fc40
Added Files:
sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.timeout
Modified Files:
clients/mapiclient/dump.c
sql/server/rel_optimizer.c
sql/server/rel_sequence.c
sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.stable.out
sql/test/BugTracker-2019/Tests/next-get-value-bulk.Bug-6766.sql
sql/test/BugTracker-2019/Tests/next-get-value-bulk.Bug-6766.stable.out
sql/test/BugTracker-2019/Tests/sequences-defaults.Bug-6744.sql
sql/test/BugTracker-2019/Tests/sequences-defaults.Bug-6744.stable.err
sql/test/BugTracker-2019/Tests/sequences-defaults.Bug-6744.stable.out
Branch: default
Log Message:

Merge with Nov2019


diffs (truncated from 882 to 300 lines):

diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -248,14 +248,14 @@ static char *actions[] = {
 static char *
 get_schema(Mapi mid)
 {
-   char *sname = NULL;
+   char *nsname = NULL, *sname = NULL;
MapiHdl hdl;
 
if ((hdl = mapi_query(mid, "SELECT current_schema")) == NULL ||
mapi_error(mid))
goto bailout;
while ((mapi_fetch_row(hdl)) != 0) {
-   sname = mapi_fetch_field(hdl, 0);
+   nsname = mapi_fetch_field(hdl, 0);
 
if (mapi_error(mid))
goto bailout;
@@ -263,20 +263,26 @@ get_schema(Mapi mid)
if (mapi_error(mid))
goto bailout;
/* copy before closing the handle */
-   if (sname)
-   sname = strdup(sname);
+   if (nsname)
+   sname = strdup(nsname);
+   if (nsname && !sname)
+   goto bailout;
mapi_close_handle(hdl);
return sname;
 
-  bailout:
+bailout:
if (hdl) {
if (mapi_result_error(hdl))
mapi_explain_result(hdl, stderr);
+   else if (mapi_error(mid))
+   mapi_explain_query(hdl, stderr);
else
-   mapi_explain_query(hdl, stderr);
+   fprintf(stderr, "malloc failure1\n");
mapi_close_handle(hdl);
-   } else
+   } else if (mapi_error(mid))
mapi_explain(mid, stderr);
+   else
+   fprintf(stderr, "malloc failure\n");
return NULL;
 }
 
@@ -308,7 +314,7 @@ has_hugeint(Mapi mid)
answer = (int) ret;
return answer;
 
-  bailout:
+bailout:
if (hdl) {
if (mapi_result_error(hdl))
mapi_explain_result(hdl, stderr);
@@ -356,7 +362,7 @@ has_funcsys(Mapi mid)
answer = ret;
return ret;
 
-  bailout:
+bailout:
if (hdl) {
if (mapi_result_error(hdl))
mapi_explain_result(hdl, stderr);
@@ -397,7 +403,7 @@ has_table_partitions(Mapi mid)
answer = ret;
return ret;
 
-  bailout:
+bailout:
if (hdl) {
if (mapi_result_error(hdl))
mapi_explain_result(hdl, stderr);
@@ -523,20 +529,22 @@ dump_foreign_keys(Mapi mid, const char *
if (hdl == NULL || mapi_error(mid))
goto bailout;
 
-   while ((cnt = mapi_fetch_row(hdl)) != 0) {
-   char *c_psname = strdup(mapi_fetch_field(hdl, 0));
-   char *c_ptname = strdup(mapi_fetch_field(hdl, 1));
-   char *c_pcolumn = strdup(mapi_fetch_field(hdl, 2));
-   char *c_fcolumn = strdup(mapi_fetch_field(hdl, 3));
+   cnt = mapi_fetch_row(hdl);
+   while (cnt != 0) {
+   char *nc_psname = mapi_fetch_field(hdl, 0), *c_psname = 
nc_psname ? strdup(nc_psname) : NULL;
+   char *nc_ptname = mapi_fetch_field(hdl, 1), *c_ptname = 
nc_ptname ? strdup(nc_ptname) : NULL;
+   char *nc_pcolumn = mapi_fetch_field(hdl, 2), *c_pcolumn = 
nc_pcolumn ? strdup(nc_pcolumn) : NULL;
+   char *nc_fcolumn = mapi_fetch_field(hdl, 3), *c_fcolumn = 
nc_fcolumn ? strdup(nc_fcolumn) : NULL;
char *c_nr = mapi_fetch_field(hdl, 4); /* no need to strdup, 
because it's not used */
-   char *c_fkname = strdup(mapi_fetch_field(hdl, 5));
-   char *c_faction = strdup(mapi_fetch_field(hdl, 6));
-   char *c_fsname = strdup(mapi_fetch_field(hdl, 7));
-   char *c_ftname = strdup(mapi_fetch_field(hdl, 8));
-   const char **fkeys, **pkeys;
+   char *nc_fkname = mapi_fetch_field(hdl, 5), *c_fkname = 
nc_fkname ? strdup(nc_fkname) : NULL;
+   char *nc_faction = mapi_fetch_field(hdl, 6), *c_faction = 
nc_faction ? strdup(nc_faction) : NULL;
+   char *nc_fsname = mapi_fetch_field(hdl, 7), *c_fsname = 
nc_fsname ? strdup(nc_fsname) : NULL;
+   char *nc_ftname = 

MonetDB: Nov2019 - Tests approval and increasd timeout for bug 6...

2019-10-23 Thread Pedro Ferreira
Changeset: c0c6d5923fa1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c0c6d5923fa1
Added Files:
sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.timeout
Modified Files:
sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.stable.out
sql/test/BugTracker-2019/Tests/next-get-value-bulk.Bug-6766.sql
sql/test/BugTracker-2019/Tests/next-get-value-bulk.Bug-6766.stable.out
sql/test/BugTracker-2019/Tests/sequences-defaults.Bug-6744.sql
sql/test/BugTracker-2019/Tests/sequences-defaults.Bug-6744.stable.err
Branch: Nov2019
Log Message:

Tests approval and increasd timeout for bug 6777's test to 3 minutes


diffs (167 lines):

diff --git 
a/sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.stable.out 
b/sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.stable.out
--- a/sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.stable.out
+++ b/sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.stable.out
@@ -640,56 +640,107 @@ CREATE TABLE "sys"."store_sales" (
CONSTRAINT "store_sales_ss_item_sk_ss_ticket_number_pkey" PRIMARY KEY 
("ss_item_sk", "ss_ticket_number")
 );
 ALTER TABLE "sys"."call_center" ADD CONSTRAINT "cc_d1" FOREIGN KEY 
("cc_closed_date_sk") REFERENCES "sys"."date_dim" ("d_date_sk");
+ALTER TABLE "sys"."call_center" ADD CONSTRAINT "cc_d2" FOREIGN KEY 
("cc_open_date_sk") REFERENCES "sys"."date_dim" ("d_date_sk");
 ALTER TABLE "sys"."catalog_page" ADD CONSTRAINT "cp_d1" FOREIGN KEY 
("cp_end_date_sk") REFERENCES "sys"."date_dim" ("d_date_sk");
+ALTER TABLE "sys"."catalog_page" ADD CONSTRAINT "cp_d2" FOREIGN KEY 
("cp_start_date_sk") REFERENCES "sys"."date_dim" ("d_date_sk");
 ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_a1" FOREIGN KEY 
("cr_refunded_addr_sk") REFERENCES "sys"."customer_address" ("ca_address_sk");
+ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_a2" FOREIGN KEY 
("cr_returning_addr_sk") REFERENCES "sys"."customer_address" ("ca_address_sk");
 ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_c1" FOREIGN KEY 
("cr_refunded_customer_sk") REFERENCES "sys"."customer" ("c_customer_sk");
+ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_c2" FOREIGN KEY 
("cr_returning_customer_sk") REFERENCES "sys"."customer" ("c_customer_sk");
 ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_cc" FOREIGN KEY 
("cr_call_center_sk") REFERENCES "sys"."call_center" ("cc_call_center_sk");
+ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_cd1" FOREIGN KEY 
("cr_refunded_cdemo_sk") REFERENCES "sys"."customer_demographics" 
("cd_demo_sk");
 ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_cd2" FOREIGN KEY 
("cr_returning_cdemo_sk") REFERENCES "sys"."customer_demographics" 
("cd_demo_sk");
+ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_cp" FOREIGN KEY 
("cr_catalog_page_sk") REFERENCES "sys"."catalog_page" ("cp_catalog_page_sk");
 ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_d1" FOREIGN KEY 
("cr_returned_date_sk") REFERENCES "sys"."date_dim" ("d_date_sk");
+ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_hd1" FOREIGN KEY 
("cr_refunded_hdemo_sk") REFERENCES "sys"."household_demographics" 
("hd_demo_sk");
 ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_hd2" FOREIGN KEY 
("cr_returning_hdemo_sk") REFERENCES "sys"."household_demographics" 
("hd_demo_sk");
+ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_i" FOREIGN KEY 
("cr_item_sk") REFERENCES "sys"."item" ("i_item_sk");
 ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_r" FOREIGN KEY 
("cr_reason_sk") REFERENCES "sys"."reason" ("r_reason_sk");
+ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_sm" FOREIGN KEY 
("cr_ship_mode_sk") REFERENCES "sys"."ship_mode" ("sm_ship_mode_sk");
 ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_t" FOREIGN KEY 
("cr_returned_time_sk") REFERENCES "sys"."time_dim" ("t_time_sk");
+ALTER TABLE "sys"."catalog_returns" ADD CONSTRAINT "cr_w2" FOREIGN KEY 
("cr_warehouse_sk") REFERENCES "sys"."warehouse" ("w_warehouse_sk");
 ALTER TABLE "sys"."catalog_sales" ADD CONSTRAINT "cs_b_a" FOREIGN KEY 
("cs_bill_addr_sk") REFERENCES "sys"."customer_address" ("ca_address_sk");
+ALTER TABLE "sys"."catalog_sales" ADD CONSTRAINT "cs_b_c" FOREIGN KEY 
("cs_bill_customer_sk") REFERENCES "sys"."customer" ("c_customer_sk");
 ALTER TABLE "sys"."catalog_sales" ADD CONSTRAINT "cs_b_cd" FOREIGN KEY 
("cs_bill_cdemo_sk") REFERENCES "sys"."customer_demographics" ("cd_demo_sk");
+ALTER TABLE "sys"."catalog_sales" ADD CONSTRAINT "cs_b_hd" FOREIGN KEY 
("cs_bill_hdemo_sk") REFERENCES "sys"."household_demographics" ("hd_demo_sk");
 ALTER TABLE "sys"."catalog_sales" ADD CONSTRAINT "cs_cc" FOREIGN KEY 
("cs_call_center_sk") REFERENCES "sys"."call_center" ("cc_call_center_sk");
+ALTER TABLE "sys"."catalog_sales" ADD CONSTRAINT "cs_cp" FOREIGN KEY 
("cs_catalog_page_sk") REFERENCES "sys"."catalog_page" ("cp_catalog_page_sk");
 ALTER TABLE 

MonetDB: Nov2019 - msqldump test fixes and other checks

2019-10-23 Thread Pedro Ferreira
Changeset: 01ef57fbfcc0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=01ef57fbfcc0
Modified Files:
clients/mapiclient/dump.c
sql/server/rel_sequence.c
sql/test/BugTracker-2019/Tests/sequences-defaults.Bug-6744.stable.out
Branch: Nov2019
Log Message:

msqldump test fixes and other checks


diffs (truncated from 703 to 300 lines):

diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -248,14 +248,14 @@ static char *actions[] = {
 static char *
 get_schema(Mapi mid)
 {
-   char *sname = NULL;
+   char *nsname = NULL, *sname = NULL;
MapiHdl hdl;
 
if ((hdl = mapi_query(mid, "SELECT current_schema")) == NULL ||
mapi_error(mid))
goto bailout;
while ((mapi_fetch_row(hdl)) != 0) {
-   sname = mapi_fetch_field(hdl, 0);
+   nsname = mapi_fetch_field(hdl, 0);
 
if (mapi_error(mid))
goto bailout;
@@ -263,20 +263,26 @@ get_schema(Mapi mid)
if (mapi_error(mid))
goto bailout;
/* copy before closing the handle */
-   if (sname)
-   sname = strdup(sname);
+   if (nsname)
+   sname = strdup(nsname);
+   if (nsname && !sname)
+   goto bailout;
mapi_close_handle(hdl);
return sname;
 
-  bailout:
+bailout:
if (hdl) {
if (mapi_result_error(hdl))
mapi_explain_result(hdl, stderr);
+   else if (mapi_error(mid))
+   mapi_explain_query(hdl, stderr);
else
-   mapi_explain_query(hdl, stderr);
+   fprintf(stderr, "malloc failure1\n");
mapi_close_handle(hdl);
-   } else
+   } else if (mapi_error(mid))
mapi_explain(mid, stderr);
+   else
+   fprintf(stderr, "malloc failure\n");
return NULL;
 }
 
@@ -308,7 +314,7 @@ has_hugeint(Mapi mid)
answer = (int) ret;
return answer;
 
-  bailout:
+bailout:
if (hdl) {
if (mapi_result_error(hdl))
mapi_explain_result(hdl, stderr);
@@ -356,7 +362,7 @@ has_funcsys(Mapi mid)
answer = ret;
return ret;
 
-  bailout:
+bailout:
if (hdl) {
if (mapi_result_error(hdl))
mapi_explain_result(hdl, stderr);
@@ -397,7 +403,7 @@ has_table_partitions(Mapi mid)
answer = ret;
return ret;
 
-  bailout:
+bailout:
if (hdl) {
if (mapi_result_error(hdl))
mapi_explain_result(hdl, stderr);
@@ -523,20 +529,22 @@ dump_foreign_keys(Mapi mid, const char *
if (hdl == NULL || mapi_error(mid))
goto bailout;
 
-   while ((cnt = mapi_fetch_row(hdl)) != 0) {
-   char *c_psname = strdup(mapi_fetch_field(hdl, 0));
-   char *c_ptname = strdup(mapi_fetch_field(hdl, 1));
-   char *c_pcolumn = strdup(mapi_fetch_field(hdl, 2));
-   char *c_fcolumn = strdup(mapi_fetch_field(hdl, 3));
+   cnt = mapi_fetch_row(hdl);
+   while (cnt != 0) {
+   char *nc_psname = mapi_fetch_field(hdl, 0), *c_psname = 
nc_psname ? strdup(nc_psname) : NULL;
+   char *nc_ptname = mapi_fetch_field(hdl, 1), *c_ptname = 
nc_ptname ? strdup(nc_ptname) : NULL;
+   char *nc_pcolumn = mapi_fetch_field(hdl, 2), *c_pcolumn = 
nc_pcolumn ? strdup(nc_pcolumn) : NULL;
+   char *nc_fcolumn = mapi_fetch_field(hdl, 3), *c_fcolumn = 
nc_fcolumn ? strdup(nc_fcolumn) : NULL;
char *c_nr = mapi_fetch_field(hdl, 4); /* no need to strdup, 
because it's not used */
-   char *c_fkname = strdup(mapi_fetch_field(hdl, 5));
-   char *c_faction = strdup(mapi_fetch_field(hdl, 6));
-   char *c_fsname = strdup(mapi_fetch_field(hdl, 7));
-   char *c_ftname = strdup(mapi_fetch_field(hdl, 8));
-   const char **fkeys, **pkeys;
+   char *nc_fkname = mapi_fetch_field(hdl, 5), *c_fkname = 
nc_fkname ? strdup(nc_fkname) : NULL;
+   char *nc_faction = mapi_fetch_field(hdl, 6), *c_faction = 
nc_faction ? strdup(nc_faction) : NULL;
+   char *nc_fsname = mapi_fetch_field(hdl, 7), *c_fsname = 
nc_fsname ? strdup(nc_fsname) : NULL;
+   char *nc_ftname = mapi_fetch_field(hdl, 8), *c_ftname = 
nc_ftname ? strdup(nc_ftname) : NULL;
+   char **fkeys, **pkeys, *npkey, *nfkey;
int nkeys = 0;
 
-   if (mapi_error(mid) || !c_psname || !c_ptname || !c_pcolumn || 
!c_fcolumn || !c_fkname || !c_faction || !c_fsname || !c_ftname) {
+   if (mapi_error(mid) || (nc_psname && !c_psname) || (nc_ptname 
&& !c_ptname) || (nc_pcolumn && !c_pcolumn) || (nc_fcolumn && !c_fcolumn) ||
+   

MonetDB: mlogger - Merge with default

2019-10-23 Thread Thodoris Zois
Changeset: 114734727c6a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=114734727c6a
Added Files:
sql/scripts/58_hot_snapshot.sql
sql/test/BugTracker-2019/Tests/NOT_IN-AND-OR-wrong-results.Bug-6775.sql

sql/test/BugTracker-2019/Tests/NOT_IN-AND-OR-wrong-results.Bug-6775.stable.err

sql/test/BugTracker-2019/Tests/NOT_IN-AND-OR-wrong-results.Bug-6775.stable.out
sql/test/BugTracker-2019/Tests/filter_json_null.Bug-6773.sql
sql/test/BugTracker-2019/Tests/filter_json_null.Bug-6773.stable.err
sql/test/BugTracker-2019/Tests/filter_json_null.Bug-6773.stable.out
sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.py
sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.stable.err
sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.stable.out
sql/test/BugTracker-2019/Tests/next-get-value-bulk.Bug-6766.stable.err
sql/test/BugTracker-2019/Tests/outer-join-varchar.Bug-6776.sql
sql/test/BugTracker-2019/Tests/outer-join-varchar.Bug-6776.stable.err
sql/test/BugTracker-2019/Tests/outer-join-varchar.Bug-6776.stable.out
sql/test/BugTracker-2019/Tests/prod-decimals.Bug-6774.sql
sql/test/BugTracker-2019/Tests/prod-decimals.Bug-6774.stable.err
sql/test/BugTracker-2019/Tests/prod-decimals.Bug-6774.stable.out
sql/test/Dependencies/Tests/view_table_udf.sql
sql/test/Dependencies/Tests/view_table_udf.stable.err
sql/test/Dependencies/Tests/view_table_udf.stable.out
sql/test/Tests/hot-snapshot.py
sql/test/Tests/hot-snapshot.stable.err
sql/test/Tests/hot-snapshot.stable.out
sql/test/subquery/Tests/exists.sql
sql/test/subquery/Tests/exists.stable.err
sql/test/subquery/Tests/exists.stable.out
Modified Files:
ChangeLog
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
clients/mapiclient/Tests/stethoscope--help.stable.err
clients/mapiclient/dump.c
clients/mapiclient/eventparser.c
clients/mapiclient/mhelp.c
clients/mapiclient/stethoscope.c
common/options/monet_options.c
gdk/gdk.h
gdk/gdk_storage.c
gdk/gdk_utils.c
monetdb5/mal/mal.c
monetdb5/mal/mal.h
monetdb5/mal/mal_client.c
monetdb5/mal/mal_client.h
monetdb5/mal/mal_dataflow.c
monetdb5/mal/mal_debugger.c
monetdb5/mal/mal_exception.c
monetdb5/mal/mal_exception.h
monetdb5/mal/mal_interpreter.c
monetdb5/mal/mal_namespace.c
monetdb5/mal/mal_profiler.c
monetdb5/mal/mal_profiler.h
monetdb5/mal/mal_runtime.c
monetdb5/mal/mal_scenario.c
monetdb5/modules/atoms/Tests/json02.stable.out
monetdb5/modules/atoms/json.c
monetdb5/modules/atoms/json.h
monetdb5/modules/atoms/json.mal
monetdb5/modules/mal/Tests/All
monetdb5/modules/mal/mal_io.c
monetdb5/modules/mal/mal_io.h
monetdb5/modules/mal/mal_io.mal
monetdb5/modules/mal/mal_mapi.c
monetdb5/modules/mal/mdb.c
monetdb5/modules/mal/mdb.h
monetdb5/modules/mal/mdb.mal
monetdb5/modules/mal/profiler.c
monetdb5/modules/mal/profiler.h
monetdb5/modules/mal/profiler.mal
monetdb5/modules/mal/querylog.c
monetdb5/modules/mal/querylog.h
monetdb5/modules/mal/querylog.mal
monetdb5/modules/mal/remote.c
monetdb5/modules/mal/tablet.c
monetdb5/optimizer/Tests/manifold2.stable.out.single
monetdb5/optimizer/opt_evaluate.c
monetdb5/optimizer/opt_garbageCollector.c
monetdb5/optimizer/opt_prelude.c
monetdb5/optimizer/opt_prelude.h
sql/ChangeLog.Nov2019
sql/backends/monet5/rel_bin.c
sql/backends/monet5/rel_bin.h
sql/backends/monet5/sql.c
sql/backends/monet5/sql.h
sql/backends/monet5/sql.mal
sql/backends/monet5/sql_cat.c
sql/backends/monet5/sql_execute.c
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_optimizer.c
sql/backends/monet5/sql_statement.c
sql/backends/monet5/sql_upgrades.c
sql/backends/monet5/sql_user.c
sql/backends/monet5/wlr.c
sql/common/sql_types.c
sql/scripts/16_tracelog.sql
sql/scripts/Makefile.ag
sql/server/rel_optimizer.c
sql/server/rel_optimizer.h
sql/server/rel_rel.c
sql/server/rel_rel.h
sql/server/rel_select.c
sql/server/rel_sequence.c
sql/server/rel_unnest.c
sql/server/rel_updates.c
sql/server/sql_mvc.c
sql/server/sql_mvc.h
sql/server/sql_parser.y
sql/server/sql_partition.c
sql/storage/bat/bat_logger.c
sql/storage/sql_catalog.c
sql/storage/sql_storage.h