MonetDB: default - ifdef SIGHUP

2020-02-18 Thread Thodoris Zois
Changeset: cde3d1278c6b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cde3d1278c6b
Modified Files:
tools/mserver/mserver5.c
Branch: default
Log Message:

ifdef SIGHUP


diffs (14 lines):

diff --git a/tools/mserver/mserver5.c b/tools/mserver/mserver5.c
--- a/tools/mserver/mserver5.c
+++ b/tools/mserver/mserver5.c
@@ -733,8 +733,10 @@ main(int argc, char **av)
free(err);
}
 
+#ifdef SIGHUP
// Register signal to GDKtracer (logrotate)
signal(SIGHUP, GDKtracer_reinit_basic);
+#endif
 
 #ifdef _MSC_VER
printf("# MonetDB server is started. To stop server press Ctrl-C.\n");
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: hitchhiker - Optimizer start

2020-02-18 Thread Thodoris Zois
Changeset: 8e11b67b43a4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8e11b67b43a4
Modified Files:
monetdb5/optimizer/opt_hitchhiker.c
Branch: hitchhiker
Log Message:

Optimizer start


diffs (88 lines):

diff --git a/monetdb5/optimizer/opt_hitchhiker.c 
b/monetdb5/optimizer/opt_hitchhiker.c
--- a/monetdb5/optimizer/opt_hitchhiker.c
+++ b/monetdb5/optimizer/opt_hitchhiker.c
@@ -10,14 +10,80 @@
 #include "opt_hitchhiker.h"
 #include "mal_interpreter.h"
 
+
+
+static int 
+OPThitchhiker(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+(void) cntxt;
+   (void) pci;
+   (void) stk;
+(void) mb;
+return 0;
+}
+
+
 str
 OPThitchhikerImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci)
 {
 (void) cntxt;
-(void) mb;
-(void) stk;
-(void) pci;
+
+str modnme;
+   str fcnnme;
+str msg;
+Symbol s = NULL;
+int actions = 0;
+char buf[256];
+lng clk= GDKusec();
+
+if(pci)
+removeInstruction(mb, pci);
+
+if(pci && pci->argc > 1){
+if( getArgType(mb, pci, 1) != TYPE_str ||
+getArgType(mb, pci, 2) != TYPE_str ||
+!isVarConstant(mb, getArg(pci, 1)) ||
+!isVarConstant(mb, getArg(pci, 2))
+) {
+throw(MAL, "optimizer.hitchhiker", ILLARG_CONSTANTS);
+}
+if(stk != 0) {
+modnme = *getArgReference_str(stk, pci, 1);
+fcnnme = *getArgReference_str(stk, pci, 2);
+} else {
+modnme = getArgDefault(mb, pci, 1);
+fcnnme = getArgDefault(mb, pci, 2);
+}
+s = findSymbol(cntxt->usermodule, putName(modnme), putName(fcnnme));
 
-str msg = MAL_SUCCEED;
+if(s == NULL) {
+char buf[1024];
+snprintf(buf, 1024, "%s.%s", modnme, fcnnme);
+throw(MAL, "optimizer.hitchhiker", RUNTIME_OBJECT_UNDEFINED ":%s", 
buf);
+}
+
+mb = s->def;
+stk = 0;
+}
+
+if(mb->errors) {
+// when we have errors, we still want to see them
+addtoMalBlkHistory(mb);
+return MAL_SUCCEED;
+}
+
+// number of successfull changes to the code
+actions = OPThitchhiker(cntxt, mb, stk, pci);
+
+// defense line against incorrect plans
+msg = chkTypes(cntxt->usermodule, mb, FALSE);
+if(msg == MAL_SUCCEED) msg = chkFlow(mb);
+if(msg == MAL_SUCCEED) msg = chkDeclarations(mb);
+
+clk = GDKusec() - clk;
+snprintf(buf, 256, "%-20s actions=%2d time=" LLFMT " usec", 
"optimizer.hitchhiker", actions, clk);
+newComment(mb,buf);
+addtoMalBlkHistory(mb);
+
 return msg;
 }
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - approved errors

2020-02-18 Thread Niels Nes
Changeset: 45eb35eb1b38 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=45eb35eb1b38
Modified Files:
monetdb5/tools/Tests/mserver5--help.stable.err
monetdb5/tools/Tests/mserver5--help.stable.err.Windows
Branch: default
Log Message:

approved errors


diffs (22 lines):

diff --git a/monetdb5/tools/Tests/mserver5--help.stable.err 
b/monetdb5/tools/Tests/mserver5--help.stable.err
--- a/monetdb5/tools/Tests/mserver5--help.stable.err
+++ b/monetdb5/tools/Tests/mserver5--help.stable.err
@@ -13,6 +13,7 @@ stderr of test 'mserver5--help` in direc
 Usage: mserver5 [options]
 --dbpath=  Specify database location
 --dbextra= Directory for transient BATs
+--dbtrace= Directory for produced traces
 --in-memory   Run database in-memory only
 --config=Use config_file to read options from
 --single-user Allow only one user at a time
diff --git a/monetdb5/tools/Tests/mserver5--help.stable.err.Windows 
b/monetdb5/tools/Tests/mserver5--help.stable.err.Windows
--- a/monetdb5/tools/Tests/mserver5--help.stable.err.Windows
+++ b/monetdb5/tools/Tests/mserver5--help.stable.err.Windows
@@ -8,6 +8,7 @@ stderr of test 'mserver5--help` in direc
 Usage: mserver5.exe [options]
 --dbpath=  Specify database location
 --dbextra= Directory for transient BATs
+--dbtrace= Directory for produced traces
 --in-memory   Run database in-memory only
 --config=Use config_file to read options from
 --single-user Allow only one user at a time
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - approved output

2020-02-18 Thread Niels Nes
Changeset: 975ab3c2d3e9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=975ab3c2d3e9
Modified Files:
clients/Tests/exports.stable.out
clients/mapilib/monetdb-mapi.pc.in
Branch: default
Log Message:

approved output


