Changeset: 357250811aa0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=357250811aa0
Modified Files:
sql/server/rel_optimizer.c
sql/server/rel_prop.c
sql/server/rel_prop.h
Branch: Dec2011
Log Message:
small fix, make sure only range selects/joins are rewriten
diffs (46 lines):
diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -284,7 +284,8 @@ rel_properties(mvc *sql, global_props *g
switch (rel->op) {
case op_basetable:
case op_table:
- rel->p = prop_create(sql->sa, PROP_COUNT, rel->p);
+ if (!find_prop(rel->p, PROP_COUNT))
+ rel->p = prop_create(sql->sa, PROP_COUNT, rel->p);
break;
case op_join:
join_properties(sql, rel);
@@ -2271,7 +2272,7 @@ exps_merge_rse( mvc *sql, list *l, list
list_merge(exps, re->r, NULL);
fnd = exp_in(sql->sa, le->l, exps, cmp_in);
} else if (le->f && re->f && /* merge ranges */
- le->flag == re->flag) {
+ le->flag == re->flag && le->flag <= cmp_lt) {
sql_subfunc *min = sql_bind_func(sql->sa,
sql->session->schema, "sql_min", exp_subtype(le->r), exp_subtype(re->r),
F_FUNC);
sql_subfunc *max = sql_bind_func(sql->sa,
sql->session->schema, "sql_max", exp_subtype(le->f), exp_subtype(re->f),
F_FUNC);
sql_exp *mine, *maxe;
diff --git a/sql/server/rel_prop.c b/sql/server/rel_prop.c
--- a/sql/server/rel_prop.c
+++ b/sql/server/rel_prop.c
@@ -55,7 +55,7 @@ find_prop( prop *p, int kind)
return p;
}
-char *
+const char *
propkind2string( prop *p)
{
switch(p->kind) {
diff --git a/sql/server/rel_prop.h b/sql/server/rel_prop.h
--- a/sql/server/rel_prop.h
+++ b/sql/server/rel_prop.h
@@ -39,7 +39,7 @@ typedef struct prop {
extern prop * prop_create( sql_allocator *sa, int kind, prop *pre );
extern prop * prop_copy( sql_allocator *sa, prop *p);
extern prop * find_prop( prop *p, int kind);
-extern char * propkind2string( prop *p);
+extern const char * propkind2string( prop *p);
extern char * propvalue2string( prop *p);
#endif /* _REL_PROP_H_ */
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list