Changeset: 4c0046f2df34 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4c0046f2df34
Modified Files:
sql/server/rel_statistics.c
Branch: properties
Log Message:
Copy paste fix and more cleanup
diffs (53 lines):
diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c
--- a/sql/server/rel_statistics.c
+++ b/sql/server/rel_statistics.c
@@ -56,7 +56,7 @@ rel_propagate_column_ref_statistics(mvc
if (is_theta_exp(flag) && ((lne
= comparison_find_column(le, e)) || (rne = comparison_find_column(re, e)) ||
(fe && (fne = comparison_find_column(fe, e))))) {
atom *lval_min =
find_prop_and_get(le->p, PROP_MIN), *lval_max = find_prop_and_get(le->p,
PROP_MAX), *rval_min = find_prop_and_get(re->p, PROP_MIN),
- *rval_max =
find_prop_and_get(re->p, PROP_MAX), *fval_min = fe ? find_prop_and_get(re->p,
PROP_MIN) : NULL, *fval_max = fe ? find_prop_and_get(re->p, PROP_MAX) : NULL;
+ *rval_max =
find_prop_and_get(re->p, PROP_MAX), *fval_min = fe ? find_prop_and_get(fe->p,
PROP_MIN) : NULL, *fval_max = fe ? find_prop_and_get(fe->p, PROP_MAX) : NULL;
found_without_semantics
|= !comp->semantics;
if
(is_outerjoin(rel->op)) /* on outer joins, min and max cannot be propagated */
@@ -502,15 +502,13 @@ rel_simplify_count(visitor *v, sql_rel *
static sql_exp * /* Remove predicates always false from min/max values */
rel_prune_predicates(visitor *v, sql_rel *rel, sql_exp *e, int depth)
{
- mvc *sql = v->sql;
- bool always_false = false, always_true = false;
-
(void) rel;
(void) depth;
if (e->type == e_cmp && (is_theta_exp(e->flag) || e->f)) {
sql_exp *le = e->l, *re = e->r, *fe = e->f;
atom *lval_min = find_prop_and_get(le->p, PROP_MIN), *lval_max
= find_prop_and_get(le->p, PROP_MAX), *rval_min = find_prop_and_get(re->p,
PROP_MIN),
- *rval_max = find_prop_and_get(re->p, PROP_MAX),
*fval_min = fe ? find_prop_and_get(re->p, PROP_MIN) : NULL, *fval_max = fe ?
find_prop_and_get(re->p, PROP_MAX) : NULL;
+ *rval_max = find_prop_and_get(re->p, PROP_MAX),
*fval_min = fe ? find_prop_and_get(fe->p, PROP_MIN) : NULL, *fval_max = fe ?
find_prop_and_get(fe->p, PROP_MAX) : NULL;
+ bool always_false = false, always_true = false;
if (fe) {
(void) fval_min;
@@ -553,14 +551,14 @@ rel_prune_predicates(visitor *v, sql_rel
break;
}
}
- }
- assert(!always_false || !always_true);
- if (always_false || always_true) {
- sql_exp *ne = exp_atom_bool(sql->sa, always_true);
- if (exp_name(e))
- exp_prop_alias(v->sql->sa, ne, e);
- e = ne;
- v->changes++;
+ assert(!always_false || !always_true);
+ if (always_false || always_true) {
+ sql_exp *ne = exp_atom_bool(v->sql->sa, always_true);
+ if (exp_name(e))
+ exp_prop_alias(v->sql->sa, ne, e);
+ e = ne;
+ v->changes++;
+ }
}
return e;
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list