MonetDB: default - Merge with Jan2022 branch.

2022-04-20 Thread Sjoerd Mullender
Changeset: 50e5f8c0b298 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/50e5f8c0b298
Modified Files:
gdk/gdk_logger_old.c
Branch: default
Log Message:

Merge with Jan2022 branch.


diffs (29 lines):

diff --git a/gdk/gdk_logger_old.c b/gdk/gdk_logger_old.c
--- a/gdk/gdk_logger_old.c
+++ b/gdk/gdk_logger_old.c
@@ -1715,6 +1715,13 @@ old_logger_destroy(old_logger *lg)
BATloop(lg->add, p, q) {
b = BATdescriptor(bids[p]);
if (b) {
+   if (b != lg->lg->catalog_bid &&
+   b != lg->lg->catalog_id &&
+   b != lg->lg->dcatalog &&
+   b != lg->lg->seqs_id &&
+   b != lg->lg->seqs_val &&
+   b != lg->lg->dseqs)
+   b = BATsetaccess(b, BAT_READ);
BATmode(b, false);
BBPunfix(bids[p]);
}
diff --git a/sql/test/sysmon/Tests/sys_queue_expand.SQL.py 
b/sql/test/sysmon/Tests/sys_queue_expand.SQL.py
--- a/sql/test/sysmon/Tests/sys_queue_expand.SQL.py
+++ b/sql/test/sysmon/Tests/sys_queue_expand.SQL.py
@@ -54,7 +54,7 @@ def main():
 
 # Check the long running query, but lets first wait for a moment for 
the
 #   workers to start with their queries
-mstcur.execute('call sys.sleep(500)')
+mstcur.execute('call sys.sleep(1000)')
 query = 'select username, status, query from sys.queue() where query 
like \'call sys.sleep(5000)%\' order by query'
 expected_res = [
 ('monetdb', 'running', 'call sys.sleep('+SLEEP_TIME+')\n;'),
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Jan2022 - Set newly created upgraded bats to read-only.

2022-04-20 Thread Sjoerd Mullender
Changeset: 99e6b298d47d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/99e6b298d47d
Modified Files:
gdk/gdk_logger_old.c
Branch: Jan2022
Log Message:

Set newly created upgraded bats to read-only.


diffs (17 lines):

diff --git a/gdk/gdk_logger_old.c b/gdk/gdk_logger_old.c
--- a/gdk/gdk_logger_old.c
+++ b/gdk/gdk_logger_old.c
@@ -1725,6 +1725,13 @@ old_logger_destroy(old_logger *lg)
BATloop(lg->add, p, q) {
b = BATdescriptor(bids[p]);
if (b) {
+   if (b != lg->lg->catalog_bid &&
+   b != lg->lg->catalog_id &&
+   b != lg->lg->dcatalog &&
+   b != lg->lg->seqs_id &&
+   b != lg->lg->seqs_val &&
+   b != lg->lg->dseqs)
+   b = BATsetaccess(b, BAT_READ);
BATmode(b, false);
BBPunfix(bids[p]);
}
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - Approve output for 32bit windows

2022-04-20 Thread Martin van Dinther
Changeset: b498aa35f0e5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b498aa35f0e5
Modified Files:
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
Branch: default
Log Message:

Approve output for 32bit windows


diffs (16 lines):

diff --git a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit 
b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
--- a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
+++ b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
@@ -2602,12 +2602,6 @@ insert into sys.functions values (904, '
 insert into sys.functions values (905, 'sys_update_tables', 'update_tables', 
'sql', 0, 2, true, false, false, 2000, true, true);
 
 Running database upgrade commands:
-create procedure SHPattach(fname string) external name shp.attach;
-create procedure SHPload(fid integer) external name shp.import;
-create procedure SHPload(fid integer, filter geometry) external name 
shp.import;
-update sys.functions set system = true where schema_id = 2000 and name in 
('shpattach', 'shpload');
-
-Running database upgrade commands:
 drop function sys.dump_database(boolean);
 drop procedure sys.dump_table_data();
 drop procedure sys.dump_table_data(string, string);
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - fix compilation if there is no xml library

2022-04-20 Thread Niels Nes
Changeset: 04aeb8beb750 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/04aeb8beb750
Modified Files:
monetdb5/modules/atoms/xml.c
Branch: default
Log Message:

fix compilation if there is no xml library


diffs (16 lines):

diff --git a/monetdb5/modules/atoms/xml.c b/monetdb5/modules/atoms/xml.c
--- a/monetdb5/modules/atoms/xml.c
+++ b/monetdb5/modules/atoms/xml.c
@@ -817,9 +817,11 @@ size_t XMLunquotestring(const char **p, 
(void) buf;
return 0;
 }
-str XMLprelude(void) {
+static str
+XMLprelude(void) {
return MAL_SUCCEED; /* to not break init */
 }
+
 str XMLepilogue(void *ret) {
(void)ret;
return MAL_SUCCEED;
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - This is no longer needed

2022-04-20 Thread Pedro Ferreira
Changeset: dd631f3d82d1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/dd631f3d82d1
Modified Files:
sql/server/rel_exp.c
Branch: default
Log Message:

This is no longer needed


diffs (11 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
@@ -704,7 +704,6 @@ exp_propagate(sql_allocator *sa, sql_exp
set_unique(ne);
if (is_basecol(oe))
set_basecol(ne);
-   ne->flag = oe->flag; /* needed if the referenced column is a parameter 
without type set yet */
ne->p = prop_copy(sa, oe->p);
return ne;
 }
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - Revert commit 614c76873351 (not correct) Also...

2022-04-20 Thread Pedro Ferreira
Changeset: d4ef95b98441 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d4ef95b98441
Modified Files:
sql/server/rel_optimize_others.c
sql/test/miscellaneous/Tests/simple_selects.test
Branch: default
Log Message:

Revert commit 614c76873351 (not correct) Also added missing expression name 
proppagations


diffs (97 lines):

diff --git a/sql/server/rel_optimize_others.c b/sql/server/rel_optimize_others.c
--- a/sql/server/rel_optimize_others.c
+++ b/sql/server/rel_optimize_others.c
@@ -95,6 +95,7 @@ exps_push_down_prj(mvc *sql, list *exps,
narg = exp_push_down_prj(sql, arg, f, t);
if (!narg)
return NULL;
+   narg = exp_propagate(sql->sa, narg, arg);
append(nl, narg);
}
return nl;
@@ -103,7 +104,7 @@ exps_push_down_prj(mvc *sql, list *exps,
 sql_exp *
 exp_push_down_prj(mvc *sql, sql_exp *e, sql_rel *f, sql_rel *t)
 {
-   sql_exp *ne = NULL, *l, *r, *r2;
+   sql_exp *ne = NULL, *l = NULL, *r = NULL, *r2 = NULL;
 
assert(is_project(f->op));
 
@@ -152,29 +153,27 @@ exp_push_down_prj(mvc *sql, sql_exp *e, 
return exp_propagate(sql->sa, e, ne);
case e_cmp:
if (e->flag == cmp_or || e->flag == cmp_filter) {
-   list *l = exps_push_down_prj(sql, e->l, f, t);
-   list *r = exps_push_down_prj(sql, e->r, f, t);
-
-   if (!l || !r)
-   return NULL;
-   if (e->flag == cmp_filter)
-   return exp_filter(sql->sa, l, r, e->f, 
is_anti(e));
-   return exp_or(sql->sa, l, r, is_anti(e));
-   } else if (e->flag == cmp_in || e->flag == cmp_notin) {
-   sql_exp *l = exp_push_down_prj(sql, e->l, f, t);
-   list *r = exps_push_down_prj(sql, e->r, f, t);
+   list *l = NULL, *r = NULL;
 
-   if (!l || !r)
+   if (!(l = exps_push_down_prj(sql, e->l, f, t)) || !(r = 
exps_push_down_prj(sql, e->r, f, t)))
return NULL;
-   return exp_in(sql->sa, l, r, e->flag);
+   if (e->flag == cmp_filter) {
+   ne = exp_filter(sql->sa, l, r, e->f, 
is_anti(e));
+   } else {
+   ne = exp_or(sql->sa, l, r, is_anti(e));
+   }
+   } else if (e->flag == cmp_in || e->flag == cmp_notin) {
+   list *r = NULL;
+
+   if (!(l = exp_push_down_prj(sql, e->l, f, t)) || !(r = 
exps_push_down_prj(sql, e->r, f, t)))
+   return NULL;
+   ne = exp_in(sql->sa, l, r, e->flag);
} else {
-   l = exp_push_down_prj(sql, e->l, f, t);
-   r = exp_push_down_prj(sql, e->r, f, t);
+   if (!(l = exp_push_down_prj(sql, e->l, f, t)) || !(r = 
exp_push_down_prj(sql, e->r, f, t)) || (e->f && !(r2 = exp_push_down_prj(sql, 
e->f, f, t
+   return NULL;
if (e->f) {
-   r2 = exp_push_down_prj(sql, e->f, f, t);
-   if (l && r && r2)
-   ne = exp_compare2(sql->sa, l, r, r2, 
e->flag, is_symmetric(e));
-   } else if (l && r) {
+   ne = exp_compare2(sql->sa, l, r, r2, e->flag, 
is_symmetric(e));
+   } else {
ne = exp_compare(sql->sa, l, r, e->flag);
}
}
@@ -182,10 +181,10 @@ exp_push_down_prj(mvc *sql, sql_exp *e, 
return NULL;
return exp_propagate(sql->sa, ne, e);
case e_convert:
-   l = exp_push_down_prj(sql, e->l, f, t);
-   if (l)
-   return exp_convert(sql->sa, l, exp_fromtype(e), 
exp_totype(e));
-   return NULL;
+   if (!(l = exp_push_down_prj(sql, e->l, f, t)))
+   return NULL;
+   ne = exp_convert(sql->sa, l, exp_fromtype(e), exp_totype(e));
+   return exp_propagate(sql->sa, ne, e);
case e_aggr:
case e_func: {
list *l = e->l, *nl = NULL;
diff --git a/sql/test/miscellaneous/Tests/simple_selects.test 
b/sql/test/miscellaneous/Tests/simple_selects.test
--- a/sql/test/miscellaneous/Tests/simple_selects.test
+++ b/sql/test/miscellaneous/Tests/simple_selects.test
@@ -974,6 +974,11 @@ SELECT min(1) FROM (SELECT DISTINCT 1) x
 
 1
 
+query T nosort
+SELECT DISTINCT sql_sub(TIME '14:50:49', x.x) FROM (SELECT 1) y(y) CROSS JOIN 
(SELECT vx.x FROM (SELECT interval '7200' second) vx(x)) x(x)
+
+12:50:49
+
 statement ok
 create global temp 

MonetDB: properties - Look for overflows

2022-04-20 Thread Pedro Ferreira
Changeset: c513830f2fa8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c513830f2fa8
Modified Files:
sql/server/rel_statistics_functions.c
Branch: properties
Log Message:

Look for overflows


diffs (45 lines):

diff --git a/sql/server/rel_statistics_functions.c 
b/sql/server/rel_statistics_functions.c
--- a/sql/server/rel_statistics_functions.c
+++ b/sql/server/rel_statistics_functions.c
@@ -51,12 +51,15 @@ sql_add_propagate_statistics(mvc *sql, s
res2 = atom_general_ptr(sql->sa, , 
);
}
} else if (strcmp(f->func->imp, 
"time_add_msec_interval") == 0) {
-   daytime sub1 = 
time_add_msec_interval((daytime)lmax->data.val.lval, rmax->data.val.lval),
-   sub2 = 
time_add_msec_interval((daytime)lmin->data.val.lval, rmin->data.val.lval);
+   daytime v1 = (daytime)lmax->data.val.lval, v2 = 
(daytime)lmin->data.val.lval,
+   sub1 = 
time_add_msec_interval(v1, rmax->data.val.lval),
+   sub2 = 
time_add_msec_interval(v2, rmin->data.val.lval);
 
-   sql_find_subtype(, "time", 0, 0);
-   res1 = atom_general_ptr(sql->sa, , );
-   res2 = atom_general_ptr(sql->sa, , );
+   if (sub1 >= v1 && sub2 >= v2) { /* look for 
overflows */
+   sql_find_subtype(, "time", 0, 0);
+   res1 = atom_general_ptr(sql->sa, , 
);
+   res2 = atom_general_ptr(sql->sa, , 
);
+   }
} else if (strcmp(f->func->imp, 
"timestamp_add_msec_interval") == 0) {
timestamp sub1, sub2;
 
@@ -144,12 +147,15 @@ sql_sub_propagate_statistics(mvc *sql, s
res2 = atom_general_ptr(sql->sa, , 
);
}
} else if (strcmp(f->func->imp, 
"time_sub_msec_interval") == 0) {
-   daytime sub1 = 
time_sub_msec_interval((daytime)lmax->data.val.lval, rmin->data.val.lval),
-   sub2 = 
time_sub_msec_interval((daytime)lmin->data.val.lval, rmax->data.val.lval);
+   daytime v1 = (daytime)lmax->data.val.lval, v2 = 
(daytime)lmin->data.val.lval,
+   sub1 = 
time_sub_msec_interval(v1, rmin->data.val.lval),
+   sub2 = 
time_sub_msec_interval(v2, rmax->data.val.lval);
 
-   sql_find_subtype(, "time", 0, 0);
-   res1 = atom_general_ptr(sql->sa, , );
-   res2 = atom_general_ptr(sql->sa, , );
+   if (sub1 <= v1 && sub2 <= v2) { /* look for 
overflows */
+   sql_find_subtype(, "time", 0, 0);
+   res1 = atom_general_ptr(sql->sa, , 
);
+   res2 = atom_general_ptr(sql->sa, , 
);
+   }
} else if (strcmp(f->func->imp, 
"timestamp_sub_msec_interval") == 0) {
timestamp sub1, sub2;
 
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: properties - Merged with default

2022-04-20 Thread Pedro Ferreira
Changeset: bc80d895e75c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/bc80d895e75c
Modified Files:
sql/server/rel_optimize_proj.c
sql/test/miscellaneous/Tests/simple_selects.test
Branch: properties
Log Message:

Merged with default


diffs (80 lines):

diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -1461,13 +1461,12 @@ rel_simplify_sum(visitor *v, sql_rel *re
while (is_numeric_upcast(col))
col = col->l;
if (col->type == e_column) {
-   sql_rel *crel = NULL;
-   sql_exp *colref = 
rel_find_exp_and_corresponding_rel(l, col, false, , NULL);
+   sql_exp *colf = 
exps_find_exp(l->exps, col);
 
/* col is already found 
in the inner relation. Also look for a new reference for col, eg sql_add(col, 
1), 1 as col */
-   if (colref && l == crel 
&& list_position(l->exps, colref) < list_position(l->exps, oexp)) {
+   if (colf && 
list_position(l->exps, colf) < list_position(l->exps, oexp)) {
add_col = false;
-   } else if (!colref && 
is_simple_project(l->op) && list_empty(l->r) && !rel_is_ref(l) && 
!need_distinct(l)) {
+   } else if (!colf && 
is_simple_project(l->op) && list_empty(l->r) && !rel_is_ref(l) && 
!need_distinct(l)) {

list_prepend(l->exps, exp_ref(v->sql, col));
add_col = false;
}
@@ -1601,7 +1600,7 @@ rel_simplify_groupby_columns(visitor *v,
if 
(c->type == e_column) {

if (is_simple_project(efrel->op) || is_groupby(efrel->op)) {

/* in a simple projection, self-references may occur */
-   
sql_exp *nc = (c->l ? exps_bind_column2(efrel->exps, c->l, c->r, NULL) 
: exps_bind_column(efrel->exps, c->r, NULL, NULL, 0));
+   
sql_exp *nc = exps_find_exp(efrel->exps, c);

if (nc && list_position(efrel->exps, nc) < list_position(efrel->exps, 
exp_col)) {

exp_col = c;

c = nc;
@@ -1639,18 +1638,17 @@ rel_simplify_groupby_columns(visitor *v,
list_hash_clear(rel->r);
}
 
-   sql_exp *f = (col->l ? 
exps_bind_column2(rel->r, col->l, col->r, NULL) : exps_bind_column(rel->r, 
col->r, NULL, NULL, 0));
+   sql_exp *f = exps_find_exp(rel->r, col);
 
if (f && list_position(rel->r, f) < 
list_position(rel->r, e)) { /* if already present, remove it */
e->used = 1;
} else {
/* Use an unique reference to 
the column found. If there's another grouping column label pointing into it,
   rel_groupby_cse will 
hopefully remove it */
-   sql_rel *crel = NULL;
-   sql_exp *colf = 
rel_find_exp_and_corresponding_rel(l, col, false, , NULL);
+   sql_exp *colf = 
exps_find_exp(l->exps, col);
 
/* col is already found in the 
inner relation. Also look for a new reference for col, eg sql_add(col, 1), 1 as 
col */
-   if (colf && l == crel && 
list_position(l->exps, colf) < list_position(l->exps, tope)) {
+   if (colf && 
list_position(l->exps, colf) < list_position(l->exps, tope)) {

MonetDB: default - Use right call to fix crash

2022-04-20 Thread Pedro Ferreira
Changeset: 82b461a9aabd for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/82b461a9aabd
Modified Files:
sql/server/rel_optimize_proj.c
sql/test/miscellaneous/Tests/simple_selects.test
Branch: default
Log Message:

Use right call to fix crash


diffs (80 lines):

diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -1461,13 +1461,12 @@ rel_simplify_sum(visitor *v, sql_rel *re
while (is_numeric_upcast(col))
col = col->l;
if (col->type == e_column) {
-   sql_rel *crel = NULL;
-   sql_exp *colref = 
rel_find_exp_and_corresponding_rel(l, col, false, , NULL);
+   sql_exp *colf = 
exps_find_exp(l->exps, col);
 
/* col is already found 
in the inner relation. Also look for a new reference for col, eg sql_add(col, 
1), 1 as col */
-   if (colref && l == crel 
&& list_position(l->exps, colref) < list_position(l->exps, oexp)) {
+   if (colf && 
list_position(l->exps, colf) < list_position(l->exps, oexp)) {
add_col = false;
-   } else if (!colref && 
is_simple_project(l->op) && list_empty(l->r) && !rel_is_ref(l) && 
!need_distinct(l)) {
+   } else if (!colf && 
is_simple_project(l->op) && list_empty(l->r) && !rel_is_ref(l) && 
!need_distinct(l)) {

list_prepend(l->exps, exp_ref(v->sql, col));
add_col = false;
}
@@ -1601,7 +1600,7 @@ rel_simplify_groupby_columns(visitor *v,
if 
(c->type == e_column) {

if (is_simple_project(efrel->op) || is_groupby(efrel->op)) {

/* in a simple projection, self-references may occur */
-   
sql_exp *nc = (c->l ? exps_bind_column2(efrel->exps, c->l, c->r, NULL) 
: exps_bind_column(efrel->exps, c->r, NULL, NULL, 0));
+   
sql_exp *nc = exps_find_exp(efrel->exps, c);

if (nc && list_position(efrel->exps, nc) < list_position(efrel->exps, 
exp_col)) {

exp_col = c;

c = nc;
@@ -1639,18 +1638,17 @@ rel_simplify_groupby_columns(visitor *v,
list_hash_clear(rel->r);
}
 
-   sql_exp *f = (col->l ? 
exps_bind_column2(rel->r, col->l, col->r, NULL) : exps_bind_column(rel->r, 
col->r, NULL, NULL, 0));
+   sql_exp *f = exps_find_exp(rel->r, col);
 
if (f && list_position(rel->r, f) < 
list_position(rel->r, e)) { /* if already present, remove it */
e->used = 1;
} else {
/* Use an unique reference to 
the column found. If there's another grouping column label pointing into it,
   rel_groupby_cse will 
hopefully remove it */
-   sql_rel *crel = NULL;
-   sql_exp *colf = 
rel_find_exp_and_corresponding_rel(l, col, false, , NULL);
+   sql_exp *colf = 
exps_find_exp(l->exps, col);
 
/* col is already found in the 
inner relation. Also look for a new reference for col, eg sql_add(col, 1), 1 as 
col */
-   if (colf && l == crel && 
list_position(l->exps, colf) < list_position(l->exps, tope)) {
+   if (colf && 
list_position(l->exps, colf) < list_position(l->exps, tope)) 

MonetDB: properties - Merged with default

2022-04-20 Thread Pedro Ferreira
Changeset: c30d19ef72f8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c30d19ef72f8
Modified Files:
sql/server/rel_optimize_proj.c
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/miscellaneous/Tests/groupby_expressions.test
sql/test/miscellaneous/Tests/simple_selects.test
Branch: properties
Log Message:

Merged with default


diffs (truncated from 1346 to 300 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
@@ -58194,11 +58194,6 @@ pattern capi.eval_aggr(X_0:ptr, X_1:bit,
 CUDFevalAggr;
 grouped aggregates through CUDF
 capi
-prelude
-command capi.prelude():void 
-CUDFprelude;
-(empty)
-capi
 subeval_aggr
 pattern capi.subeval_aggr(X_0:ptr, X_1:bit, X_2:str, X_3:any...):any... 
 CUDFevalAggr;
@@ -59784,11 +59779,6 @@ command geom.mbrRight(X_0:wkb, X_1:wkb):
 mbrRight_wkb;
 Returns true if the mbr of geom1 is right of the mbr of geom2
 geom
-prelude
-command geom.prelude():void 
-geom_prelude;
-(empty)
-geom
 setSRID
 command geom.setSRID(X_0:wkb, X_1:int):wkb 
 wkbSetSRID;
@@ -59983,11 +59973,6 @@ identifier
 command identifier.identifier(X_0:str):identifier 
 IDentifier;
 Cast a string to an identifer 
-identifier
-prelude
-command identifier.prelude():void 
-IDprelude;
-Initialize the module
 inet
 !=
 command inet.!=(X_0:inet, X_1:inet):bit 
@@ -60429,11 +60414,6 @@ command json.number(X_0:json):dbl
 JSONjson2number;
 Convert simple JSON values to a double, return nil upon error.
 json
-prelude
-command json.prelude():void 
-JSONprelude;
-(empty)
-json
 renderarray
 pattern json.renderarray(X_0:any...):json 
 JSONrenderarray;
@@ -60819,11 +60799,6 @@ command mapi.ping(X_0:int):int
 SERVERping;
 Test availability of an Mserver.
 mapi
-prelude
-command mapi.prelude():int 
-SERVERlisten_default;
-(empty)
-mapi
 prepare
 command mapi.prepare(X_0:int, X_1:str):int 
 SERVERprepare;
@@ -61319,11 +61294,6 @@ command mmath.pow(X_0:flt, X_1:flt):flt
 MATHbinary_POWflt;
 (empty)
 mmath
-prelude
-command mmath.prelude():void 
-MATHprelude;
-initilize mmath module
-mmath
 radians
 command mmath.radians(X_0:dbl):dbl 
 MATHunary_RADIANSdbl;
@@ -62039,11 +62009,6 @@ pattern optimizer.postfix(X_0:str, X_1:s
 OPTwrapper;
 Postfix the plan,e.g. pushing projections
 optimizer
-prelude
-pattern optimizer.prelude():void 
-optimizer_prelude;
-Initialize the optimizer
-optimizer
 profiler
 pattern optimizer.profiler():str 
 OPTwrapper;
@@ -62199,11 +62164,6 @@ command pcre.pcre_quote(X_0:str):str
 PCREquote;
 Return a PCRE pattern string that matches the argument exactly.
 pcre
-prelude
-command pcre.prelude():void 
-pcre_init;
-Initialize pcre
-pcre
 replace
 command pcre.replace(X_0:str, X_1:str, X_2:str, X_3:str):str 
 PCREreplace_wrap;
@@ -62334,11 +62294,6 @@ unsafe pattern pyapi3.eval_loader(X_0:pt
 PYAPI3PyAPIevalLoader;
 loader functions through Python
 pyapi3
-prelude
-command pyapi3.prelude():void 
-PYAPI3PyAPIprelude;
-(empty)
-pyapi3
 subeval_aggr
 unsafe pattern pyapi3.subeval_aggr(X_0:ptr, X_1:str, X_2:any...):any... 
 PYAPI3PyAPIevalAggr;
@@ -62424,11 +62379,6 @@ pattern rapi.eval_aggr(X_0:ptr, X_1:str,
 RAPIevalAggr;
 grouped aggregates through R
 rapi
-prelude
-command rapi.prelude():void 
-RAPIprelude;
-(empty)
-rapi
 subeval_aggr
 pattern rapi.subeval_aggr(X_0:ptr, X_1:str, X_2:any...):any... 
 RAPIevalAggr;
@@ -62519,11 +62469,6 @@ command remote.isalive(X_0:str):int
 RMTisalive;
 check if conn is still valid and connected
 remote
-prelude
-command remote.prelude():void 
-RMTprelude;
-initialise the remote module
-remote
 put
 pattern remote.put(X_0:str, X_1:any):str 
 RMTput;
@@ -64224,11 +64169,6 @@ command str.prefix(X_0:str, X_1:int):str
 STRprefix;
 Extract the prefix of a given length
 str
-prelude
-command str.prelude():void 
-STRprelude;
-(empty)
-str
 r_search
 command str.r_search(X_0:str, X_1:str):int 
 STRReverseStrSearch;
@@ -65474,11 +65414,6 @@ command xml.pi(X_0:str, X_1:str):xml
 XMLpi;
 Construct a processing instruction
 xml
-prelude
-command xml.prelude():void 
-XMLprelude;
-(empty)
-xml
 root
 command xml.root(X_0:xml, X_1:str, X_2:str):xml 
 XMLroot;
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
@@ -41779,11 +41779,6 @@ pattern capi.eval_aggr(X_0:ptr, X_1:bit,
 CUDFevalAggr;
 grouped aggregates through CUDF
 capi
-prelude
-command capi.prelude():void 
-CUDFprelude;
-(empty)
-capi
 subeval_aggr
 pattern capi.subeval_aggr(X_0:ptr, X_1:bit, X_2:str, X_3:any...):any... 
 CUDFevalAggr;
@@ -43324,11 +43319,6 @@ command geom.mbrRight(X_0:wkb, X_1:wkb):
 mbrRight_wkb;
 Returns true if the mbr of geom1 is right of the mbr of geom2
 geom
-prelude
-command geom.prelude():void 
-geom_prelude;
-(empty)
-geom
 setSRID
 command geom.setSRID(X_0:wkb, 

MonetDB: default - Small fixes for new optimizers

2022-04-20 Thread Pedro Ferreira
Changeset: 0b6b8d8fb329 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/0b6b8d8fb329
Modified Files:
sql/server/rel_optimize_proj.c
sql/test/miscellaneous/Tests/groupby_expressions.test
sql/test/miscellaneous/Tests/simple_selects.test
Branch: default
Log Message:

Small fixes for new optimizers


diffs (107 lines):

diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -1464,9 +1464,10 @@ rel_simplify_sum(visitor *v, sql_rel *re
sql_rel *crel = NULL;
sql_exp *colref = 
rel_find_exp_and_corresponding_rel(l, col, false, , NULL);
 
-   if (colref && l == 
crel) {
+   /* col is already found 
in the inner relation. Also look for a new reference for col, eg sql_add(col, 
1), 1 as col */
+   if (colref && l == crel 
&& list_position(l->exps, colref) < list_position(l->exps, oexp)) {
add_col = false;
-   } else if 
(is_simple_project(l->op) && list_empty(l->r) && !rel_is_ref(l) && 
!need_distinct(l)) {
+   } else if (!colref && 
is_simple_project(l->op) && list_empty(l->r) && !rel_is_ref(l) && 
!need_distinct(l)) {

list_prepend(l->exps, exp_ref(v->sql, col));
add_col = false;
}
@@ -1539,7 +1540,7 @@ rel_simplify_sum(visitor *v, sql_rel *re
 
/* add column reference with 
new label, if 'col' was not found */
if (add_col) {
-   if 
(!is_simple_project(l->op) || !list_empty(l->r) || rel_is_ref(l) || 
need_distinct(l) || is_single(l))
+   if 
(!is_simple_project(l->op) || !list_empty(l->r) || rel_is_ref(l) || 
need_distinct(l))
groupby->l = l 
= rel_project(v->sql->sa, l, rel_projections(v->sql, l, NULL, 1, 1));
list_append(l->exps, 
ocol);
}
@@ -1573,7 +1574,7 @@ rel_simplify_groupby_columns(visitor *v,
if (e->type == e_column) {
bool searching = true;
sql_rel *efrel = NULL;
-   sql_exp *exp = 
rel_find_exp_and_corresponding_rel(l, e, false, , NULL), *col = NULL;
+   sql_exp *exp = 
rel_find_exp_and_corresponding_rel(l, e, false, , NULL), *col = NULL, 
*tope = exp;
 
while (searching && !col) {
sql_exp *exp_col = exp;
@@ -1631,7 +1632,7 @@ rel_simplify_groupby_columns(visitor *v,
if ((rname && name && (strcmp(rname, 
e->l) != 0 || strcmp(name, e->r) != 0)) || (!rname && name && strcmp(name, 
e->r) != 0)) {
if (!has_label(e)) /* dangerous 
to merge, skip it */
continue;
-   if (!is_simple_project(l->op) 
|| !list_empty(l->r) || rel_is_ref(l) || need_distinct(l) || is_single(l))
+   if (!is_simple_project(l->op) 
|| !list_empty(l->r) || rel_is_ref(l) || need_distinct(l))
rel->l = l = 
rel_project(v->sql->sa, l, rel_projections(v->sql, l, NULL, 1, 1));
list_append(l->exps, e);
n->data = e = exp_ref(v->sql, 
e);
@@ -1645,14 +1646,26 @@ rel_simplify_groupby_columns(visitor *v,
} else {
/* Use an unique reference to 
the column found. If there's another grouping column label pointing into it,
   rel_groupby_cse will 
hopefully remove it */
-   sql_exp *ne = exp_ref(v->sql, 
col);
-   if (!has_label(ne))
-   exp_label(v->sql->sa, 
ne, ++v->sql->label);
-
-   if (!is_simple_project(l->op) 
|| !list_empty(l->r) || 

MonetDB: default - Approved output

2022-04-20 Thread Pedro Ferreira
Changeset: 474819a9bb4a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/474819a9bb4a
Modified Files:
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
Branch: default
Log Message:

Approved output


diffs (22 lines):

diff --git a/sql/test/emptydb/Tests/check.stable.out 
b/sql/test/emptydb/Tests/check.stable.out
--- a/sql/test/emptydb/Tests/check.stable.out
+++ b/sql/test/emptydb/Tests/check.stable.out
@@ -4658,7 +4658,6 @@ select 'null in value_partitions.value',
 [ "sys.keywords",  "LOCAL" ]
 [ "sys.keywords",  "LOCALTIME" ]
 [ "sys.keywords",  "LOCALTIMESTAMP"]
-[ "sys.keywords",  "LOCKED"]
 [ "sys.keywords",  "MATCH" ]
 [ "sys.keywords",  "MATCHED"   ]
 [ "sys.keywords",  "MAXVALUE"  ]
diff --git a/sql/test/emptydb/Tests/check.stable.out.32bit 
b/sql/test/emptydb/Tests/check.stable.out.32bit
--- a/sql/test/emptydb/Tests/check.stable.out.32bit
+++ b/sql/test/emptydb/Tests/check.stable.out.32bit
@@ -4658,7 +4658,6 @@ select 'null in value_partitions.value',
 [ "sys.keywords",  "LOCAL" ]
 [ "sys.keywords",  "LOCALTIME" ]
 [ "sys.keywords",  "LOCALTIMESTAMP"]
-[ "sys.keywords",  "LOCKED"]
 [ "sys.keywords",  "MATCH" ]
 [ "sys.keywords",  "MATCHED"   ]
 [ "sys.keywords",  "MAXVALUE"  ]
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - Missing space

2022-04-20 Thread Pedro Ferreira
Changeset: d96b8f0c9e3f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d96b8f0c9e3f
Modified Files:
sql/server/rel_optimize_proj.c
Branch: default
Log Message:

Missing space


diffs (12 lines):

diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -1367,7 +1367,7 @@ exp_is_const_op(sql_exp *exp, sql_exp *t
return exps_are_const_op(exp->l, tope, expr) && 
exps_are_const_op(exp->r, tope, expr);
if (exp->flag == cmp_in || exp->flag == cmp_notin)
return exp_is_const_op(exp->l, tope, expr) && 
exps_are_const_op(exp->r, tope, expr);
-   return exp_is_const_op(exp->l, tope, expr)&& 
exp_is_const_op(exp->r, tope, expr) && (!exp->f || exp_is_const_op(exp->f, 
tope, expr));
+   return exp_is_const_op(exp->l, tope, expr) && 
exp_is_const_op(exp->r, tope, expr) && (!exp->f || exp_is_const_op(exp->f, 
tope, expr));
case e_column: {
if (is_simple_project(expr->op) || is_groupby(expr->op)) {
/* in a simple projection, self-references may occur */
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - Use right call

2022-04-20 Thread Pedro Ferreira
Changeset: ede1fcb9dda7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ede1fcb9dda7
Modified Files:
sql/server/rel_optimize_proj.c
Branch: default
Log Message:

Use right call


diffs (12 lines):

diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -1367,7 +1367,7 @@ exp_is_const_op(sql_exp *exp, sql_exp *t
return exps_are_const_op(exp->l, tope, expr) && 
exps_are_const_op(exp->r, tope, expr);
if (exp->flag == cmp_in || exp->flag == cmp_notin)
return exp_is_const_op(exp->l, tope, expr) && 
exps_are_const_op(exp->r, tope, expr);
-   return exps_are_const_op(exp->l, tope, expr)&& 
exps_are_const_op(exp->r, tope, expr) && (!exp->f || exps_are_const_op(exp->f, 
tope, expr));
+   return exp_is_const_op(exp->l, tope, expr)&& 
exp_is_const_op(exp->r, tope, expr) && (!exp->f || exp_is_const_op(exp->f, 
tope, expr));
case e_column: {
if (is_simple_project(expr->op) || is_groupby(expr->op)) {
/* in a simple projection, self-references may occur */
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org