MonetDB: properties - Merged with default

2022-04-28 Thread Pedro Ferreira
Changeset: dc618b7aeec7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/dc618b7aeec7
Branch: properties
Log Message:

Merged with default


diffs (120 lines):

diff --git a/clients/Tests/MAL-signatures-hge.test 
b/clients/Tests/MAL-signatures-hge.test
--- a/clients/Tests/MAL-signatures-hge.test
+++ b/clients/Tests/MAL-signatures-hge.test
@@ -62104,21 +62104,6 @@ pattern optimizer.strimps(X_0:str, X_1:s
 OPTwrapper;
 Use strimps index if appropriate
 optimizer
-volcano
-pattern optimizer.volcano():str 
-OPTwrapper;
-(empty)
-optimizer
-volcano
-pattern optimizer.volcano(X_0:str, X_1:str):str 
-OPTwrapper;
-Simulate volcano style execution
-optimizer
-volcano_pipe
-function optimizer.volcano_pipe():void;
-(empty)
-(empty)
-optimizer
 wlc
 pattern optimizer.wlc():str 
 OPTwrapper;
diff --git a/clients/Tests/MAL-signatures.test 
b/clients/Tests/MAL-signatures.test
--- a/clients/Tests/MAL-signatures.test
+++ b/clients/Tests/MAL-signatures.test
@@ -45619,21 +45619,6 @@ pattern optimizer.strimps(X_0:str, X_1:s
 OPTwrapper;
 Use strimps index if appropriate
 optimizer
-volcano
-pattern optimizer.volcano():str 
-OPTwrapper;
-(empty)
-optimizer
-volcano
-pattern optimizer.volcano(X_0:str, X_1:str):str 
-OPTwrapper;
-Simulate volcano style execution
-optimizer
-volcano_pipe
-function optimizer.volcano_pipe():void;
-(empty)
-(empty)
-optimizer
 wlc
 pattern optimizer.wlc():str 
 OPTwrapper;
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
@@ -356,6 +356,11 @@ void IMPSdestroy(BAT *b);
 lng IMPSimprintsize(BAT *b);
 int MT_access(const char *pathname, int mode);
 int MT_check_nr_cores(void);
+void MT_cond_broadcast(MT_Cond *cond);
+void MT_cond_destroy(MT_Cond *cond);
+void MT_cond_init(MT_Cond *cond);
+void MT_cond_signal(MT_Cond *cond);
+void MT_cond_wait(MT_Cond *cond, MT_Lock *lock);
 int MT_create_thread(MT_Id *t, void (*function)(void *), void *arg, enum 
MT_thr_detach d, const char *threadname);
 void MT_exiting_thread(void);
 FILE *MT_fopen(const char *filename, const char *mode);
diff --git a/monetdb5/ChangeLog b/monetdb5/ChangeLog
--- a/monetdb5/ChangeLog
+++ b/monetdb5/ChangeLog
@@ -1,3 +1,6 @@
 # ChangeLog file for MonetDB5
 # This file is updated with Maddlog
 
+* Thu Apr 28 2022 Pedro Ferreira 
+- Disabled volcano pipeline due to known issues.
+
diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c
--- a/monetdb5/optimizer/opt_pipes.c
+++ b/monetdb5/optimizer/opt_pipes.c
@@ -162,6 +162,8 @@ static struct PIPELINES {
{"default_fast",
 "optimizer.defaultfast()",
 "stable", NULL, 1},
+/* Apr2022 update. I disabled the volcano_pipe because it has issues on it */
+#if 0
 /*
  * Volcano style execution produces a sequence of blocks from the source 
relation
  */
@@ -200,6 +202,7 @@ static struct PIPELINES {
 "optimizer.garbageCollector();"
 "optimizer.profiler();",
 "stable", NULL, 1},
+#endif
 /* The no_mitosis pipe line is (and should be kept!) identical to the
  * default pipeline, except that optimizer mitosis is omitted.  It is
  * used mainly to make some tests work deterministically, and to check
diff --git a/monetdb5/optimizer/optimizer.c b/monetdb5/optimizer/optimizer.c
--- a/monetdb5/optimizer/optimizer.c
+++ b/monetdb5/optimizer/optimizer.c
@@ -89,7 +89,7 @@ static mel_func optimizer_init_funcs[] =
  optwrapper_pattern("coercions", "Handle simple type coercions"),
  optwrapper_pattern("commonTerms", "Common sub-expression optimizer"),
  optwrapper_pattern("candidates", "Mark candidate list variables"),
- optwrapper_pattern("volcano", "Simulate volcano style execution"),
+ /* optwrapper_pattern("volcano", "Simulate volcano style execution"), Apr2022 
update. I disabled the volcano_pipe because it has issues on it */
  optwrapper_pattern("constants", "Duplicate constant removal optimizer"),
  optwrapper_pattern("profiler", "Collect properties for the profiler"),
  optwrapper_pattern("costModel", "Estimate the cost of a relational 
expression"),
diff --git a/sql/test/Tests/setoptimizer.test b/sql/test/Tests/setoptimizer.test
--- a/sql/test/Tests/setoptimizer.test
+++ b/sql/test/Tests/setoptimizer.test
@@ -40,9 +40,6 @@ stable
 default_fast
 optimizer.defaultfast()
 stable
-volcano_pipe

MonetDB: subqueryfun - Merged with default

2022-04-28 Thread Pedro Ferreira
Changeset: acc367c7f7c8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/acc367c7f7c8
Branch: subqueryfun
Log Message:

Merged with default


diffs (truncated from 3165 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -763,3 +763,4 @@ cab90a348501b045e19cee5cebcc44f3800bd0a8
 5872f047d97c98d3a848514438b8f97fa446855d Jan2022_11
 025239a5a6f122042798c0f1132a2c6298514e06 Jan2022_13
 025239a5a6f122042798c0f1132a2c6298514e06 Jan2022_SP2_release
+2e54857a91306cc6304825c5596f65d00595db6b Jul2021_23
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -365,6 +365,7 @@ developer.
 %{_bindir}/smack00
 %{_bindir}/smack01
 %{_bindir}/streamcat
+%{_bindir}/testcondvar
 %{_bindir}/testgetinfo
 %{_bindir}/testStmtAttr
 %{_bindir}/malsample.pl
diff --git a/buildtools/conf/Maddlog b/buildtools/conf/Maddlog
--- a/buildtools/conf/Maddlog
+++ b/buildtools/conf/Maddlog
@@ -189,6 +189,9 @@ fi
 
 file=ChangeLog.$RANDOM
 
+# make sure we get the correct day and month names
+export LC_ALL=en_US.utf-8
+
 case "$CL" in
 */*)
 cd "${CL%/*}"
diff --git a/clients/Tests/All b/clients/Tests/All
--- a/clients/Tests/All
+++ b/clients/Tests/All
@@ -3,3 +3,4 @@ HAVE_HGE_FITS_GEOM_LIBR
 
!HAVE_HGE_FITS_GEOM_LIBR_LIBPY3_NETCDF_SHP_WIN32?MAL-signatures
 NOT_WIN32?melcheck
 mclient-uri
+testcondvar
diff --git a/clients/Tests/MAL-signatures-hge.test 
b/clients/Tests/MAL-signatures-hge.test
--- a/clients/Tests/MAL-signatures-hge.test
+++ b/clients/Tests/MAL-signatures-hge.test
@@ -62104,21 +62104,6 @@ pattern optimizer.strimps(X_0:str, X_1:s
 OPTwrapper;
 Use strimps index if appropriate
 optimizer
-volcano
-pattern optimizer.volcano():str 
-OPTwrapper;
-(empty)
-optimizer
-volcano
-pattern optimizer.volcano(X_0:str, X_1:str):str 
-OPTwrapper;
-Simulate volcano style execution
-optimizer
-volcano_pipe
-function optimizer.volcano_pipe():void;
-(empty)
-(empty)
-optimizer
 wlc
 pattern optimizer.wlc():str 
 OPTwrapper;
diff --git a/clients/Tests/MAL-signatures.test 
b/clients/Tests/MAL-signatures.test
--- a/clients/Tests/MAL-signatures.test
+++ b/clients/Tests/MAL-signatures.test
@@ -45619,21 +45619,6 @@ pattern optimizer.strimps(X_0:str, X_1:s
 OPTwrapper;
 Use strimps index if appropriate
 optimizer
-volcano
-pattern optimizer.volcano():str 
-OPTwrapper;
-(empty)
-optimizer
-volcano
-pattern optimizer.volcano(X_0:str, X_1:str):str 
-OPTwrapper;
-Simulate volcano style execution
-optimizer
-volcano_pipe
-function optimizer.volcano_pipe():void;
-(empty)
-(empty)
-optimizer
 wlc
 pattern optimizer.wlc():str 
 OPTwrapper;
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
@@ -356,6 +356,11 @@ void IMPSdestroy(BAT *b);
 lng IMPSimprintsize(BAT *b);
 int MT_access(const char *pathname, int mode);
 int MT_check_nr_cores(void);
+void MT_cond_broadcast(MT_Cond *cond);
+void MT_cond_destroy(MT_Cond *cond);
+void MT_cond_init(MT_Cond *cond);
+void MT_cond_signal(MT_Cond *cond);
+void MT_cond_wait(MT_Cond *cond, MT_Lock *lock);
 int MT_create_thread(MT_Id *t, void (*function)(void *), void *arg, enum 
MT_thr_detach d, const char *threadname);
 void MT_exiting_thread(void);
 FILE *MT_fopen(const char *filename, const char *mode);
@@ -536,23 +541,23 @@ ssize_t lngFromStr(const char *src, size
 ssize_t lngToStr(str *dst, size_t *len, const lng *src, bool external);
 const lng lng_nil;
 struct tm *localtime_r(const time_t *restrict, struct tm *restrict);
+gdk_return log_activate(logger *lg);
 gdk_return log_bat(logger *lg, BAT *b, log_id id, lng offset, lng cnt);
 gdk_return log_bat_clear(logger *lg, log_id id);
 gdk_return log_bat_persists(logger *lg, BAT *b, log_id id);
 gdk_return log_bat_transient(logger *lg, log_id id);
+lng log_changes(logger *lg);
 gdk_return log_constant(logger *lg, int type, ptr val, log_id id, lng offset, 
lng cnt);
+logger *log_create(int debug, const char *fn, const char *logdir, int version, 
preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void *funcdata);
 gdk_return log_delta(logger *lg, BAT *uid, BAT *uval, log_id id);
-gdk_return log_sequence(logger *lg, int seq, lng id);
+void log_destroy(logger *lg);
+log_bid log_find_bat(logger *lg, log_id id);
+gdk_return log_flush(logger *lg, ulng saved_id);
+int log_sequence(logger *lg, int seq, lng *id);
 gdk_return log_tend(logger *lg);
 gdk_return log_tflush(logger *lg, ulng log_file_id, ulng commit_ts);
+gdk_return log_tsequence(logger *lg, int seq, lng id);
 gdk_return log_tstart(logger *lg, bool flushnow, ulng *log_file_id);
-gdk_return logger_activate(logger *lg);
-lng logger_changes(logger *lg);
-logger *logger_create(int debug, const char *fn, const char *logdir, int 
version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void 
*funcdata);
-void logger_destroy(logger *lg);
-log_bid logger_find_bat(logger *lg, log_id id);
-gdk_return logger_flush(logger *lg, ulng saved_id);
-int 

MonetDB: default - Disable optimizer pattern

2022-04-28 Thread Pedro Ferreira
Changeset: e6e3601243c1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e6e3601243c1
Modified Files:
clients/Tests/MAL-signatures-hge.test
clients/Tests/MAL-signatures.test
monetdb5/optimizer/optimizer.c
Branch: default
Log Message:

Disable optimizer pattern


diffs (62 lines):

diff --git a/clients/Tests/MAL-signatures-hge.test 
b/clients/Tests/MAL-signatures-hge.test
--- a/clients/Tests/MAL-signatures-hge.test
+++ b/clients/Tests/MAL-signatures-hge.test
@@ -62104,21 +62104,6 @@ pattern optimizer.strimps(X_0:str, X_1:s
 OPTwrapper;
 Use strimps index if appropriate
 optimizer
-volcano
-pattern optimizer.volcano():str 
-OPTwrapper;
-(empty)
-optimizer
-volcano
-pattern optimizer.volcano(X_0:str, X_1:str):str 
-OPTwrapper;
-Simulate volcano style execution
-optimizer
-volcano_pipe
-function optimizer.volcano_pipe():void;
-(empty)
-(empty)
-optimizer
 wlc
 pattern optimizer.wlc():str 
 OPTwrapper;
diff --git a/clients/Tests/MAL-signatures.test 
b/clients/Tests/MAL-signatures.test
--- a/clients/Tests/MAL-signatures.test
+++ b/clients/Tests/MAL-signatures.test
@@ -45619,21 +45619,6 @@ pattern optimizer.strimps(X_0:str, X_1:s
 OPTwrapper;
 Use strimps index if appropriate
 optimizer
-volcano
-pattern optimizer.volcano():str 
-OPTwrapper;
-(empty)
-optimizer
-volcano
-pattern optimizer.volcano(X_0:str, X_1:str):str 
-OPTwrapper;
-Simulate volcano style execution
-optimizer
-volcano_pipe
-function optimizer.volcano_pipe():void;
-(empty)
-(empty)
-optimizer
 wlc
 pattern optimizer.wlc():str 
 OPTwrapper;
diff --git a/monetdb5/optimizer/optimizer.c b/monetdb5/optimizer/optimizer.c
--- a/monetdb5/optimizer/optimizer.c
+++ b/monetdb5/optimizer/optimizer.c
@@ -89,7 +89,7 @@ static mel_func optimizer_init_funcs[] =
  optwrapper_pattern("coercions", "Handle simple type coercions"),
  optwrapper_pattern("commonTerms", "Common sub-expression optimizer"),
  optwrapper_pattern("candidates", "Mark candidate list variables"),
- optwrapper_pattern("volcano", "Simulate volcano style execution"),
+ /* optwrapper_pattern("volcano", "Simulate volcano style execution"), Apr2022 
update. I disabled the volcano_pipe because it has issues on it */
  optwrapper_pattern("constants", "Duplicate constant removal optimizer"),
  optwrapper_pattern("profiler", "Collect properties for the profiler"),
  optwrapper_pattern("costModel", "Estimate the cost of a relational 
expression"),
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - Disabled volcano pipeline due to known issues

2022-04-28 Thread Pedro Ferreira
Changeset: c2c6aa1fb726 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c2c6aa1fb726
Modified Files:
monetdb5/ChangeLog
monetdb5/optimizer/opt_pipes.c
sql/test/Tests/setoptimizer.test
Branch: default
Log Message:

Disabled volcano pipeline due to known issues


diffs (43 lines):

diff --git a/monetdb5/ChangeLog b/monetdb5/ChangeLog
--- a/monetdb5/ChangeLog
+++ b/monetdb5/ChangeLog
@@ -1,3 +1,6 @@
 # ChangeLog file for MonetDB5
 # This file is updated with Maddlog
 
+* Thu Apr 28 2022 Pedro Ferreira 
+- Disabled volcano pipeline due to known issues.
+
diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c
--- a/monetdb5/optimizer/opt_pipes.c
+++ b/monetdb5/optimizer/opt_pipes.c
@@ -162,6 +162,8 @@ static struct PIPELINES {
{"default_fast",
 "optimizer.defaultfast()",
 "stable", NULL, 1},
+/* Apr2022 update. I disabled the volcano_pipe because it has issues on it */
+#if 0
 /*
  * Volcano style execution produces a sequence of blocks from the source 
relation
  */
@@ -200,6 +202,7 @@ static struct PIPELINES {
 "optimizer.garbageCollector();"
 "optimizer.profiler();",
 "stable", NULL, 1},
+#endif
 /* The no_mitosis pipe line is (and should be kept!) identical to the
  * default pipeline, except that optimizer mitosis is omitted.  It is
  * used mainly to make some tests work deterministically, and to check
diff --git a/sql/test/Tests/setoptimizer.test b/sql/test/Tests/setoptimizer.test
--- a/sql/test/Tests/setoptimizer.test
+++ b/sql/test/Tests/setoptimizer.test
@@ -40,9 +40,6 @@ stable
 default_fast
 optimizer.defaultfast()
 stable
-volcano_pipe
-optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.deadcode();optimizer.pushselect();optimizer.aliases();optimizer.mitosis();optimizer.mergetable();optimizer.bincopyfrom();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.matpack();optimizer.reorder();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.volcano();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.garbageCollector();optimizer.profiler();
-stable
 no_mitosis_pipe
 
optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.deadcode();optimizer.pushselect();optimizer.aliases();optimizer.mergetable();optimizer.bincopyfrom();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.matpack();optimizer.reorder();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.garbageCollector();optimizer.profiler();
 stable
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - Approved output

2022-04-28 Thread Pedro Ferreira
Changeset: 1571e57720c2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/1571e57720c2
Modified Files:
clients/Tests/exports.stable.out
Branch: default
Log Message:

Approved output


diffs (15 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
@@ -356,6 +356,11 @@ void IMPSdestroy(BAT *b);
 lng IMPSimprintsize(BAT *b);
 int MT_access(const char *pathname, int mode);
 int MT_check_nr_cores(void);
+void MT_cond_broadcast(MT_Cond *cond);
+void MT_cond_destroy(MT_Cond *cond);
+void MT_cond_init(MT_Cond *cond);
+void MT_cond_signal(MT_Cond *cond);
+void MT_cond_wait(MT_Cond *cond, MT_Lock *lock);
 int MT_create_thread(MT_Id *t, void (*function)(void *), void *arg, enum 
MT_thr_detach d, const char *threadname);
 void MT_exiting_thread(void);
 FILE *MT_fopen(const char *filename, const char *mode);
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: userprofile - extend db_user_info with default_role

2022-04-28 Thread svetlin
Changeset: e53eac684d11 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e53eac684d11
Modified Files:
sql/backends/monet5/sql.c
sql/backends/monet5/sql_cat.c
sql/backends/monet5/sql_user.c
sql/common/sql_backend.c
sql/common/sql_backend.h
sql/server/sql_privileges.c
sql/server/sql_privileges.h
Branch: userprofile
Log Message:

extend db_user_info with default_role


diffs (241 lines):

diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -5999,7 +5999,7 @@ static mel_func sql_init_funcs[] = {
  pattern("sqlcatalog", "revoke", SQLrevoke, false, "Catalog operation revoke", 
args(0,7, 
arg("sname",str),arg("tbl",str),arg("grantee",str),arg("privs",int),arg("cname",str),arg("grant",int),arg("grantor",int))),
  pattern("sqlcatalog", "grant_function", SQLgrant_function, false, "Catalog 
operation grant_function", args(0,6, 
arg("sname",str),arg("fcnid",int),arg("grantee",str),arg("privs",int),arg("grant",int),arg("grantor",int))),
  pattern("sqlcatalog", "revoke_function", SQLrevoke_function, false, "Catalog 
operation revoke_function", args(0,6, 
arg("sname",str),arg("fcnid",int),arg("grantee",str),arg("privs",int),arg("grant",int),arg("grantor",int))),
- pattern("sqlcatalog", "create_user", SQLcreate_user, false, "Catalog 
operation create_user", args(0,10, 
arg("sname",str),arg("passwrd",str),arg("enc",int),arg("schema",str),arg("schemapath",str),arg("fullname",str),
 arg("max_memory", lng), arg("max_workers", int), arg("wlc", bit), 
arg("optimizer", str))),
+ pattern("sqlcatalog", "create_user", SQLcreate_user, false, "Catalog 
operation create_user", args(0,11, 
arg("sname",str),arg("passwrd",str),arg("enc",int),arg("schema",str),arg("schemapath",str),arg("fullname",str),
 arg("max_memory", lng), arg("max_workers", int), arg("wlc", bit), 
arg("optimizer", str), arg("default_role", str))),
  pattern("sqlcatalog", "drop_user", SQLdrop_user, false, "Catalog operation 
drop_user", args(0,2, arg("sname",str),arg("action",int))),
  pattern("sqlcatalog", "drop_user", SQLdrop_user, false, "Catalog operation 
drop_user", args(0,3, arg("sname",str),arg("auth",str),arg("action",int))),
  pattern("sqlcatalog", "alter_user", SQLalter_user, false, "Catalog operation 
alter_user", args(0,6, 
arg("sname",str),arg("passwrd",str),arg("enc",int),arg("schema",str),arg("schemapath",str),arg("oldpasswrd",str))),
diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c
--- a/sql/backends/monet5/sql_cat.c
+++ b/sql/backends/monet5/sql_cat.c
@@ -1746,10 +1746,11 @@ SQLcreate_user(Client cntxt, MalBlkPtr m
int max_workers = *getArgReference_int(stk, pci, 8);
bool wlc = *getArgReference_bit(stk, pci, 9);
char *optimizer = SaveArgReference(stk, pci, 10);
+   char *default_role = SaveArgReference(stk, pci, 11);
 
initcontext();
msg = sql_create_user(sql, sname, passwd, enc, fullname, schema, 
schema_path, max_memory, max_workers, wlc,
-   optimizer);
+   optimizer, default_role);
return msg;
 }
 
diff --git a/sql/backends/monet5/sql_user.c b/sql/backends/monet5/sql_user.c
--- a/sql/backends/monet5/sql_user.c
+++ b/sql/backends/monet5/sql_user.c
@@ -23,6 +23,24 @@
 #include "mal_authorize.h"
 #include "mcrypt.h"
 
+
+static int
+monet5_find_role(ptr _mvc, str role, sqlid *role_id)
+{
+   mvc *m = (mvc *) _mvc;
+   sql_trans *tr = m->session->tr;
+   sqlstore *store = m->session->tr->store;
+   sql_schema *sys = find_sql_schema(tr, "sys");
+   sql_table *auths = find_sql_table(tr, sys, "auths");
+   sql_column *auth_name = find_sql_column(auths, "name");
+   oid rid = store->table_api.column_find_row(tr, auth_name, role, NULL);
+   if (is_oid_nil(rid))
+   return -1;
+   *role_id = store->table_api.column_find_sqlid(m->session->tr, 
find_sql_column(auths, "id"), rid);
+   return 1;
+}
+
+
 static int
 monet5_drop_user(ptr _mvc, str user)
 {
@@ -143,7 +161,7 @@ parse_schema_path_str(mvc *m, str schema
 }
 
 static str
-monet5_create_user(ptr _mvc, str user, str passwd, char enc, str fullname, 
sqlid schema_id, str schema_path, sqlid grantorid, lng max_memory, int 
max_workers, bool wlc, str optimizer)
+monet5_create_user(ptr _mvc, str user, str passwd, char enc, str fullname, 
sqlid schema_id, str schema_path, sqlid grantorid, lng max_memory, int 
max_workers, bool wlc, str optimizer, sqlid role_id)
 {
mvc *m = (mvc *) _mvc;
oid uid = 0;
@@ -170,7 +188,8 @@ monet5_create_user(ptr _mvc, str user, s
}
 
user_id = store_next_oid(m->session->tr->store);
-   if ((log_res = store->table_api.table_insert(m->session->tr, 
db_user_info, , , _id, _path, _memory, 
_workers, , ))) {
+   sqlid default_role_id = role_id > 0 ? role_id : user_id;
+   if ((log_res = store->table_api.table_insert(m->session->tr, 

MonetDB: userprofile - extend create user syntax

2022-04-28 Thread svetlin
Changeset: 74e19ec11cd4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/74e19ec11cd4
Modified Files:
sql/server/rel_schema.c
Branch: userprofile
Log Message:

extend create user syntax


diffs (30 lines):

diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c
--- a/sql/server/rel_schema.c
+++ b/sql/server/rel_schema.c
@@ -2262,7 +2262,7 @@ rel_create_index(mvc *sql, char *iname, 
 }
 
 static sql_rel *
-rel_create_user(sql_allocator *sa, char *user, char *passwd, int enc, char 
*fullname, char *schema, char *schema_path, lng max_memory, int max_workers, 
bool wlc, char *optimizer)
+rel_create_user(sql_allocator *sa, char *user, char *passwd, int enc, char 
*fullname, char *schema, char *schema_path, lng max_memory, int max_workers, 
bool wlc, char *optimizer, char *default_role)
 {
sql_rel *rel = rel_create(sa);
list *exps = new_exp_list(sa);
@@ -2279,6 +2279,7 @@ rel_create_user(sql_allocator *sa, char 
append(exps, exp_atom_int(sa, max_workers));
append(exps, exp_atom_bool(sa, wlc));
append(exps, exp_atom_clob(sa, optimizer));
+   append(exps, exp_atom_clob(sa, default_role));
rel->l = NULL;
rel->r = NULL;
rel->op = op_ddl;
@@ -2927,7 +2928,8 @@ rel_schemas(sql_query *query, symbol *s)
  
l->h->next->next->next->next->next->next->data.l_val, /* max memory */
  
l->h->next->next->next->next->next->next->next->data.i_val,   /* max workers */
  
l->h->next->next->next->next->next->next->next->next->data.i_val, /* wlc */
- 
l->h->next->next->next->next->next->next->next->next->next->data.sval);   
/* optimizer */
+ 
l->h->next->next->next->next->next->next->next->next->next->data.sval, /* 
optimizer */
+ 
l->h->next->next->next->next->next->next->next->next->next->next->data.sval); 
/* default role */
}   break;
case SQL_DROP_USER:
ret = rel_schema2(sql->sa, ddl_drop_user, s->data.sval, NULL, 
0);
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: userprofile - extend create user syntax

2022-04-28 Thread svetlin
Changeset: 2c7c97341df8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2c7c97341df8
Modified Files:
sql/server/sql_parser.y
Branch: userprofile
Log Message:

extend create user syntax


diffs (40 lines):

diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y
--- a/sql/server/sql_parser.y
+++ b/sql/server/sql_parser.y
@@ -422,6 +422,7 @@ int yydebug=1;
XML_namespace_prefix
XML_PI_target
 opt_optimizer
+opt_default_role
 
 %type 
argument_list
@@ -1480,7 +1481,7 @@ role_def:
  append_string(l, $2);
  append_int(l, $3);
  $$ = _symbol_create_list( SQL_CREATE_ROLE, l ); }
- |  USER ident WITH opt_encrypted PASSWORD string sqlNAME string SCHEMA ident 
user_schema_path opt_max_memory opt_max_workers opt_wlc opt_optimizer
+ |  USER ident WITH opt_encrypted PASSWORD string sqlNAME string SCHEMA ident 
user_schema_path opt_max_memory opt_max_workers opt_wlc opt_optimizer 
opt_default_role
{ dlist *l = L();
  append_string(l, $2);
  append_string(l, $6);
@@ -1492,6 +1493,7 @@ role_def:
   append_int(l, $13);
   append_int(l, $14);
  append_string(l, $15);
+ append_string(l, $16);
  $$ = _symbol_create_list( SQL_CREATE_USER, l ); }
  ;
 
@@ -1515,6 +1517,11 @@ opt_optimizer:
  |  OPTIMIZER string{ $$ = $2; }
  ;
 
+opt_default_role:
+/* empty */ { $$ = NULL; }
+ |  DEFAULT ROLE ident{ $$ = $3; }
+ ;
+
 opt_encrypted:
 /* empty */{ $$ = SQL_PW_UNENCRYPTED; }
  |  UNENCRYPTED{ $$ = SQL_PW_UNENCRYPTED; }
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: properties - Make sure storage is initialized when fetc...

2022-04-28 Thread Pedro Ferreira
Changeset: 098f16b88412 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/098f16b88412
Modified Files:
sql/storage/bat/bat_storage.c

sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320-Windows.test
sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.test
sql/test/BugTracker-2013/Tests/rangejoin_optimizer.Bug-3411.test
sql/test/BugTracker-2015/Tests/crash_in_reduce_groupby.Bug-3818.test

sql/test/BugTracker-2015/Tests/quantile_function_resolution.Bug-3773.test
sql/test/BugTracker-2015/Tests/schema_view.Bug-3708.test

sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.test

sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.test
sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.test
sql/test/SQLancer/Tests/sqlancer08.test
sql/test/astro/Tests/astro.test
sql/test/merge-partitions/Tests/mergepart31.test
sql/test/miscellaneous/Tests/simple_plans.test
Branch: properties
Log Message:

Make sure storage is initialized when fetching properties. Don't look at views.


diffs (truncated from 474 to 300 lines):

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
@@ -2728,12 +2728,12 @@ dcount_col(sql_trans *tr, sql_column *c)
 }
 
 static BAT *
-bind_no_view(BAT *b)
+bind_no_view(BAT *b, bool quick)
 {
if (isVIEW(b)) { /* If it is a view get the parent BAT */
BAT *nb = BBP_cache(VIEWtparent(b));
bat_destroy(b);
-   if (!(b = temp_descriptor(nb->batCacheid)))
+   if (!(b = quick ? quick_descriptor(nb->batCacheid) : 
temp_descriptor(nb->batCacheid)))
return NULL;
}
return b;
@@ -2763,7 +2763,7 @@ min_max_col(sql_trans *tr, sql_column *c
_DELETE(c->min);
_DELETE(c->max);
if ((b = bind_col(tr, c, access))) {
-   if (!(b = bind_no_view(b))) {
+   if (!(b = bind_no_view(b, false))) {
unlock_column(tr->store, c->base.id);
return 0;
}
@@ -2889,7 +2889,7 @@ static int
 col_stats(sql_trans *tr, sql_column *c, bool *nonil, bool *unique, double 
*unique_est, ValPtr min, ValPtr max)
 {
int ok = 0;
-   BAT *b = NULL, *off = NULL;
+   BAT *b = NULL, *off = NULL, *upv = NULL;
sql_delta *d = NULL;
 
(void) tr;
@@ -2905,9 +2905,11 @@ col_stats(sql_trans *tr, sql_column *c, 
*nonil = true; /* TODO for min/max. I will do it later 
*/
return ok;
}
-   bat bid = d->cs.st == ST_DICT ? d->cs.ebid : d->cs.bid;
-   if ((b = temp_descriptor(bid))) {
-   int eclass = c->type.type->eclass;
+   int eclass = c->type.type->eclass;
+   int access = d->cs.st == ST_DICT ? RD_EXT : RDONLY;
+   if ((b = bind_col(tr, c, access))) {
+   if (!(b = bind_no_view(b, false)))
+   return ok;
BATiter bi = bat_iterator(b);
*nonil = bi.nonil && !bi.nil;
 
@@ -2918,27 +2920,29 @@ col_stats(sql_trans *tr, sql_column *c, 
if (bi.maxpos != BUN_NONE && VALinit(max, 
bi.type, BUNtail(bi, bi.maxpos)))
ok |= 2;
}
-   /* for dict, check the offsets bat for uniqueness */
-   if (d->cs.ucnt == 0 && (d->cs.st == ST_DEFAULT || (off 
= quick_descriptor(d->cs.bid {
-   if (off) {
+   if (d->cs.ucnt == 0) {
+   if (d->cs.st == ST_DEFAULT) {
+   *unique = bi.key;
+   *unique_est = bi.unique_est;
+   } else if (d->cs.st == ST_DICT && (off = 
bind_col(tr, c, QUICK)) && (off = bind_no_view(off, true))) {
+   /* for dict, check the offsets bat for 
uniqueness */
MT_lock_set(>theaplock);
*unique = off->tkey;
*unique_est = off->tunique_est;
MT_lock_unset(>theaplock);
-   } else {
-   *unique = bi.key;
-   *unique_est = bi.unique_est;
}
}
bat_iterator_end();
bat_destroy(b);
if (*nonil && d->cs.ucnt > 0) {
- 

MonetDB: properties - Merged with default

2022-04-28 Thread Pedro Ferreira
Changeset: 07a5057139ce for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/07a5057139ce
Modified Files:
sql/storage/bat/bat_storage.c
sql/storage/sql_storage.h
sql/storage/store.c
Branch: properties
Log Message:

Merged with default


diffs (truncated from 1781 to 300 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
@@ -536,23 +536,23 @@ ssize_t lngFromStr(const char *src, size
 ssize_t lngToStr(str *dst, size_t *len, const lng *src, bool external);
 const lng lng_nil;
 struct tm *localtime_r(const time_t *restrict, struct tm *restrict);
+gdk_return log_activate(logger *lg);
 gdk_return log_bat(logger *lg, BAT *b, log_id id, lng offset, lng cnt);
 gdk_return log_bat_clear(logger *lg, log_id id);
 gdk_return log_bat_persists(logger *lg, BAT *b, log_id id);
 gdk_return log_bat_transient(logger *lg, log_id id);
+lng log_changes(logger *lg);
 gdk_return log_constant(logger *lg, int type, ptr val, log_id id, lng offset, 
lng cnt);
+logger *log_create(int debug, const char *fn, const char *logdir, int version, 
preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void *funcdata);
 gdk_return log_delta(logger *lg, BAT *uid, BAT *uval, log_id id);
-gdk_return log_sequence(logger *lg, int seq, lng id);
+void log_destroy(logger *lg);
+log_bid log_find_bat(logger *lg, log_id id);
+gdk_return log_flush(logger *lg, ulng saved_id);
+int log_sequence(logger *lg, int seq, lng *id);
 gdk_return log_tend(logger *lg);
 gdk_return log_tflush(logger *lg, ulng log_file_id, ulng commit_ts);
+gdk_return log_tsequence(logger *lg, int seq, lng id);
 gdk_return log_tstart(logger *lg, bool flushnow, ulng *log_file_id);
-gdk_return logger_activate(logger *lg);
-lng logger_changes(logger *lg);
-logger *logger_create(int debug, const char *fn, const char *logdir, int 
version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void 
*funcdata);
-void logger_destroy(logger *lg);
-log_bid logger_find_bat(logger *lg, log_id id);
-gdk_return logger_flush(logger *lg, ulng saved_id);
-int logger_sequence(logger *lg, int seq, lng *id);
 log_level_t lvl_per_component[];
 void *mdlopen(const char *library, int mode);
 const char *mercurial_revision(void) __attribute__((__const__));
diff --git a/gdk/gdk_cand.c b/gdk/gdk_cand.c
--- a/gdk/gdk_cand.c
+++ b/gdk/gdk_cand.c
@@ -398,7 +398,7 @@ count_mask_bits(const struct canditer *c
return n;
 }
 
-/* initialize a candidate iterator, return number of iterations */
+/* initialize a candidate iterator */
 void
 canditer_init(struct canditer *ci, BAT *b, BAT *s)
 {
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -14,8 +14,8 @@
 #include "mutils.h"
 #include 
 
-static gdk_return logger_add_bat(logger *lg, BAT *b, log_id id, int tid);
-static gdk_return logger_del_bat(logger *lg, log_bid bid);
+static gdk_return log_add_bat(logger *lg, BAT *b, log_id id, int tid);
+static gdk_return log_del_bat(logger *lg, log_bid bid);
 /*
  * The logger uses a directory to store its log files. One master log
  * file stores information about the version of the logger and the
@@ -96,13 +96,13 @@ static gdk_return bm_commit(logger *lg);
 static gdk_return tr_grow(trans *tr);
 
 static inline void
-logger_lock(logger *lg)
+log_lock(logger *lg)
 {
MT_lock_set(>lock);
 }
 
 static inline void
-logger_unlock(logger *lg)
+log_unlock(logger *lg)
 {
MT_lock_unset(>lock);
 }
@@ -730,7 +730,7 @@ la_bat_destroy(logger *lg, logaction *la
 {
log_bid bid = internal_find_bat(lg, la->cid, tid);
 
-   if (bid && logger_del_bat(lg, bid) != GDK_SUCCEED)
+   if (bid && log_del_bat(lg, bid) != GDK_SUCCEED)
return GDK_FAIL;
return GDK_SUCCEED;
 }
@@ -773,7 +773,7 @@ la_bat_create(logger *lg, logaction *la,
BATtseqbase(b, 0);
 
if ((b = BATsetaccess(b, BAT_READ)) == NULL ||
-   logger_add_bat(lg, b, la->cid, tid) != GDK_SUCCEED) {
+   log_add_bat(lg, b, la->cid, tid) != GDK_SUCCEED) {
logbat_destroy(b);
return GDK_FAIL;
}
@@ -782,7 +782,7 @@ la_bat_create(logger *lg, logaction *la,
 }
 
 static gdk_return
-logger_write_new_types(logger *lg, FILE *fp, bool append)
+log_write_new_types(logger *lg, FILE *fp, bool append)
 {
bte id = 0;
 
@@ -940,7 +940,7 @@ tr_commit(logger *lg, trans *tr)
 }
 
 static gdk_return
-logger_read_types_file(logger *lg, FILE *fp)
+log_read_types_file(logger *lg, FILE *fp)
 {
int id = 0;
char atom_name[IDLENGTH];
@@ -961,7 +961,7 @@ logger_read_types_file(logger *lg, FILE 
 
 
 gdk_return
-logger_create_types_file(logger *lg, const char *filename, bool append)
+log_create_types_file(logger *lg, const char *filename, bool append)
 {
FILE *fp;
 
@@ -976,7 +976,7 @@ logger_create_types_file(logger *lg, con
return GDK_FAIL;

MonetDB: default - Make sure storage is initialized, when settin...

2022-04-28 Thread Pedro Ferreira
Changeset: 02a6f620963a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/02a6f620963a
Modified Files:
sql/storage/bat/bat_storage.c
Branch: default
Log Message:

Make sure storage is initialized, when setting min/max. Don't look at view bats


diffs (43 lines):

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
@@ -2727,6 +2727,18 @@ dcount_col(sql_trans *tr, sql_column *c)
return cnt;
 }
 
+static BAT *
+bind_no_view(BAT *b)
+{
+   if (isVIEW(b)) { /* If it is a view get the parent BAT */
+   BAT *nb = BBP_cache(VIEWtparent(b));
+   bat_destroy(b);
+   if (!(b = temp_descriptor(nb->batCacheid)))
+   return NULL;
+   }
+   return b;
+}
+
 static int
 min_max_col(sql_trans *tr, sql_column *c)
 {
@@ -2742,6 +2754,7 @@ min_max_col(sql_trans *tr, sql_column *c
if ((d = ATOMIC_PTR_GET(>data))) {
if (d->cs.st == ST_FOR)
return 0;
+   int access = d->cs.st == ST_DICT ? RD_EXT : RDONLY;
lock_column(tr->store, c->base.id);
if (c->min && c->max) {
unlock_column(tr->store, c->base.id);
@@ -2749,7 +2762,11 @@ min_max_col(sql_trans *tr, sql_column *c
}
_DELETE(c->min);
_DELETE(c->max);
-   if ((b = temp_descriptor(d->cs.st == ST_DICT ? d->cs.ebid : 
d->cs.bid))) {
+   if ((b = bind_col(tr, c, access))) {
+   if (!(b = bind_no_view(b))) {
+   unlock_column(tr->store, c->base.id);
+   return 0;
+   }
BATiter bi = bat_iterator(b);
if (bi.minpos != BUN_NONE && bi.maxpos != BUN_NONE) {
const void *nmin = BUNtail(bi, bi.minpos), 
*nmax = BUNtail(bi, bi.maxpos);
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - Only load rdonly bat when there are updates t...

2022-04-28 Thread Pedro Ferreira
Changeset: ad47a42f5522 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ad47a42f5522
Modified Files:
sql/storage/bat/bat_storage.c
Branch: default
Log Message:

Only load rdonly bat when there are updates to merge


diffs (45 lines):

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
@@ -3900,19 +3900,13 @@ static int
 merge_cs( column_storage *cs)
 {
int ok = LOG_OK;
-   BAT *cur = NULL;
-
-   if (cs->bid) {
-   cur = temp_descriptor(cs->bid);
-   if(!cur)
-   return LOG_ERR;
-   }
-
-   if (cs->ucnt) {
+
+   if (cs->bid && cs->ucnt) {
+   BAT *cur = temp_descriptor(cs->bid);
BAT *ui = temp_descriptor(cs->uibid);
BAT *uv = temp_descriptor(cs->uvbid);
 
-   if(!ui || !uv) {
+   if (!cur || !ui || !uv) {
bat_destroy(ui);
bat_destroy(uv);
bat_destroy(cur);
@@ -3933,15 +3927,15 @@ merge_cs( column_storage *cs)
temp_destroy(cs->uvbid);
cs->uibid = e_bat(TYPE_oid);
cs->uvbid = e_bat(cur->ttype);
-   if(cs->uibid == BID_NIL || cs->uvbid == BID_NIL)
+   if (cs->uibid == BID_NIL || cs->uvbid == BID_NIL)
ok = LOG_ERR;
cs->ucnt = 0;
bat_destroy(ui);
bat_destroy(uv);
+   bat_destroy(cur);
}
cs->cleared = 0;
cs->merged = 1;
-   bat_destroy(cur);
return ok;
 }
 
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - Fix comment

2022-04-28 Thread Panagiotis Koutsourakis
Changeset: bd21ac5350f1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/bd21ac5350f1
Modified Files:
gdk/gdk_cand.c
Branch: default
Log Message:

Fix comment


diffs (12 lines):

diff --git a/gdk/gdk_cand.c b/gdk/gdk_cand.c
--- a/gdk/gdk_cand.c
+++ b/gdk/gdk_cand.c
@@ -398,7 +398,7 @@ count_mask_bits(const struct canditer *c
return n;
 }
 
-/* initialize a candidate iterator, return number of iterations */
+/* initialize a candidate iterator */
 void
 canditer_init(struct canditer *ci, BAT *b, BAT *s)
 {
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: strimps_update - Merge with default

2022-04-28 Thread Panagiotis Koutsourakis
Changeset: e1ab5c093c74 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e1ab5c093c74
Branch: strimps_update
Log Message:

Merge with default


diffs (truncated from 3259 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -763,3 +763,4 @@ cab90a348501b045e19cee5cebcc44f3800bd0a8
 5872f047d97c98d3a848514438b8f97fa446855d Jan2022_11
 025239a5a6f122042798c0f1132a2c6298514e06 Jan2022_13
 025239a5a6f122042798c0f1132a2c6298514e06 Jan2022_SP2_release
+2e54857a91306cc6304825c5596f65d00595db6b Jul2021_23
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -365,6 +365,7 @@ developer.
 %{_bindir}/smack00
 %{_bindir}/smack01
 %{_bindir}/streamcat
+%{_bindir}/testcondvar
 %{_bindir}/testgetinfo
 %{_bindir}/testStmtAttr
 %{_bindir}/malsample.pl
diff --git a/buildtools/conf/Maddlog b/buildtools/conf/Maddlog
--- a/buildtools/conf/Maddlog
+++ b/buildtools/conf/Maddlog
@@ -189,6 +189,9 @@ fi
 
 file=ChangeLog.$RANDOM
 
+# make sure we get the correct day and month names
+export LC_ALL=en_US.utf-8
+
 case "$CL" in
 */*)
 cd "${CL%/*}"
diff --git a/clients/Tests/All b/clients/Tests/All
--- a/clients/Tests/All
+++ b/clients/Tests/All
@@ -3,3 +3,4 @@ HAVE_HGE_FITS_GEOM_LIBR
 
!HAVE_HGE_FITS_GEOM_LIBR_LIBPY3_NETCDF_SHP_WIN32?MAL-signatures
 NOT_WIN32?melcheck
 mclient-uri
+testcondvar
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
@@ -536,23 +536,23 @@ ssize_t lngFromStr(const char *src, size
 ssize_t lngToStr(str *dst, size_t *len, const lng *src, bool external);
 const lng lng_nil;
 struct tm *localtime_r(const time_t *restrict, struct tm *restrict);
+gdk_return log_activate(logger *lg);
 gdk_return log_bat(logger *lg, BAT *b, log_id id, lng offset, lng cnt);
 gdk_return log_bat_clear(logger *lg, log_id id);
 gdk_return log_bat_persists(logger *lg, BAT *b, log_id id);
 gdk_return log_bat_transient(logger *lg, log_id id);
+lng log_changes(logger *lg);
 gdk_return log_constant(logger *lg, int type, ptr val, log_id id, lng offset, 
lng cnt);
+logger *log_create(int debug, const char *fn, const char *logdir, int version, 
preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void *funcdata);
 gdk_return log_delta(logger *lg, BAT *uid, BAT *uval, log_id id);
-gdk_return log_sequence(logger *lg, int seq, lng id);
+void log_destroy(logger *lg);
+log_bid log_find_bat(logger *lg, log_id id);
+gdk_return log_flush(logger *lg, ulng saved_id);
+int log_sequence(logger *lg, int seq, lng *id);
 gdk_return log_tend(logger *lg);
 gdk_return log_tflush(logger *lg, ulng log_file_id, ulng commit_ts);
+gdk_return log_tsequence(logger *lg, int seq, lng id);
 gdk_return log_tstart(logger *lg, bool flushnow, ulng *log_file_id);
-gdk_return logger_activate(logger *lg);
-lng logger_changes(logger *lg);
-logger *logger_create(int debug, const char *fn, const char *logdir, int 
version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void 
*funcdata);
-void logger_destroy(logger *lg);
-log_bid logger_find_bat(logger *lg, log_id id);
-gdk_return logger_flush(logger *lg, ulng saved_id);
-int logger_sequence(logger *lg, int seq, lng *id);
 log_level_t lvl_per_component[];
 void *mdlopen(const char *library, int mode);
 const char *mercurial_revision(void) __attribute__((__const__));
diff --git a/clients/Tests/testcondvar.py b/clients/Tests/testcondvar.py
new file mode 100644
--- /dev/null
+++ b/clients/Tests/testcondvar.py
@@ -0,0 +1,14 @@
+#!/usr/bin/env python3
+
+import subprocess
+import sys
+
+try:
+subprocess.check_output("testcondvar", stderr=subprocess.STDOUT)
+except subprocess.CalledProcessError as e:
+output = str(e.stdout, 'utf-8')
+if not output.endswith('\n'):
+output += '\n'
+print(f"Test program failed with the following output:\n--", 
file=sys.stderr)
+print(f"{output}-", file=sys.stderr)
+sys.exit('TEST FAILED')
diff --git a/clients/examples/C/CMakeLists.txt 
b/clients/examples/C/CMakeLists.txt
--- a/clients/examples/C/CMakeLists.txt
+++ b/clients/examples/C/CMakeLists.txt
@@ -45,6 +45,16 @@ if(TESTING)
 monetdb_config_header
 stream)
 
+  add_executable(testcondvar
+testcondvar.c)
+
+  target_link_libraries(testcondvar
+PRIVATE
+monetdb_config_header
+bat
+Threads::Threads
+  )
+
   add_executable(bincopydata
 bincopydata.c
 bincopydata.h
@@ -75,6 +85,7 @@ if(TESTING)
 smack00
 smack01
 streamcat
+testcondvar
 bincopydata
 RUNTIME
 DESTINATION
@@ -89,6 +100,7 @@ if(TESTING)
   $
   $
   $
+  $
   $
   $
   DESTINATION ${CMAKE_INSTALL_BINDIR}
diff --git a/clients/examples/C/testcondvar.c b/clients/examples/C/testcondvar.c
new file mode 100644
--- /dev/null
+++ b/clients/examples/C/testcondvar.c
@@ -0,0 +1,183 @@
+/*
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0.  If a 

MonetDB: strimps_update - Fix strimps tests

2022-04-28 Thread Panagiotis Koutsourakis
Changeset: e43ff4c94a81 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e43ff4c94a81
Modified Files:
sql/test/strimps/Tests/persisted_strimp.SQL.py
sql/test/strimps/Tests/strimps_stable_counts.SQL.py
Branch: strimps_update
Log Message:

Fix strimps tests

After the SQL interface change, strimps need to be created explicitly.


diffs (31 lines):

diff --git a/sql/test/strimps/Tests/persisted_strimp.SQL.py 
b/sql/test/strimps/Tests/persisted_strimp.SQL.py
--- a/sql/test/strimps/Tests/persisted_strimp.SQL.py
+++ b/sql/test/strimps/Tests/persisted_strimp.SQL.py
@@ -37,6 +37,10 @@ with tempfile.TemporaryDirectory() as fa
 mdb.execute("""COPY 15000 RECORDS INTO orders from 
r'{}/sql/benchmarks/tpch/SF-0.01/orders.tbl' USING DELIMITERS 
'|','\n','"';""".format(os.getenv('TSTSRCBASE'))).assertSucceeded()
 mdb.execute("""COPY 15000 RECORDS INTO orders from 
r'{}/sql/benchmarks/tpch/SF-0.01/orders.tbl' USING DELIMITERS 
'|','\n','"';""".format(os.getenv('TSTSRCBASE'))).assertSucceeded()
 mdb.execute("""COPY 15000 RECORDS INTO orders from 
r'{}/sql/benchmarks/tpch/SF-0.01/orders.tbl' USING DELIMITERS 
'|','\n','"';""".format(os.getenv('TSTSRCBASE'))).assertSucceeded()
+# Create strimp
+mdb.execute("ALTER TABLE orders SET READ ONLY;")
+mdb.execute("CREATE IMPRINTS INDEX o_comment_strimp ON 
orders(o_comment);")
+
 mdb.execute("SELECT COUNT(*) FROM orders WHERE o_comment LIKE 
'%%slyly%%';").assertSucceeded().assertDataResultMatch([(12896,)])
 s.communicate()
 
diff --git a/sql/test/strimps/Tests/strimps_stable_counts.SQL.py 
b/sql/test/strimps/Tests/strimps_stable_counts.SQL.py
--- a/sql/test/strimps/Tests/strimps_stable_counts.SQL.py
+++ b/sql/test/strimps/Tests/strimps_stable_counts.SQL.py
@@ -40,10 +40,12 @@ with tempfile.TemporaryDirectory() as fa
 s.communicate()
 
 with process.server(mapiport='0', dbname='db1',
-args=["--set", "gdk_use_strimps=yes",],
 dbfarm=fdir,
 stdin=process.PIPE, stdout=process.PIPE, 
stderr=process.PIPE) as s:
 with SQLTestCase() as mdb:
 mdb.connect(database='db1', port=s.dbport, username='monetdb', 
password='monetdb')
+# Create strimp
+mdb.execute("ALTER TABLE orders SET READ ONLY;")
+mdb.execute("CREATE IMPRINTS INDEX o_comment_strimp ON 
orders(o_comment);")
 mdb.execute("SELECT COUNT(*) FROM orders WHERE o_comment LIKE 
'%%slyly%%';").assertSucceeded().assertDataResultMatch([(12896,)])
 s.communicate()
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: strimps_update - Initial implementation

2022-04-28 Thread Panagiotis Koutsourakis
Changeset: 09892d5ee888 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/09892d5ee888
Modified Files:
monetdb5/modules/mal/pcre.c
Branch: strimps_update
Log Message:

Initial implementation

The bat counts are not correct


diffs (64 lines):

diff --git a/monetdb5/modules/mal/pcre.c b/monetdb5/modules/mal/pcre.c
--- a/monetdb5/modules/mal/pcre.c
+++ b/monetdb5/modules/mal/pcre.c
@@ -1855,6 +1855,7 @@ PCRElikeselect(bat *ret, const bat *bid,
char *ppat = NULL;
bool use_re = false, use_strcmp = false, empty = false;
bool with_strimps = false;
+   bool with_strimps_anti = false;
 
if ((b = BATdescriptor(*bid)) == NULL) {
msg = createException(MAL, "algebra.likeselect", 
SQLSTATE(HY002) RUNTIME_OBJECT_MISSING);
@@ -1887,12 +1888,22 @@ PCRElikeselect(bat *ret, const bat *bid,
} else { /* If we cannot create the strimp just continue 
normally */
GDKclrerr();
}
+   } else if (!empty && BAThasstrimps(b) && b->tnonil && *anti) {
+   BAT *tmp_s = STRMPfilter(b, s, *pat);
+   if (tmp_s) {
+   if (s)
+   BBPunfix(s->batCacheid);
+   s = tmp_s;
+   with_strimps_anti = true;
+   } else { /* If we cannot create the strimp just continue 
normally */
+   GDKclrerr();
+   }
}
 
MT_thread_setalgorithm(empty ? "pcrelike: trivially empty" :
-   use_strcmp ? (with_strimps ? "pcrelike: pattern matching using 
strcmp with strimps" : "pcrelike: pattern matching using strcmp") :
-   use_re ? (with_strimps ? "pcrelike: pattern matching using RE 
with strimps" : "pcrelike: pattern matching using RE") :
-   (with_strimps ? "pcrelike: pattern matching using pcre with 
strimps" : "pcrelike: pattern matching using pcre"));
+  use_strcmp ? (with_strimps ? 
"pcrelike: pattern matching using strcmp with strimps" : (with_strimps_anti ? 
"pcrelike: pattern matching using strcmp with strimps anti" : "pcrelike: 
pattern matching using strcmp")) :
+  use_re ? (with_strimps ? 
"pcrelike: pattern matching using RE with strimps" : (with_strimps_anti ? 
"pcrelike: patterm matching using RE with strimps anti" : "pcrelike: pattern 
matching using RE")) :
+  (with_strimps ? "pcrelike: 
pattern matching using pcre with strimps" : (with_strimps_anti ? "pcrelike: 
pattermatching using pcre with strimps anti" : "pcrelike: pattern matching 
using pcre")));
 
if (empty) {
if (!(bn = BATdense(0, 0, 0)))
@@ -1923,10 +1934,11 @@ PCRElikeselect(bat *ret, const bat *bid,
}
 
if (use_re) {
-   msg = re_likeselect(bn, b, s, , p, q, , *pat, 
(bool) *caseignore, (bool) *anti, use_strcmp, (unsigned char) **esc);
+   msg = re_likeselect(bn, b, s, , p, q, , *pat, 
(bool) *caseignore, (bool) *anti && !with_strimps_anti, use_strcmp, (unsigned 
char) **esc);
} else {
-   msg = pcre_likeselect(bn, b, s, , p, q, , ppat, 
(bool) *caseignore, (bool) *anti);
+   msg = pcre_likeselect(bn, b, s, , p, q, , ppat, 
(bool) *caseignore, (bool) *anti && !with_strimps_anti);
}
+
if (!msg) { /* set some properties */
BATsetcount(bn, rcnt);
bn->tsorted = true;
@@ -1935,6 +1947,12 @@ PCRElikeselect(bat *ret, const bat *bid,
bn->tnil = false;
bn->tnonil = true;
bn->tseqbase = rcnt == 0 ? 0 : rcnt == 1 ? *(const 
oid*)Tloc(bn, 0) : rcnt == b->batCount ? b->hseqbase : oid_nil;
+   if(with_strimps_anti) {
+   /* Reverse the result */
+   BAT *rev = BATdiffcand(BATdense(0, 0, 
b->batCount), bn);
+   BBPunfix(bn->batCacheid);
+   bn = rev;
+   }
}
}
 
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: strimps_update - Open branch

2022-04-28 Thread Panagiotis Koutsourakis
Changeset: 94e8c81e8c8a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/94e8c81e8c8a
Branch: strimps_update
Log Message:

Open branch

___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org