MonetDB: default - Merge with Jan2022 branch.
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.
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
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
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
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...
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
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
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
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
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
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
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
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
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