diffs (44 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -300,10 +300,11 @@ ssize_t GDKstrFromStr(unsigned char *res
 str GDKstrdup(const char *s) __attribute__((__warn_unused_result__));
 str GDKstrndup(const char *s, size_t n) 
__attribute__((__warn_unused_result__));
 void GDKsyserror(_In_z_ _Printf_format_string_ const char *format, ...) 
__attribute__((__format__(__printf__, 1, 2)));
-gdk_return GDKtracer_fill_comp_info(BAT *id, BAT *component, BAT *log_Level);
+gdk_return GDKtracer_fill_comp_info(BAT *id, BAT *component, BAT *log_level);
 gdk_return GDKtracer_flush_buffer(void);
 char *GDKtracer_get_timestamp(const char *fmt, char *buf, size_t sz);
 gdk_return GDKtracer_log(LOG_LEVEL level, const char *fmt, ...) 
__attribute__((format(printf, 2, 3)));
+void GDKtracer_reinit_basic(int sig);
 gdk_return GDKtracer_reset_adapter(void);
 gdk_return GDKtracer_reset_component_level(int comp);
 gdk_return GDKtracer_reset_flush_level(void);
diff --git a/clients/mapilib/monetdb-mapi.pc.in 
b/clients/mapilib/monetdb-mapi.pc.in
--- a/clients/mapilib/monetdb-mapi.pc.in
+++ b/clients/mapilib/monetdb-mapi.pc.in
@@ -2,17 +2,17 @@
 # License, v. 2.0.  If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 #
-# Copyright 1997 - July 2008 CWI, August 2008 - 2020 MonetDB B.V.
+# Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
 
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=${exec_prefix}
+libdir=${libdir}
+includedir=${includedir}
 
 Name: monetdb-mapi
 Description: MonetDB MAPI C-client libary
-Version: @PACKAGE_VERSION@
+Version: @MONETDB_VERSION@
 Requires: monetdb-stream openssl
 
-Libs: -L${libdir} -lmapi @SOCKET_LIBS@
+Libs: -L${libdir} -lmapi
 Cflags: -I${includedir}/monetdb
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - merged with linear-hashing

2020-02-18 Thread Niels Nes
Changeset: 1c2c1cbdd417 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1c2c1cbdd417
Modified Files:
sql/storage/store.c
Branch: default
Log Message:

merged with linear-hashing


diffs (12 lines):

diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -1552,7 +1552,7 @@ dup_sql_type(sql_trans *tr, sql_schema *
nc->digits = oc->digits;
nc->scale = oc->scale;
nc->type = oc->type;
-   if (nc->type->s) { /* user type */
+   if (os && nc->type->s) { /* user type */
sql_type *lt = NULL;
 
if (os->base.id == nc->type->s->base.id) {
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: linear-hashing - small fix for dup_sql_type, for the de...

2020-02-18 Thread Niels Nes
Changeset: e921a5dbff3b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e921a5dbff3b
Modified Files:
sql/storage/store.c
Branch: linear-hashing
Log Message:

small fix for dup_sql_type, for the declared (internal) tables


diffs (12 lines):

diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -1581,7 +1581,7 @@ dup_sql_type(sql_trans *tr, sql_schema *
nc->digits = oc->digits;
nc->scale = oc->scale;
nc->type = oc->type;
-   if (nc->type->s) { /* user type */
+   if (os && nc->type->s) { /* user type */
sql_type *lt = NULL;
 
if (os->base.id == nc->type->s->base.id) {
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Remove obsolete profiler connection mode

2020-02-18 Thread Panagiotis Koutsourakis
Changeset: 350ef0482b0c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=350ef0482b0c
Modified Files:
monetdb5/modules/mal/profiler.mal
Branch: default
Log Message:

Remove obsolete profiler connection mode


diffs (14 lines):

diff --git a/monetdb5/modules/mal/profiler.mal 
b/monetdb5/modules/mal/profiler.mal
--- a/monetdb5/modules/mal/profiler.mal
+++ b/monetdb5/modules/mal/profiler.mal
@@ -38,10 +38,6 @@ pattern openstream():void
 address CMDopenProfilerStream
 comment "Start profiling the events, send to output stream";
 
-pattern openstream(mode:int):void
-address CMDopenProfilerStream
-comment "Start profiling the events, send to output stream";
-
 pattern closestream():void
 address CMDcloseProfilerStream
 comment "Stop offline proviling";
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Approved output

2020-02-18 Thread Pedro Ferreira
Changeset: bc00d1fe3349 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bc00d1fe3349
Modified Files:
sql/test/mergetables/Tests/sqlsmith-exists2.stable.out
Branch: default
Log Message:

Approved output


diffs (59 lines):

diff --git a/sql/test/mergetables/Tests/sqlsmith-exists2.stable.out 
b/sql/test/mergetables/Tests/sqlsmith-exists2.stable.out
--- a/sql/test/mergetables/Tests/sqlsmith-exists2.stable.out
+++ b/sql/test/mergetables/Tests/sqlsmith-exists2.stable.out
@@ -114,6 +114,55 @@ stdout of test 'sqlsmith-exists2` in dir
 % c0,  c1, c2, c3, c4 # name
 % int, tinyint,int,int,real # type
 % 1,   1,  1,  1,  15 # length
+#select 
+# subq_0.c4 as c0, 
+# subq_0.c8 as c1, 
+# subq_0.c2 as c2, 
+# 1 as c3, 
+# subq_0.c0 as c4, 
+# subq_0.c9 as c5, 
+# subq_0.c9 as c6, 
+# subq_0.c6 as c7
+#from 
+# (select 
+# ref_4.i as c0, 
+# case when (false) 
+# or (ref_7.col3 is not null) then ref_2.col2 else ref_2.col2 end
+# as c1, 
+# ref_7.col6 as c2, 
+# ref_7.col1 as c3, 
+# ref_4.i as c4, 
+# ref_2.col0 as c5, 
+# ref_3.col3 as c6, 
+# ref_0.col1 as c7, 
+# ref_2.col2 as c8, 
+# ref_3.col2 as c9, 
+# ref_7.col1 as c10, 
+# ref_1.aa as c11, 
+# ref_2.col1 as c12, 
+# ref_1.cc as c13, 
+% sys.,sys.,   sys.,   .,  sys.,   sys.,   sys.,   sys. # 
table_name
+% c0,  c1, c2, c3, c4, c5, c6, c7 # name
+% int, int,date,   tinyint,int,int,int,int # type
+% 1,   1,  10, 1,  1,  1,  1,  1 # length
+#select 
+# 1
+# from 
+# tab0
+# inner join analytics as ref_1
+# inner join integers as ref_4
+# on (exists (
+# select 
+# 1
+# where (exists (
+# select 
+# 1)
+# and (ref_4.i is not null
+# on (ref_1.bb is null);
+% . # table_name
+% single_value # name
+% tinyint # type
+% 1 # length
 #ROLLBACK;
 
 # 22:12:15 >  
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Merged with linear-hashing

2020-02-18 Thread Pedro Ferreira
Changeset: a9c8b842f3ed for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a9c8b842f3ed
Added Files:
sql/test/rename/Tests/rename12.stable.err
sql/test/rename/Tests/rename12.stable.out
Modified Files:
sql/server/sql_mvc.c
sql/storage/bat/bat_storage.c
sql/storage/sql_storage.h
sql/storage/store.c
Branch: default
Log Message:

Merged with linear-hashing


diffs (truncated from 565 to 300 lines):

diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c
--- a/sql/server/sql_mvc.c
+++ b/sql/server/sql_mvc.c
@@ -1055,7 +1055,7 @@ mvc_bind_trigger(mvc *m, sql_schema *s, 
 }
 
 sql_type *
-mvc_create_type(mvc *sql, sql_schema * s, const char *name, int digits, int 
scale, int radix, const char *impl)
+mvc_create_type(mvc *sql, sql_schema *s, const char *name, int digits, int 
scale, int radix, const char *impl)
 {
sql_type *t = NULL;

@@ -1355,7 +1355,7 @@ mvc_create_column(mvc *m, sql_table *t, 
TRC_DEBUG(SQL_MVC, "Create column: %s %s %s\n", t->base.name, name, 
tpe->type->sqlname);
if (t->persistence == SQL_DECLARED_TABLE && (!t->s || 
strcmp(t->s->base.name, dt_schema))) 
/* declared tables should not end up in the catalog */
-   return create_sql_column(m->sa, t, name, tpe);
+   return create_sql_column(m->session->tr, t, name, tpe);
else
return sql_trans_create_column(m->session->tr, t, name, tpe);
 }
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -2822,7 +2822,7 @@ update_table(sql_trans *tr, sql_table *f
}
}
 
-   dup_sql_type(tr, ft->s, &(cc->type), &(oc->type));
+   dup_sql_type(tr->parent, ft->s, &(cc->type), &(oc->type));
oc->colnr = cc->colnr;
oc->null = cc->null;
oc->unique = cc->unique;
diff --git a/sql/storage/sql_storage.h b/sql/storage/sql_storage.h
--- a/sql/storage/sql_storage.h
+++ b/sql/storage/sql_storage.h
@@ -470,7 +470,7 @@ extern int sql_trans_check_dependency(sq
 extern list* sql_trans_owner_schema_dependencies(sql_trans *tr, sqlid id);
 
 extern sql_table *create_sql_table(sql_allocator *sa, const char *name, sht 
type, bit system, int persistence, int commit_action, bit properties);
-extern sql_column *create_sql_column(sql_allocator *sa, sql_table *t, const 
char *name, sql_subtype *tpe);
+extern sql_column *create_sql_column(sql_trans *tr, sql_table *t, const char 
*name, sql_subtype *tpe);
 extern sql_ukey *create_sql_ukey(sql_allocator *sa, sql_table *t, const char 
*nme, key_type kt);
 extern sql_fkey *create_sql_fkey(sql_allocator *sa, sql_table *t, const char 
*nme, key_type kt, sql_key *rkey, int on_delete, int on_update );
 extern sql_key *create_sql_kc(sql_allocator *sa, sql_key *k, sql_column *c);
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -1549,7 +1549,9 @@ create_sql_table(sql_allocator *sa, cons
 void
 dup_sql_type(sql_trans *tr, sql_schema *os, sql_subtype *oc, sql_subtype *nc)
 {
-   *nc = *oc;
+   nc->digits = oc->digits;
+   nc->scale = oc->scale;
+   nc->type = oc->type;
if (nc->type->s) { /* user type */
sql_type *lt = NULL;
 
@@ -3407,6 +3409,8 @@ type_dup(sql_trans *tr, int flags, sql_t
t->bits = ot->bits;
t->localtype = ot->localtype;
t->s = s;
+   if (isNew(ot) && newFlagSet(flags) && tr->parent == gtrans)
+   removeNewFlag(ot);
return t;
 }
 
@@ -3453,11 +3457,13 @@ func_dup(sql_trans *tr, int flags, sql_f
}
f->s = s;
f->sa = sa;
+   if (isNew(of) && newFlagSet(flags) && tr->parent == gtrans)
+   removeNewFlag(of);
return f;
 }
 
 static sql_sequence *
-seq_dup(sql_trans *tr, int flags, sql_sequence *oseq, sql_schema * s)
+seq_dup(sql_trans *tr, int flags, sql_sequence *oseq, sql_schema *s)
 {
sql_allocator *sa = (newFlagSet(flags))?tr->parent->sa:tr->sa;
sql_sequence *seq = SA_ZNEW(sa, sql_sequence);
@@ -3471,6 +3477,8 @@ seq_dup(sql_trans *tr, int flags, sql_se
seq->cacheinc = oseq->cacheinc;
seq->cycle = oseq->cycle;
seq->s = s;
+   if (isNew(oseq) && newFlagSet(flags) && tr->parent == gtrans)
+   removeNewFlag(oseq);
return seq;
 }
 
@@ -3617,6 +3625,30 @@ trans_init(sql_trans *tr, backend_stack 
assert(0);
}
}
+   if (ps->seqs.set && s->seqs.set)
+   for (k = ps->seqs.set->h, l = s->seqs.set->h; k && l; k 
= k->next, l = l->next ) { 
+   sql_sequence *pt = k->data; /* parent 
transactions sequence */
+   sql_sequence *t = l->data; 

MonetDB: linear-hashing - Fixed rename12 test by passing the rig...

2020-02-18 Thread Pedro Ferreira
Changeset: 13bc30886798 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=13bc30886798
Added Files:
sql/test/rename/Tests/rename12.stable.err
sql/test/rename/Tests/rename12.stable.out
Modified Files:
sql/server/sql_mvc.c
sql/storage/bat/bat_storage.c
sql/storage/sql_storage.h
sql/storage/store.c
Branch: linear-hashing
Log Message:

Fixed rename12 test by passing the right transaction at update_table. Also 
added missing functions for SQL objects propagation between transactions


diffs (truncated from 565 to 300 lines):

diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c
--- a/sql/server/sql_mvc.c
+++ b/sql/server/sql_mvc.c
@@ -1109,7 +1109,7 @@ mvc_bind_trigger(mvc *m, sql_schema *s, 
 }
 
 sql_type *
-mvc_create_type(mvc *sql, sql_schema * s, const char *name, int digits, int 
scale, int radix, const char *impl)
+mvc_create_type(mvc *sql, sql_schema *s, const char *name, int digits, int 
scale, int radix, const char *impl)
 {
sql_type *t = NULL;
 
@@ -1441,7 +1441,7 @@ mvc_create_column(mvc *m, sql_table *t, 
fprintf(stderr, "#mvc_create_column %s %s %s\n", t->base.name, 
name, tpe->type->sqlname);
if (t->persistence == SQL_DECLARED_TABLE && (!t->s || 
strcmp(t->s->base.name, dt_schema))) 
/* declared tables should not end up in the catalog */
-   return create_sql_column(m->sa, t, name, tpe);
+   return create_sql_column(m->session->tr, t, name, tpe);
else
return sql_trans_create_column(m->session->tr, t, name, tpe);
 }
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -2822,7 +2822,7 @@ update_table(sql_trans *tr, sql_table *f
}
}
 
-   dup_sql_type(tr, ft->s, &(cc->type), &(oc->type));
+   dup_sql_type(tr->parent, ft->s, &(cc->type), &(oc->type));
oc->colnr = cc->colnr;
oc->null = cc->null;
oc->unique = cc->unique;
diff --git a/sql/storage/sql_storage.h b/sql/storage/sql_storage.h
--- a/sql/storage/sql_storage.h
+++ b/sql/storage/sql_storage.h
@@ -470,7 +470,7 @@ extern int sql_trans_check_dependency(sq
 extern list* sql_trans_owner_schema_dependencies(sql_trans *tr, sqlid id);
 
 extern sql_table *create_sql_table(sql_allocator *sa, const char *name, sht 
type, bit system, int persistence, int commit_action, bit properties);
-extern sql_column *create_sql_column(sql_allocator *sa, sql_table *t, const 
char *name, sql_subtype *tpe);
+extern sql_column *create_sql_column(sql_trans *tr, sql_table *t, const char 
*name, sql_subtype *tpe);
 extern sql_ukey *create_sql_ukey(sql_allocator *sa, sql_table *t, const char 
*nme, key_type kt);
 extern sql_fkey *create_sql_fkey(sql_allocator *sa, sql_table *t, const char 
*nme, key_type kt, sql_key *rkey, int on_delete, int on_update );
 extern sql_key *create_sql_kc(sql_allocator *sa, sql_key *k, sql_column *c);
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -1578,7 +1578,9 @@ create_sql_table(sql_allocator *sa, cons
 void
 dup_sql_type(sql_trans *tr, sql_schema *os, sql_subtype *oc, sql_subtype *nc)
 {
-   *nc = *oc;
+   nc->digits = oc->digits;
+   nc->scale = oc->scale;
+   nc->type = oc->type;
if (nc->type->s) { /* user type */
sql_type *lt = NULL;
 
@@ -3448,6 +3450,8 @@ type_dup(sql_trans *tr, int flags, sql_t
t->bits = ot->bits;
t->localtype = ot->localtype;
t->s = s;
+   if (isNew(ot) && newFlagSet(flags) && tr->parent == gtrans)
+   removeNewFlag(ot);
return t;
 }
 
@@ -3494,11 +3498,13 @@ func_dup(sql_trans *tr, int flags, sql_f
}
f->s = s;
f->sa = sa;
+   if (isNew(of) && newFlagSet(flags) && tr->parent == gtrans)
+   removeNewFlag(of);
return f;
 }
 
 static sql_sequence *
-seq_dup(sql_trans *tr, int flags, sql_sequence *oseq, sql_schema * s)
+seq_dup(sql_trans *tr, int flags, sql_sequence *oseq, sql_schema *s)
 {
sql_allocator *sa = (newFlagSet(flags))?tr->parent->sa:tr->sa;
sql_sequence *seq = SA_ZNEW(sa, sql_sequence);
@@ -3512,6 +3518,8 @@ seq_dup(sql_trans *tr, int flags, sql_se
seq->cacheinc = oseq->cacheinc;
seq->cycle = oseq->cycle;
seq->s = s;
+   if (isNew(oseq) && newFlagSet(flags) && tr->parent == gtrans)
+   removeNewFlag(oseq);
return seq;
 }
 
@@ -3658,6 +3666,30 @@ trans_init(sql_trans *tr, backend_stack 
assert(0);
}
}
+   if (ps->seqs.set && s->seqs.set)
+   for (k = ps->seqs.set->h, l = s->seqs.set->h; k && l; k 
= k->next, l = l->next ) { 
+   

MonetDB: default - Split upgrade to default branch off from upgr...

2020-02-18 Thread Sjoerd Mullender
Changeset: 1d9520089df0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1d9520089df0
Modified Files:
sql/backends/monet5/sql_upgrades.c
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128

sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64.int128
sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade/Tests/upgrade.stable.out
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade/Tests/upgrade.stable.out
sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: default
Log Message:

Split upgrade to default branch off from upgrade to linear-hashing branch.


diffs (truncated from 461 to 300 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
@@ -2275,7 +2275,7 @@ static str
 sql_update_linear_hashing(Client c, mvc *sql, const char *prev_schema, bool 
*systabfixed)
 {
sql_table *t;
-   size_t bufsize = 32768, pos = 0;
+   size_t bufsize = 8192, pos = 0;
char *err = NULL, *buf = GDKmalloc(bufsize);
sql_schema *sys = mvc_bind_schema(sql, "sys");
 
@@ -2486,6 +2486,41 @@ sql_update_linear_hashing(Client c, mvc 

"('STATEMENT'),('TABLE'),('TEMP'),('TEMPORARY'),('TEXT'),('TIME'),('TIMESTAMP'),('TRACE'),('TYPE'),('UNIONJOIN'),"
"('WEEK'),('YEAR'),('ZONE');\n");
 
+   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
+   pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", 
prev_schema);
+   assert(pos < bufsize);
+
+   printf("Running database upgrade commands:\n%s\n", buf);
+   err = SQLstatementIntern(c, , "update", true, false, NULL);
+   if (err == MAL_SUCCEED) {
+   pos = snprintf(buf, bufsize, "set schema \"sys\";\n"
+  "ALTER TABLE sys.keywords SET READ ONLY;\n");
+   pos += snprintf(buf + pos, bufsize - pos, "set schema 
\"%s\";\n", prev_schema);
+   assert(pos < bufsize);
+   printf("Running database upgrade commands:\n%s\n", buf);
+   err = SQLstatementIntern(c, , "update", true, false, NULL);
+   }
+   GDKfree(buf);
+   return err; /* usually MAL_SUCCEED */
+}
+
+static str
+sql_update_default(Client c, mvc *sql, const char *prev_schema, bool 
*systabfixed)
+{
+   size_t bufsize = 32768, pos = 0;
+   char *err = NULL, *buf = GDKmalloc(bufsize);
+
+   if (!*systabfixed &&
+   (err = sql_fix_system_tables(c, sql, prev_schema)) != NULL)
+   return err;
+   *systabfixed = true;
+
+   if (buf == NULL)
+   throw(SQL, __func__, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+
+   pos += snprintf(buf + pos, bufsize - pos,
+   "set schema \"sys\";\n");
+
/* 39_analytics.sql */
pos += snprintf(buf + pos, bufsize - pos,
"create window stddev_samp(val TINYINT) returns 
DOUBLE\n"
@@ -3192,14 +3227,24 @@ SQLupgrades(Client c, mvc *m)
freeException(err);
res = -1;
}
-   if (!res &&
-   (err = sql_update_default_bam(c, m, prev_schema)) != NULL) {
+   }
+
+   sql_find_subtype(, "tinyint", 0, 0);
+   if (!sql_bind_func(m->sa, s, "stddev_samp", , NULL, F_ANALYTIC)) {
+   if ((err = sql_update_default(c, m, prev_schema, )) 
!= NULL) {
TRC_ERROR(SQL_UPGRADES, "%s\n", err);
freeException(err);
res = -1;
}
}
 
+   if (!res &&
+   (err = sql_update_default_bam(c, m, prev_schema)) != NULL) {
+   TRC_ERROR(SQL_UPGRADES, "%s\n", err);
+   freeException(err);
+   res = -1;
+   }
+
GDKfree(prev_schema);
return res;
 }
diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 

MonetDB: default - Merge with linear-hashing branch.

2020-02-18 Thread Sjoerd Mullender
Changeset: 9bf2372c34c2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9bf2372c34c2
Added Files:
sql/test/rename/Tests/rename12.sql
Modified Files:
sql/backends/monet5/sql_scenario.c
sql/backends/monet5/sql_upgrades.c
sql/server/rel_exp.c
sql/server/rel_unnest.c
sql/test/rename/Tests/All
Branch: default
Log Message:

Merge with linear-hashing branch.


diffs (115 lines):

diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -1123,6 +1123,8 @@ SQLparser(Client c)
}
if (be->language !='S') {
msg = createException(SQL, "SQLparser", SQLSTATE(42000) 
"Unrecognized language prefix: %ci\n", be->language);
+   in->pos = in->len;  /* skip rest of the input */
+   c->mode = FINISHCLIENT; /* and disconnect, as client doesn't 
respect the mapi protocol */
goto finalize;
}
 
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
@@ -2272,7 +2272,7 @@ sql_update_nov2019_sp1_hugeint(Client c,
 #endif
 
 static str
-sql_update_default(Client c, mvc *sql, const char *prev_schema, bool 
*systabfixed)
+sql_update_linear_hashing(Client c, mvc *sql, const char *prev_schema, bool 
*systabfixed)
 {
sql_table *t;
size_t bufsize = 32768, pos = 0;
@@ -3187,7 +3187,7 @@ SQLupgrades(Client c, mvc *m)
 #endif
 
if (!res && !sql_bind_func(m->sa, s, "suspend_log_flushing", NULL, 
NULL, F_PROC)) {
-   if ((err = sql_update_default(c, m, prev_schema, )) 
!= NULL) {
+   if ((err = sql_update_linear_hashing(c, m, prev_schema, 
)) != NULL) {
TRC_ERROR(SQL_UPGRADES, "%s\n", err);
freeException(err);
res = -1;
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -1592,6 +1592,8 @@ exp_is_true(mvc *sql, sql_exp *e)
return atom_is_true(sql->args[e->flag]);
}
}
+   if (e->type == e_cmp && e->flag == cmp_equal)
+   return (exp_is_true(sql, e->l) && exp_is_true(sql, e->r));
return 0;
 }
 
diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c
--- a/sql/server/rel_unnest.c
+++ b/sql/server/rel_unnest.c
@@ -2662,6 +2662,7 @@ rel_unnest(mvc *sql, sql_rel *rel)
rel = rel_visitor_bottomup(sql, rel, _join2semi, ); 
/* where possible convert anyequal functions into marks */
rel = rel_visitor_bottomup(sql, rel, _compare_exp, );   
/* only allow for e_cmp in selects and  handling */
rel = rel_visitor_bottomup(sql, rel, _remove_xp_project, 
); /* remove crossproducts with project ( project [ atom ] ) [ etc 
] */
+   rel = rel_visitor_bottomup(sql, rel, _simplify, );  
/* as expressions got merged before, lets try to simplify again */
rel = _rel_unnest(sql, rel);
rel = rel_visitor_bottomup(sql, rel, _fix_count, ); 
/* fix count inside a left join (adds a project (if (cnt IS null) then (0) else 
(cnt)) */
rel = rel_visitor_bottomup(sql, rel, _remove_xp, ); 
/* remove crossproducts with project [ atom ] */
diff --git a/sql/test/rename/Tests/All b/sql/test/rename/Tests/All
--- a/sql/test/rename/Tests/All
+++ b/sql/test/rename/Tests/All
@@ -10,3 +10,4 @@ rename08
 rename09
 rename10
 HAVE_PYMONETDB?rename11
+rename12
diff --git a/sql/test/rename/Tests/rename12.sql 
b/sql/test/rename/Tests/rename12.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/rename/Tests/rename12.sql
@@ -0,0 +1,46 @@
+create schema "SA";
+create schema "SB";
+
+create table "SA"."t1" (a uuid);
+insert into "SA"."t1" values (null), ('be887b3d-08f7-c308-7285-354a1857cbd9');
+
+start transaction;
+select "a" from "SA"."t1";
+alter table "SA"."t1" set schema "SB";
+select "a" from "SB"."t1";
+drop table "SB"."t1";
+rollback;
+
+select "a" from "SA"."t1";
+select "a" from "SB"."t1"; --error
+
+start transaction;
+select "a" from "SA"."t1";
+alter table "SA"."t1" rename column "a" to "b"; 
+select "b" from "SA"."t1";
+commit;
+
+select "b" from "SA"."t1";
+select "a" from "SA"."t1"; --error
+
+start transaction;
+select "b" from "SA"."t1";
+alter table "SA"."t1" rename column "b" to "c"; 
+select "c" from "SA"."t1";
+select "b" from "SA"."t1"; --error
+rollback;
+
+select "b" from "SA"."t1";
+select "c" from "SA"."t1"; --error
+
+start transaction;
+select "b" from "SA"."t1";
+alter table "SA"."t1" set schema "SB";
+select "b" from "SB"."t1";
+commit;
+
+select "b" from "SB"."t1";
+select "b" from "SA"."t1"; --error
+
+drop schema "SA" cascade;
+drop schema "SB" cascade;
___
checkin-list mailing list
checkin-list@monetdb.org

MonetDB: linear-hashing - Rename function: upgrade to linear-has...

2020-02-18 Thread Sjoerd Mullender
Changeset: 9eec1f9568ad for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9eec1f9568ad
Modified Files:
sql/backends/monet5/sql_upgrades.c
Branch: linear-hashing
Log Message:

Rename function: upgrade to linear-hashing branch, not default.


diffs (21 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
@@ -2352,7 +2352,7 @@ sql_update_nov2019_sp1_hugeint(Client c,
 #endif
 
 static str
-sql_update_default(Client c, mvc *sql, const char *prev_schema, bool 
*systabfixed)
+sql_update_linear_hashing(Client c, mvc *sql, const char *prev_schema, bool 
*systabfixed)
 {
sql_table *t;
size_t bufsize = 8192, pos = 0;
@@ -2870,7 +2870,7 @@ SQLupgrades(Client c, mvc *m)
 #endif
 
if (!res && !sql_bind_func(m->sa, s, "suspend_log_flushing", NULL, 
NULL, F_PROC)) {
-   if ((err = sql_update_default(c, m, prev_schema, )) 
!= NULL) {
+   if ((err = sql_update_linear_hashing(c, m, prev_schema, 
)) != NULL) {
fprintf(stderr, "!%s\n", err);
freeException(err);
res = -1;
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: hitchhiker - Merge with default

2020-02-18 Thread Thodoris Zois
Changeset: 6e2d11ae973b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6e2d11ae973b
Modified Files:
sql/backends/monet5/sql_upgrades.c
Branch: hitchhiker
Log Message:

Merge with default


diffs (12 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
@@ -3178,7 +3178,7 @@ SQLupgrades(Client c, mvc *m)
sql_find_subtype(, "hugeint", 0, 0);
if (!sql_bind_func(m->sa, s, "median_avg", , NULL, F_AGGR)) {
if ((err = sql_update_nov2019_sp1_hugeint(c, m, 
prev_schema, )) != NULL) {
-   fprintf(stderr, "!%s\n", err);
+   TRC_ERROR(SQL_UPGRADES, "%s\n", err);
freeException(err);
res = -1;
}
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Replaced fprintf

2020-02-18 Thread Thodoris Zois
Changeset: 97db6d79429c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=97db6d79429c
Modified Files:
sql/backends/monet5/sql_upgrades.c
Branch: default
Log Message:

Replaced fprintf


diffs (12 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
@@ -3178,7 +3178,7 @@ SQLupgrades(Client c, mvc *m)
sql_find_subtype(, "hugeint", 0, 0);
if (!sql_bind_func(m->sa, s, "median_avg", , NULL, F_AGGR)) {
if ((err = sql_update_nov2019_sp1_hugeint(c, m, 
prev_schema, )) != NULL) {
-   fprintf(stderr, "!%s\n", err);
+   TRC_ERROR(SQL_UPGRADES, "%s\n", err);
freeException(err);
res = -1;
}
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: hitchhiker - Merge with default

2020-02-18 Thread Thodoris Zois
Changeset: daa17a255eea for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=daa17a255eea
Added Files:
sql/server/rel_rewriter.c
sql/server/rel_rewriter.h
sql/test/BugTracker-2020/Tests/functions-not-persist.Bug-6819.py
sql/test/BugTracker-2020/Tests/functions-not-persist.Bug-6819.stable.err
sql/test/BugTracker-2020/Tests/functions-not-persist.Bug-6819.stable.out
Modified Files:
.hgtags
ChangeLog
MonetDB.spec
NT/monetdb_config.h.in
NT/rules.msc
clients/Tests/exports.stable.out
clients/mapilib/mapi.rc
clients/odbc/driver/driver.rc
clients/odbc/winsetup/setup.rc
configure.ag
debian/changelog
gdk/gdk.h
gdk/gdk_aggr.c
gdk/gdk_atoms.h
gdk/gdk_batop.c
gdk/gdk_bbp.c
gdk/gdk_hash.c
gdk/gdk_hash.h
gdk/gdk_private.h
gdk/gdk_string.c
gdk/gdk_system.h
gdk/gdk_tracer.c
gdk/gdk_tracer.h
gdk/gdk_utils.c
gdk/gdk_utils.h
gdk/libbat.rc
geom/monetdb5/geom.c
libversions
monetdb5/mal/mal_exception.c
monetdb5/mal/mal_module.c
monetdb5/mal/mal_private.h
monetdb5/modules/atoms/blob.h
monetdb5/modules/kernel/bat5.c
monetdb5/modules/mal/remote.c
monetdb5/optimizer/opt_oltp.c
monetdb5/tools/libmonetdb5.rc
sql/backends/monet5/UDF/capi/capi.c
sql/backends/monet5/UDF/capi/capi.h
sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.stable.out
sql/backends/monet5/UDF/pyapi3/pyheader.h
sql/backends/monet5/sql_scenario.c
sql/scripts/81_tracer.sql
sql/server/Makefile.ag
sql/server/rel_optimizer.c
sql/server/rel_psm.c
sql/server/rel_rel.c
sql/server/rel_rel.h
sql/server/rel_schema.c
sql/server/rel_unnest.c
sql/server/sql_mvc.c
sql/storage/store.c

sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.stable.out
sql/test/BugTracker-2017/Tests/not_plus.Bug-6294.stable.out

sql/test/BugTracker-2018/Tests/sqlitelogictest-mal-calc-undefined.Bug-6566.stable.out
sql/test/BugTracker-2020/Tests/All
sql/test/BugTracker-2020/Tests/analyze-stream-table.Bug-6817.sql
sql/test/BugTracker-2020/Tests/analyze-stream-table.Bug-6817.stable.err
sql/test/BugTracker-2020/Tests/analyze-stream-table.Bug-6817.stable.out
sql/test/BugTracker-2020/Tests/select-where-in-rtrim-crash.Bug-6818.sql

sql/test/BugTracker-2020/Tests/select-where-in-rtrim-crash.Bug-6818.stable.out
sql/test/mergetables/Tests/sqlsmith-exists2.sql
sql/test/subquery/Tests/subquery3.sql
sql/test/subquery/Tests/subquery3.stable.out
tools/merovingian/ChangeLog
tools/merovingian/daemon/forkmserver.c
tools/merovingian/utils/properties.c
tools/mserver/mserver5.c
vertoo.data
Branch: hitchhiker
Log Message:

Merge with default


diffs (truncated from 5069 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -755,3 +755,6 @@ c35ea84b568b792c5fd073f6a1e1a24372de0e20
 4eb6068f63cf87fc6996daed59fbcc917c8b2881 Nov2019_13
 c35ea84b568b792c5fd073f6a1e1a24372de0e20 Nov2019_SP2_release
 4eb6068f63cf87fc6996daed59fbcc917c8b2881 Nov2019_SP2_release
+7186b517a584f0244e20eb7abe61f7a7c0c9ea1b Nov2019_15
+4eb6068f63cf87fc6996daed59fbcc917c8b2881 Nov2019_SP2_release
+7186b517a584f0244e20eb7abe61f7a7c0c9ea1b Nov2019_SP2_release
diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
 # ChangeLog file for devel
 # This file is updated with Maddlog
 
+* Tue Feb 18 2020 Thodoris Zois 
+- Added mserver5 option (--dbtrace=) in order to be able to
+  specify the output directory of the produced traces.
+
 * Thu Feb  6 2020 Panagiotis Koutsourakis 
 - Add port and host as fields in the .monetdb file.
 
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -941,6 +941,12 @@ fi
 %postun -p /sbin/ldconfig
 
 %changelog
+* Mon Feb 17 2020 Sjoerd Mullender  - 11.35.15-20200217
+- Rebuilt.
+- BZ#6817: running analyze on a schema which contains a stream table
+  stops with an error
+- BZ#6819: functions do not persist
+
 * Wed Feb 12 2020 Sjoerd Mullender  - 11.35.13-20200212
 - Rebuilt.
 
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -512,7 +512,6 @@ ssize_t shtFromStr(const char *src, size
 ssize_t shtToStr(str *dst, size_t *len, const sht *src, bool external);
 const sht sht_nil;
 ssize_t strFromStr(const char *restrict src, size_t *restrict len, str 
*restrict dst, bool external);
-BUN strHash(const char *s);
 const char str_nil[2];
 gdk_return void_inplace(BAT *b, oid id, const void *val, bool force) 

MonetDB: linear-hashing - cleanup true=true early, solves later ...

2020-02-18 Thread Niels Nes
Changeset: 4d07d0070afb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4d07d0070afb
Modified Files:
sql/server/rel_exp.c
sql/server/rel_unnest.c
Branch: linear-hashing
Log Message:

cleanup true=true early, solves later problems in rel_bin rel2bin_semijoin


diffs (23 lines):

diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -1597,6 +1597,8 @@ exp_is_true(mvc *sql, sql_exp *e)
return atom_is_true(sql->args[e->flag]);
}
}
+   if (e->type == e_cmp && e->flag == cmp_equal)
+   return (exp_is_true(sql, e->l) && exp_is_true(sql, e->r));
return 0;
 }
 
diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c
--- a/sql/server/rel_unnest.c
+++ b/sql/server/rel_unnest.c
@@ -2793,6 +2793,7 @@ rel_unnest(mvc *sql, sql_rel *rel)
rel = rel_visitor(sql, rel, _join2semi);/* where 
possible convert anyequal functions into marks */
rel = rel_visitor(sql, rel, _compare_exp);  /* only allow 
for e_cmp in selects and  handling */
rel = rel_visitor(sql, rel, _remove_xp_project);/* 
remove crossproducts with project ( project [ atom ] ) [ etc ] */
+   rel = rel_visitor(sql, rel, _simplify); /* as 
expressions got merged before, lets try to simplify again */
rel = _rel_unnest(sql, rel);
rel = rel_visitor(sql, rel, _fix_count);/* fix count 
inside a left join (adds a project (if (cnt IS null) then (0) else (cnt)) */
rel = rel_visitor(sql, rel, _remove_xp);/* remove 
crossproducts with project [ atom ] */
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: linear-hashing - make sure that incorrect protocol usag...

2020-02-18 Thread Niels Nes
Changeset: 08bf0f3ee0e2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=08bf0f3ee0e2
Modified Files:
sql/backends/monet5/sql_scenario.c
Branch: linear-hashing
Log Message:

make sure that incorrect protocol usage is directly stopped.


diffs (12 lines):

diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -1136,6 +1136,8 @@ SQLparser(Client c)
}
if (be->language !='S') {
msg = createException(SQL, "SQLparser", SQLSTATE(42000) 
"Unrecognized language prefix: %ci\n", be->language);
+   in->pos = in->len;  /* skip rest of the input */
+   c->mode = FINISHCLIENT; /* and disconnect, as client doesn't 
respect the mapi protocol */
goto finalize;
}
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - merge with default

2020-02-18 Thread Thodoris Zois
Changeset: 873347ebd047 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=873347ebd047
Modified Files:
gdk/gdk_aggr.c
gdk/gdk_string.c
sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.stable.out
Branch: default
Log Message:

merge with default


diffs (71 lines):

diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -3169,7 +3169,7 @@ BATcalcvariance_sample(dbl *avgp, BAT *b
} while (0)
 
 static dbl
-calccovariance(const void *restrict v1, const void *restrict v2, BUN cnt, int 
tp, bool issample, const char *func)
+calccovariance(const void *v1, const void *v2, BUN cnt, int tp, bool issample, 
const char *func)
 {
BUN n = 0, i;
dbl mean1 = 0, mean2 = 0, m2 = 0, delta1, delta2;
@@ -3246,7 +3246,7 @@ BATcalccorrelation(BAT *b1, BAT *b2)
 {
BUN n = 0, i, cnt = BATcount(b1);
dbl mean1 = 0, mean2 = 0, up = 0, down1 = 0, down2 = 0, delta1, delta2, 
aux;
-   const void *restrict v1 = (const void *) Tloc(b1, 0), *restrict v2 = 
(const void *) Tloc(b2, 0);
+   const void *v1 = (const void *) Tloc(b1, 0), *v2 = (const void *) 
Tloc(b2, 0);
int tp = b1->ttype;
 
switch (tp) {
@@ -3517,8 +3517,8 @@ BATgroupvariance_population(BAT *b, BAT 
 
 #define AGGR_COVARIANCE(TYPE)  \
do {\
-   const TYPE *restrict vals1 = (const TYPE *) Tloc(b1, 0);
\
-   const TYPE *restrict vals2 = (const TYPE *) Tloc(b2, 0);
\
+   const TYPE *vals1 = (const TYPE *) Tloc(b1, 0); \
+   const TYPE *vals2 = (const TYPE *) Tloc(b2, 0); \
while (ncand > 0) { \
ncand--;\
i = canditer_next() - b1->hseqbase;  \
@@ -3691,8 +3691,8 @@ BATgroupcovariance_population(BAT *b1, B
 
 #define AGGR_CORRELATION(TYPE) \
do {\
-   const TYPE *restrict vals1 = (const TYPE *) Tloc(b1, 0);
\
-   const TYPE *restrict vals2 = (const TYPE *) Tloc(b2, 0);
\
+   const TYPE *vals1 = (const TYPE *) Tloc(b1, 0); \
+   const TYPE *vals2 = (const TYPE *) Tloc(b2, 0); \
while (ncand > 0) { \
ncand--;\
i = canditer_next() - b1->hseqbase;  \
diff --git a/gdk/gdk_string.c b/gdk/gdk_string.c
--- a/gdk/gdk_string.c
+++ b/gdk/gdk_string.c
@@ -794,8 +794,8 @@ concat_strings(BAT **bnp, ValPtr pt, BAT
 {
oid gid;
BUN i, p, nils = 0;
-   size_t *lengths = NULL, *lastseplength = NULL, separator_length = 0, 
next_length;
-   str *astrings = NULL, s, sl;
+   size_t *restrict lengths = NULL, *restrict lastseplength = NULL, 
separator_length = 0, next_length;
+   str *restrict astrings = NULL, s, sl;
BATiter bi, bis = (BATiter) {0};
BAT *bn = NULL;
gdk_return rres = GDK_SUCCEED;
diff --git a/sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.stable.out 
b/sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.stable.out
--- a/sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.stable.out
+++ b/sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.stable.out
@@ -41,8 +41,8 @@ stdout of test 'pyloader3_01` in directo
 % sys.functions,   sys.functions,  sys.functions,  sys.functions,  
sys.functions,  sys.functions,  sys.functions,  sys.functions # table_name
 % name,func,   mod,language,   type,   side_effect,varres, 
vararg # name
 % varchar, varchar,varchar,int,int,boolean,
boolean,boolean # type
-% 6,   32, 6,  1,  1,  5,  5,  5 # length
-[ "myfunc","{\n\t_emit.emit({'a':42,'d':1})\n};",  "pyapi3",   6,  
7,  true,   true,   false   ]
+% 6,   32, 5,  1,  1,  5,  5,  5 # length
+[ "myfunc","{\n\t_emit.emit({'a':42,'d':1})\n};",  "pyapi",6,  
7,  true,   true,   false   ]
 #COPY LOADER INTO mytable FROM myfunc();
 #COPY LOADER INTO mytable FROM myfunc3(46, 'asdf', 3.2);
 #COPY LOADER INTO mytable FROM myfunc2(45, 'asdf');
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Sending SIGHUP to mserver5 will cause GDKtrac...

2020-02-18 Thread Thodoris Zois
Changeset: b6bde489af97 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b6bde489af97
Modified Files:
gdk/gdk_tracer.c
gdk/gdk_tracer.h
tools/mserver/mserver5.c
Branch: default
Log Message:

Sending SIGHUP to mserver5 will cause GDKtracer to reopen the trace file 
(logrotation)


diffs (120 lines):

diff --git a/gdk/gdk_tracer.c b/gdk/gdk_tracer.c
--- a/gdk/gdk_tracer.c
+++ b/gdk/gdk_tracer.c
@@ -16,6 +16,8 @@ static gdk_tracer *active_tracer = 
 MT_Lock lock = MT_LOCK_INITIALIZER("GDKtracer_1");
 
 static FILE *output_file;
+static char file_name[FILENAME_MAX];
+
 static ATOMIC_TYPE CUR_ADAPTER = ATOMIC_VAR_INIT(DEFAULT_ADAPTER);
 static bool INIT_BASIC_ADAPTER = false;
 static bool LOG_EXC_REP = false;
@@ -29,12 +31,11 @@ LOG_LEVEL LVL_PER_COMPONENT[] = {
 
 
 
-// When BASIC adapter is active, all the log messages are getting output to a 
file.
+// When BASIC adapter is active, all the log messages are getting printed to a 
file.
 // This function prepares a file in order to write the contents of the buffer 
when necessary.
 static gdk_return
 _GDKtracer_init_basic_adptr(void)
 {
-   char file_name[FILENAME_MAX];   
const char* TRACE_PATH = GDKgetenv("gdk_dbpath");
 
if(GDKgetenv("gdk_dbtrace") != NULL)
@@ -42,17 +43,17 @@ static gdk_return
 
snprintf(file_name, sizeof(file_name), "%s%c%s", TRACE_PATH, DIR_SEP, 
FILE_NAME);
output_file = fopen(file_name, "a");
-
+   
// Even if creating the file failed, the adapter has 
// still tried to initialize and we shouldn't retry it
INIT_BASIC_ADAPTER = true;
-   
+
if(!output_file)
{
-   GDK_TRACER_EXCEPTION(BASIC_INIT_FAILED ": %s\n", file_name);
+   GDK_TRACER_EXCEPTION(OPENFILE_FAILED);
return GDK_FAIL;
}
-   
+
return GDK_SUCCEED;
 }
 
@@ -190,6 +191,35 @@ GDKtracer_get_timestamp(const char *fmt,
 }
 
 
+void
+GDKtracer_reinit_basic(int sig)
+{
+   (void) sig;
+
+   // GDKtracer needs to reopen the file only in 
+   // case the adapter is BASIC
+   if ((int) ATOMIC_GET(_ADAPTER) != BASIC)
+   return;
+
+   // BASIC adapter has been initialized already and file is open
+   if(INIT_BASIC_ADAPTER && output_file) {
+   // Make sure that GDKtracer is not trying to flush the buffer
+   MT_lock_set();
+   {
+   // Close file 
+   fclose(output_file);
+   output_file = NULL;
+   
+   // Open a new file in append mode
+   output_file = fopen(file_name, "a");
+   if(!output_file)
+   GDK_TRACER_EXCEPTION(OPENFILE_FAILED);
+   }
+   MT_lock_unset();   
+   }
+}
+
+
 gdk_return
 GDKtracer_stop(void)
 {
diff --git a/gdk/gdk_tracer.h b/gdk/gdk_tracer.h
--- a/gdk/gdk_tracer.h
+++ b/gdk/gdk_tracer.h
@@ -44,7 +44,7 @@
 #define NEW_LINE '\n'
 #define MXW "20"
 
-#define BASIC_INIT_FAILED "Failed to initialize BASIC adapter"
+#define OPENFILE_FAILED "Failed to open "FILE_NAME
 #define GDKTRACER_FAILED "Failed to write logs"
 
 #define AS_STR(x) #x
@@ -334,6 +334,10 @@ typedef struct GDKtracer {
 gdk_export char *GDKtracer_get_timestamp(const char *fmt, char *buf, size_t 
sz);
 
 
+// Used for logrotate
+gdk_export void GDKtracer_reinit_basic(int sig);
+
+
 gdk_export gdk_return GDKtracer_stop(void);
 
 
diff --git a/tools/mserver/mserver5.c b/tools/mserver/mserver5.c
--- a/tools/mserver/mserver5.c
+++ b/tools/mserver/mserver5.c
@@ -733,6 +733,9 @@ main(int argc, char **av)
free(err);
}
 
+   // Register signal to GDKtracer (logrotate)
+   signal(SIGHUP, GDKtracer_reinit_basic);
+
 #ifdef _MSC_VER
printf("# MonetDB server is started. To stop server press Ctrl-C.\n");
 #endif
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Approved output

2020-02-18 Thread Pedro Ferreira
Changeset: f2e01ae3026b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f2e01ae3026b
Modified Files:
sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.stable.out
Branch: default
Log Message:

Approved output


diffs (14 lines):

diff --git a/sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.stable.out 
b/sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.stable.out
--- a/sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.stable.out
+++ b/sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.stable.out
@@ -41,8 +41,8 @@ stdout of test 'pyloader3_01` in directo
 % sys.functions,   sys.functions,  sys.functions,  sys.functions,  
sys.functions,  sys.functions,  sys.functions,  sys.functions # table_name
 % name,func,   mod,language,   type,   side_effect,varres, 
vararg # name
 % varchar, varchar,varchar,int,int,boolean,
boolean,boolean # type
-% 6,   32, 6,  1,  1,  5,  5,  5 # length
-[ "myfunc","{\n\t_emit.emit({'a':42,'d':1})\n};",  "pyapi3",   6,  
7,  true,   true,   false   ]
+% 6,   32, 5,  1,  1,  5,  5,  5 # length
+[ "myfunc","{\n\t_emit.emit({'a':42,'d':1})\n};",  "pyapi",6,  
7,  true,   true,   false   ]
 #COPY LOADER INTO mytable FROM myfunc();
 #COPY LOADER INTO mytable FROM myfunc3(46, 'asdf', 3.2);
 #COPY LOADER INTO mytable FROM myfunc2(45, 'asdf');
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Don't add restrict constraint on memory areas...

2020-02-18 Thread Pedro Ferreira
Changeset: c1f45a1be010 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c1f45a1be010
Modified Files:
gdk/gdk_aggr.c
gdk/gdk_string.c
Branch: default
Log Message:

Don't add restrict constraint on memory areas that might overlap


diffs (57 lines):

diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -3169,7 +3169,7 @@ BATcalcvariance_sample(dbl *avgp, BAT *b
} while (0)
 
 static dbl
-calccovariance(const void *restrict v1, const void *restrict v2, BUN cnt, int 
tp, bool issample, const char *func)
+calccovariance(const void *v1, const void *v2, BUN cnt, int tp, bool issample, 
const char *func)
 {
BUN n = 0, i;
dbl mean1 = 0, mean2 = 0, m2 = 0, delta1, delta2;
@@ -3246,7 +3246,7 @@ BATcalccorrelation(BAT *b1, BAT *b2)
 {
BUN n = 0, i, cnt = BATcount(b1);
dbl mean1 = 0, mean2 = 0, up = 0, down1 = 0, down2 = 0, delta1, delta2, 
aux;
-   const void *restrict v1 = (const void *) Tloc(b1, 0), *restrict v2 = 
(const void *) Tloc(b2, 0);
+   const void *v1 = (const void *) Tloc(b1, 0), *v2 = (const void *) 
Tloc(b2, 0);
int tp = b1->ttype;
 
switch (tp) {
@@ -3517,8 +3517,8 @@ BATgroupvariance_population(BAT *b, BAT 
 
 #define AGGR_COVARIANCE(TYPE)  \
do {\
-   const TYPE *restrict vals1 = (const TYPE *) Tloc(b1, 0);
\
-   const TYPE *restrict vals2 = (const TYPE *) Tloc(b2, 0);
\
+   const TYPE *vals1 = (const TYPE *) Tloc(b1, 0); \
+   const TYPE *vals2 = (const TYPE *) Tloc(b2, 0); \
while (ncand > 0) { \
ncand--;\
i = canditer_next() - b1->hseqbase;  \
@@ -3691,8 +3691,8 @@ BATgroupcovariance_population(BAT *b1, B
 
 #define AGGR_CORRELATION(TYPE) \
do {\
-   const TYPE *restrict vals1 = (const TYPE *) Tloc(b1, 0);
\
-   const TYPE *restrict vals2 = (const TYPE *) Tloc(b2, 0);
\
+   const TYPE *vals1 = (const TYPE *) Tloc(b1, 0); \
+   const TYPE *vals2 = (const TYPE *) Tloc(b2, 0); \
while (ncand > 0) { \
ncand--;\
i = canditer_next() - b1->hseqbase;  \
diff --git a/gdk/gdk_string.c b/gdk/gdk_string.c
--- a/gdk/gdk_string.c
+++ b/gdk/gdk_string.c
@@ -794,8 +794,8 @@ concat_strings(BAT **bnp, ValPtr pt, BAT
 {
oid gid;
BUN i, p, nils = 0;
-   size_t *lengths = NULL, *lastseplength = NULL, separator_length = 0, 
next_length;
-   str *astrings = NULL, s, sl;
+   size_t *restrict lengths = NULL, *restrict lastseplength = NULL, 
separator_length = 0, next_length;
+   str *restrict astrings = NULL, s, sl;
BATiter bi, bis = (BATiter) {0};
BAT *bn = NULL;
gdk_return rres = GDK_SUCCEED;
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: batcalc-updated - Implemented extra BAT argument to ind...

2020-02-18 Thread Sjoerd Mullender
Changeset: b9274fa8b671 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b9274fa8b671
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
gdk/gdk_aggr.c
gdk/gdk_calc.c
gdk/gdk_calc.h
gdk/gdk_calc_compare.h
gdk/gdk_string.c
monetdb5/modules/mal/00_batcalc_hge.mal
monetdb5/modules/mal/00_batcalc_hge.mal.sh
monetdb5/modules/mal/01_batcalc.mal
monetdb5/modules/mal/01_batcalc.mal.sh
monetdb5/modules/mal/batcalc.c
Branch: batcalc-updated
Log Message:

Implemented extra BAT argument to indicate for which values to do calculations.


diffs (truncated from 89324 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -719,28 +719,52 @@ stdout of test 'MAL-signatures` in direc
 [ "batalgebra","not_like", "command 
batalgebra.not_like(s:bat[:str], pat:str, esc:str):bat[:bit] ",
"BATPCREnotlike;",  ""  ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:any_1], 
b2:bat[:any_1]):bat[:bit] ","CMDbatNE;","Return B1 != B2"   ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:any_1], b2:bat[:any_1], 
nil_matches:bit):bat[:bit] ",   "CMDbatNE;","Return B1 != B2"   ]
+[ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:any_1], b2:bat[:any_1], 
r:bat[:bit]):bat[:bit] ",   "CMDbatNE;","Return B1 != B2"   ]
+[ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:any_1], b2:bat[:any_1], 
r:bat[:bit], nil_matches:bit):bat[:bit] ",  "CMDbatNE;","Return B1 != B2"   
]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:any_1], b2:bat[:any_1], 
s1:bat[:oid], s2:bat[:oid]):bat[:bit] ","CMDbatNE;","Return B1 != B2 
with candidates list"  ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:any_1], b2:bat[:any_1], 
s1:bat[:oid], s2:bat[:oid], nil_matches:bit):bat[:bit] ",   "CMDbatNE;",
"Return B1 != B2 with candidates list"  ]
+[ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:any_1], b2:bat[:any_1], 
s1:bat[:oid], s2:bat[:oid], r:bat[:bit]):bat[:bit] ",   "CMDbatNE;",
"Return B1 != B2 with candidates list"  ]
+[ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:any_1], b2:bat[:any_1], 
s1:bat[:oid], s2:bat[:oid], r:bat[:bit], nil_matches:bit):bat[:bit] ",  
"CMDbatNE;","Return B1 != B2 with candidates list"  ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], 
b2:bat[:dbl]):bat[:bit] ","CMDbatNE;","Return B1 != B2"   ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], b2:bat[:dbl], 
nil_matches:bit):bat[:bit] ",   "CMDbatNE;","Return B1 != B2"   ]
+[ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], b2:bat[:dbl], 
r:bat[:bit]):bat[:bit] ",   "CMDbatNE;","Return B1 != B2"   ]
+[ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], b2:bat[:dbl], 
r:bat[:bit], nil_matches:bit):bat[:bit] ",  "CMDbatNE;","Return B1 != 
B2"   ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], b2:bat[:dbl], 
s1:bat[:oid], s2:bat[:oid]):bat[:bit] ","CMDbatNE;","Return B1 != 
B2 with candidates list"  ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], b2:bat[:dbl], 
s1:bat[:oid], s2:bat[:oid], nil_matches:bit):bat[:bit] ",   "CMDbatNE;",
"Return B1 != B2 with candidates list"  ]
+[ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], b2:bat[:dbl], 
s1:bat[:oid], s2:bat[:oid], r:bat[:bit]):bat[:bit] ",   "CMDbatNE;","Return 
B1 != B2 with candidates list"  ]
+[ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], b2:bat[:dbl], 
s1:bat[:oid], s2:bat[:oid], r:bat[:bit], nil_matches:bit):bat[:bit] ",  
"CMDbatNE;","Return B1 != B2 with candidates list"  ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], 
b2:bat[:flt]):bat[:bit] ","CMDbatNE;","Return B1 != B2"   ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], b2:bat[:flt], 
nil_matches:bit):bat[:bit] ",   "CMDbatNE;","Return B1 != B2"   ]
+[ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], b2:bat[:flt], 
r:bat[:bit]):bat[:bit] ",   "CMDbatNE;","Return B1 != B2"   ]
+[ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], b2:bat[:flt], 
r:bat[:bit], nil_matches:bit):bat[:bit] ",  "CMDbatNE;","Return B1 != 
B2"   ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], b2:bat[:flt], 
s1:bat[:oid], s2:bat[:oid]):bat[:bit] ","CMDbatNE;","Return B1 != 
B2 with candidates list"  ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], b2:bat[:flt], 
s1:bat[:oid], s2:bat[:oid], nil_matches:bit):bat[:bit] ",   "CMDbatNE;",
"Return B1 != B2 with candidates list"  ]
+[ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:bte], b2:bat[:flt], 
s1:bat[:oid], 

MonetDB: default - Minor fixes in spelling

2020-02-18 Thread Thodoris Zois
Changeset: 9e42de913bd1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9e42de913bd1
Modified Files:
gdk/gdk_tracer.c
gdk/gdk_tracer.h
sql/scripts/81_tracer.sql
Branch: default
Log Message:

Minor fixes in spelling


diffs (44 lines):

diff --git a/gdk/gdk_tracer.c b/gdk/gdk_tracer.c
--- a/gdk/gdk_tracer.c
+++ b/gdk/gdk_tracer.c
@@ -445,7 +445,7 @@ GDKtracer_flush_buffer(void)
 
 
 gdk_return
-GDKtracer_fill_comp_info(BAT *id, BAT *component, BAT *log_Level)
+GDKtracer_fill_comp_info(BAT *id, BAT *component, BAT *log_level)
 {
for (int i = 0; i < COMPONENTS_COUNT; i++) {
if (BUNappend(id, , false) != GDK_SUCCEED)
@@ -454,7 +454,7 @@ GDKtracer_fill_comp_info(BAT *id, BAT *c
if (BUNappend(component, COMPONENT_STR[i], false) != 
GDK_SUCCEED)
return GDK_FAIL;
 
-   if (BUNappend(log_Level, LEVEL_STR[LVL_PER_COMPONENT[i]], 
false) != GDK_SUCCEED) 
+   if (BUNappend(log_level, LEVEL_STR[LVL_PER_COMPONENT[i]], 
false) != GDK_SUCCEED) 
return GDK_FAIL;
}
 
diff --git a/gdk/gdk_tracer.h b/gdk/gdk_tracer.h
--- a/gdk/gdk_tracer.h
+++ b/gdk/gdk_tracer.h
@@ -368,6 +368,6 @@ gdk_export gdk_return GDKtracer_log(LOG_
 gdk_export gdk_return GDKtracer_flush_buffer(void);
 
 
-gdk_export gdk_return GDKtracer_fill_comp_info(BAT *id, BAT *component, BAT 
*log_Level);
+gdk_export gdk_return GDKtracer_fill_comp_info(BAT *id, BAT *component, BAT 
*log_level);
 
 #endif /* _GDK_TRACER_H_ */
diff --git a/sql/scripts/81_tracer.sql b/sql/scripts/81_tracer.sql
--- a/sql/scripts/81_tracer.sql
+++ b/sql/scripts/81_tracer.sql
@@ -43,7 +43,7 @@ CREATE PROCEDURE logging.resetadapter()
EXTERNAL NAME logging.resetadapter;
 
 -- Returns in the form of a SQL result-set all the 
--- components along with their ID the their current 
+-- components along with their ID and their current 
 -- logging level being set
 CREATE FUNCTION logging.compinfo()
 RETURNS TABLE(
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Added option for setting the output directory...

2020-02-18 Thread Thodoris Zois
Changeset: d96cd1ea02c3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d96cd1ea02c3
Modified Files:
ChangeLog
gdk/gdk_tracer.c
gdk/gdk_tracer.h
tools/merovingian/ChangeLog
tools/merovingian/daemon/forkmserver.c
tools/merovingian/utils/properties.c
tools/mserver/mserver5.c
Branch: default
Log Message:

Added option for setting the output directory for the produced tracefiles 
(mserver5 and merovingian)


diffs (212 lines):

diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
 # ChangeLog file for devel
 # This file is updated with Maddlog
 
+* Tue Feb 18 2020 Thodoris Zois 
+- Added mserver5 option (--dbtrace=) in order to be able to
+  specify the output directory of the produced traces.
+
 * Thu Feb  6 2020 Panagiotis Koutsourakis 
 - Add port and host as fields in the .monetdb file.
 
diff --git a/gdk/gdk_tracer.c b/gdk/gdk_tracer.c
--- a/gdk/gdk_tracer.c
+++ b/gdk/gdk_tracer.c
@@ -34,20 +34,25 @@ LOG_LEVEL LVL_PER_COMPONENT[] = {
 static gdk_return
 _GDKtracer_init_basic_adptr(void)
 {
-   char file_name[FILENAME_MAX];
-   snprintf(file_name, sizeof(file_name), "%s%c%s%c%s%s", 
GDKgetenv("gdk_dbpath"), DIR_SEP, FILE_NAME, NAME_SEP, 
GDKtracer_get_timestamp("%Y%m%d_%H%M%S", (char[20]){0}, 20), ".log");
+   char file_name[FILENAME_MAX];   
+   const char* TRACE_PATH = GDKgetenv("gdk_dbpath");
 
-   output_file = fopen(file_name, "w");
+   if(GDKgetenv("gdk_dbtrace") != NULL)
+   TRACE_PATH = GDKgetenv("gdk_dbtrace");
+
+   snprintf(file_name, sizeof(file_name), "%s%c%s", TRACE_PATH, DIR_SEP, 
FILE_NAME);
+   output_file = fopen(file_name, "a");
 
// Even if creating the file failed, the adapter has 
// still tried to initialize and we shouldn't retry it
INIT_BASIC_ADAPTER = true;
-
-   if (!output_file) {
+   
+   if(!output_file)
+   {
GDK_TRACER_EXCEPTION(BASIC_INIT_FAILED ": %s\n", file_name);
return GDK_FAIL;
}
-
+   
return GDK_SUCCEED;
 }
 
diff --git a/gdk/gdk_tracer.h b/gdk/gdk_tracer.h
--- a/gdk/gdk_tracer.h
+++ b/gdk/gdk_tracer.h
@@ -38,7 +38,7 @@
 #define DEFAULT_LOG_LEVEL M_ERROR
 #define DEFAULT_FLUSH_LEVEL M_INFO
 
-#define FILE_NAME "trace"
+#define FILE_NAME "mdbtrace.log"
 #define NAME_SEP '_'
 #define NULL_CHAR '\0'
 #define NEW_LINE '\n'
diff --git a/tools/merovingian/ChangeLog b/tools/merovingian/ChangeLog
--- a/tools/merovingian/ChangeLog
+++ b/tools/merovingian/ChangeLog
@@ -1,3 +1,7 @@
 # ChangeLog file for sql/src/backends/monet5/merovingian
 # This file is updated with mchangelog
 
+* Tue Feb 18 2020 Thodoris Zois 
+- Added dbtrace mserver5 option to the daemon in order to set
+  mserver5's output directory for the produced traces.
+
diff --git a/tools/merovingian/daemon/forkmserver.c 
b/tools/merovingian/daemon/forkmserver.c
--- a/tools/merovingian/daemon/forkmserver.c
+++ b/tools/merovingian/daemon/forkmserver.c
@@ -201,6 +201,7 @@ forkMserver(char *database, sabdb** stat
char *sabdbfarm;
char dbpath[1024];
char dbextra_path[1024];
+   char dbtrace_path[1024];
char port[32];
char listenaddr[512];
char muri[512]; /* possibly undersized */
@@ -218,6 +219,7 @@ forkMserver(char *database, sabdb** stat
char *raw_strings = NULL;
char *ipv6 = NULL;
char *dbextra = NULL;
+   char *dbtrace = NULL;
char *mserver5_extra = NULL;
char *mserver5_extra_token = NULL;
char *argv[MAX_NR_ARGS+1];  /* for the exec arguments */
@@ -522,6 +524,10 @@ forkMserver(char *database, sabdb** stat
dbextra = kv->val;
}
 
+   kv = findConfKey(ckv, "dbtrace");
+   if (kv != NULL && kv->val != NULL)
+   dbtrace = kv->val;
+
kv = findConfKey(ckv, "listenaddr");
if (kv->val != NULL) {
if (mydoproxy) {
@@ -561,6 +567,13 @@ forkMserver(char *database, sabdb** stat
 "--dbextra=%s", dbextra);
argv[c++] = dbextra_path;
}
+
+   if (dbtrace != NULL) {
+   snprintf(dbtrace_path, sizeof(dbtrace_path),
+"--dbtrace=%s", dbtrace);
+   argv[c++] = dbtrace_path;
+   }
+   
if (mydoproxy) {
argv[c++] = set; argv[c++] = "mapi_open=false";
/* we "proxy", so we can just solely use UNIX domain sockets
diff --git a/tools/merovingian/utils/properties.c 
b/tools/merovingian/utils/properties.c
--- a/tools/merovingian/utils/properties.c
+++ b/tools/merovingian/utils/properties.c
@@ -39,6 +39,7 @@ static const confkeyval _internal_prop_k
{"nclients",NULL, 0, INT},
{"mfunnel", NULL, 0, STR},
{"dbextra", NULL, 0, STR},
+   {"dbtrace", NULL, 0, STR},
{"memmaxsize",  NULL, 0, INT},
{"vmmaxsize",   

MonetDB: linear-hashing - Added crashing renaming test

2020-02-18 Thread Pedro Ferreira
Changeset: 2faf7fad3ed7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2faf7fad3ed7
Added Files:
sql/test/rename/Tests/rename12.sql
Modified Files:
sql/test/rename/Tests/All
Branch: linear-hashing
Log Message:

Added crashing renaming test


diffs (59 lines):

diff --git a/sql/test/rename/Tests/All b/sql/test/rename/Tests/All
--- a/sql/test/rename/Tests/All
+++ b/sql/test/rename/Tests/All
@@ -10,3 +10,4 @@ rename08
 rename09
 rename10
 HAVE_PYMONETDB?rename11
+rename12
diff --git a/sql/test/rename/Tests/rename12.sql 
b/sql/test/rename/Tests/rename12.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/rename/Tests/rename12.sql
@@ -0,0 +1,46 @@
+create schema "SA";
+create schema "SB";
+
+create table "SA"."t1" (a uuid);
+insert into "SA"."t1" values (null), ('be887b3d-08f7-c308-7285-354a1857cbd9');
+
+start transaction;
+select "a" from "SA"."t1";
+alter table "SA"."t1" set schema "SB";
+select "a" from "SB"."t1";
+drop table "SB"."t1";
+rollback;
+
+select "a" from "SA"."t1";
+select "a" from "SB"."t1"; --error
+
+start transaction;
+select "a" from "SA"."t1";
+alter table "SA"."t1" rename column "a" to "b"; 
+select "b" from "SA"."t1";
+commit;
+
+select "b" from "SA"."t1";
+select "a" from "SA"."t1"; --error
+
+start transaction;
+select "b" from "SA"."t1";
+alter table "SA"."t1" rename column "b" to "c"; 
+select "c" from "SA"."t1";
+select "b" from "SA"."t1"; --error
+rollback;
+
+select "b" from "SA"."t1";
+select "c" from "SA"."t1"; --error
+
+start transaction;
+select "b" from "SA"."t1";
+alter table "SA"."t1" set schema "SB";
+select "b" from "SB"."t1";
+commit;
+
+select "b" from "SB"."t1";
+select "b" from "SA"."t1"; --error
+
+drop schema "SA" cascade;
+drop schema "SB" cascade;
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list