Changeset: cd3db36bcacc for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cd3db36bcacc
Modified Files:
sql/backends/monet5/sql_statement.c
Branch: Jul2015
Log Message:
cleaned up st_func handling (ie is a wrapper around a relational sub query), ie
not a st_Nop (ie a normal mal function wrapper)
diffs (54 lines):
diff --git a/sql/backends/monet5/sql_statement.c
b/sql/backends/monet5/sql_statement.c
--- a/sql/backends/monet5/sql_statement.c
+++ b/sql/backends/monet5/sql_statement.c
@@ -385,7 +385,7 @@ stmt_deps(list *dep_list, stmt *s, int d
push(s->op2);
if (s->op3)
push(s->op3);
- if (depend_type == FUNC_DEPENDENCY) {
+ if (depend_type == FUNC_DEPENDENCY && s->type
== st_Nop) {
dep_list = cond_append(dep_list,
&s->op4.funcval->func->base.id);
}
break;
@@ -595,15 +595,17 @@ stmt_const_(sql_allocator *sa, stmt *s,
static stmt *
push_project(sql_allocator *sa, stmt *rows, stmt *val)
{
+ node *n;
+ stmt *l;
+
switch (val->type) {
case st_convert:
val->op1 = push_project(sa, rows, val->op1);
break;
- case st_func:
case st_Nop:
if (val->op4.funcval->func->side_effect) {
- stmt *l = val->op1;
- node *n = l->op4.lval->h;
+ l = val->op1;
+ n = l->op4.lval->h;
if (n) {
n->data = stmt_const_(sa, rows, n->data);
} else {
@@ -611,13 +613,17 @@ push_project(sql_allocator *sa, stmt *ro
}
} else {
/* push through arguments of Nop */
- node *n;
- stmt *l = val->op1;
-
+ l = val->op1;
for (n = l->op4.lval->h; n; n = n->next)
n->data = push_project(sa, rows, n->data);
}
break;
+ case st_func:
+ /* push through arguments of func */
+ l = val->op1;
+ for (n = l->op4.lval->h; n; n = n->next)
+ n->data = push_project(sa, rows, n->data);
+ break;
default:
if (!val->nrcols)
val = stmt_const_(sa, rows, val);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list