Changeset: aa696509653d for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=aa696509653d
Modified Files:
        sql/backends/monet5/sql.mx
        sql/server/rel_exp.c
        sql/server/rel_exp.h
        sql/server/rel_psm.c
        sql/test/BugTracker-2013/Tests/php-size-limit-bug.SQL.bat
        sql/test/mapi/Tests/php_monetdb.SQL.bat
        sql/test/mapi/Tests/php_monetdb_nogeom.SQL.bat
Branch: SciQL-2
Log Message:

Merge with Feb2013 branch.


diffs (121 lines):

diff --git a/sql/backends/monet5/sql.mx b/sql/backends/monet5/sql.mx
--- a/sql/backends/monet5/sql.mx
+++ b/sql/backends/monet5/sql.mx
@@ -2467,6 +2467,8 @@ create_func( mvc *sql, char *sname, sql_
                sql->sa = sa_create();
                buf = sa_strdup(sql->sa, nf->query);
                r = rel_parse(sql, buf, m_deps); 
+               if (r)
+                       r = rel_optimizer(sql, r);
                if (r) {
                        stmt *sb = rel_bin(sql, r);
                        list *id_col_l = stmt_list_dependencies(sql->sa, sb, 
COLUMN_DEPENDENCY);
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
@@ -23,6 +23,7 @@
 #include "rel_exp.h"
 #include "rel_psm.h"
 #include "rel_prop.h" /* for prop_copy() */
+#include "rel_optimizer.h"
 
 static sql_exp * 
 exp_create(sql_allocator *sa, int type ) 
@@ -465,10 +466,11 @@ exp_if(sql_allocator *sa, sql_exp *cond,
 }
 
 sql_exp * 
-exp_rel(sql_allocator *sa, sql_rel *rel)
+exp_rel(mvc *sql, sql_rel *rel)
 {
-       sql_exp *e = exp_create(sa, e_psm);
+       sql_exp *e = exp_create(sql->sa, e_psm);
 
+       rel = rel_optimizer(sql, rel);
        e->l = rel;
        e->flag = PSM_REL;
        return e;
diff --git a/sql/server/rel_exp.h b/sql/server/rel_exp.h
--- a/sql/server/rel_exp.h
+++ b/sql/server/rel_exp.h
@@ -20,6 +20,8 @@
 #ifndef _REL_EXP_H_
 #define _REL_EXP_H_
 
+#include "sql_mvc.h"
+
 #define new_exp_list(sa) sa_list(sa)
 #define exp2list(sa,e)   append(sa_list(sa),e)
 
@@ -72,7 +74,7 @@ extern sql_exp * exp_var(sql_allocator *
 extern sql_exp * exp_return(sql_allocator *sa, sql_exp *val, int level);
 extern sql_exp * exp_while(sql_allocator *sa, sql_exp *cond, list *stmts);
 extern sql_exp * exp_if(sql_allocator *sa, sql_exp *cond, list *if_stmts, list 
*else_stmts);
-extern sql_exp * exp_rel(sql_allocator *sa, sql_rel * r);
+extern sql_exp * exp_rel(mvc *sql, sql_rel * r);
 
 extern void exp_setname(sql_allocator *sa, sql_exp *e, char *rname, char *name 
);
 extern void exp_setrelname(sql_allocator *sa, sql_exp *e, int nr );
diff --git a/sql/server/rel_psm.c b/sql/server/rel_psm.c
--- a/sql/server/rel_psm.c
+++ b/sql/server/rel_psm.c
@@ -91,12 +91,12 @@ psm_set_exp(mvc *sql, dnode *n)
        if (!e)
                return NULL;
        if (rel) {
-               sql_exp *er = exp_rel(sql->sa, rel);
+               sql_exp *er = exp_rel(sql, rel);
                list *b = sa_list(sql->sa);
 
                append(b, er);
                append(b, exp_set(sql->sa, name, e, level));
-               res = exp_rel(sql->sa, rel_psm_block(sql->sa, b));
+               res = exp_rel(sql, rel_psm_block(sql->sa, b));
        } else {
                res = exp_set(sql->sa, name, e, level);
        }
@@ -399,7 +399,7 @@ rel_psm_return( mvc *sql, sql_subtype *r
                return NULL;
        
        if (rel && ek.card != card_relation)
-               append(l, exp_rel(sql->sa, rel));
+               append(l, exp_rel(sql, rel));
        else if (rel) {
                list *exps = sa_list(sql->sa);
                node *n, *m;
@@ -428,7 +428,7 @@ rel_psm_return( mvc *sql, sql_subtype *r
                        rel -> exps = exps;
                else
                        rel = rel_project(sql->sa, rel, exps);
-               res = exp_rel(sql->sa, rel);
+               res = exp_rel(sql, rel);
        } else if (!rel && res->tpe.comp_type){ /* handle return table-var */
                sql_rel *rel = stack_find_rel_var(sql, res->r);
                list *exps = sa_list(sql->sa);
@@ -480,7 +480,7 @@ rel_psm_return( mvc *sql, sql_subtype *r
                        append(exps, e);
                }
                rel = rel_project(sql->sa, rel, exps);
-               res = exp_rel(sql->sa, rel);
+               res = exp_rel(sql, rel);
        }
        append(l, exp_return(sql->sa, res, stack_nr_of_declared_tables(sql)));
        return l;
@@ -502,7 +502,7 @@ rel_select_into( mvc *sql, symbol *sq, e
        if (!r) 
                return NULL;
        nl = sa_list(sql->sa);
-       append(nl, exp_rel(sql->sa, r));
+       append(nl, exp_rel(sql, r));
        for (m = r->exps->h, n = into->h; m && n; m = m->next, n = n->next) {
                sql_subtype *tpe = NULL;
                char *nme = n->data.sval;
@@ -620,7 +620,7 @@ sequential_block (mvc *sql, sql_subtype 
                        sql_rel *r = rel_updates(sql, s);
                        if (!r)
                                return NULL;
-                       res = exp_rel(sql->sa, r);
+                       res = exp_rel(sql, r);
                }       break;
                default:
                        res = sql_error(sql, 01, 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to