Changeset: e23683f66f16 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e23683f66f16
Modified Files:
        sql/backends/monet5/sql.mx
        sql/server/rel_exp.c
        sql/server/rel_exp.h
        sql/server/rel_psm.c
        sql/test/Dependencies/Tests/Dependencies.stable.out
        sql/test/leaks/Tests/check1.stable.out
        sql/test/leaks/Tests/check1_nogeom.stable.out
        sql/test/leaks/Tests/check2.stable.out
        sql/test/leaks/Tests/check2_nogeom.stable.out
        sql/test/leaks/Tests/check3.stable.out
        sql/test/leaks/Tests/check3_nogeom.stable.out
        sql/test/leaks/Tests/check4.stable.out
        sql/test/leaks/Tests/check4_nogeom.stable.out
        sql/test/leaks/Tests/check5.stable.out
        sql/test/leaks/Tests/check5_nogeom.stable.out
Branch: default
Log Message:

Merge with Feb2013 branch.


diffs (truncated from 601 to 300 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
@@ -2520,6 +2520,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 ) 
@@ -439,10 +440,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);
        }
@@ -389,7 +389,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;
@@ -418,7 +418,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);
@@ -439,7 +439,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;
@@ -461,7 +461,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;
@@ -578,7 +578,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, 
diff --git a/sql/test/Dependencies/Tests/Dependencies.stable.out 
b/sql/test/Dependencies/Tests/Dependencies.stable.out
--- a/sql/test/Dependencies/Tests/Dependencies.stable.out
+++ b/sql/test/Dependencies/Tests/Dependencies.stable.out
@@ -267,7 +267,6 @@ Dependencies between database objects
 [ "id",        "dependencies_functions_os_triggers",   "DEP_FUNC"      ]
 [ "id",        "dependencies_keys_on_foreignkeys",     "DEP_FUNC"      ]
 [ "id",        "dependencies_owners_on_schemas",       "DEP_FUNC"      ]
-[ "id",        "dependencies_owners_on_schemas",       "DEP_FUNC"      ]
 [ "id",        "dependencies_schemas_on_users",        "DEP_FUNC"      ]
 [ "id",        "dependencies_tables_on_foreignkeys",   "DEP_FUNC"      ]
 [ "id",        "dependencies_tables_on_functions",     "DEP_FUNC"      ]
@@ -359,16 +358,13 @@ Dependencies between database objects
 % sys.f1,      sys.f2, .L1 # table_name
 % name,        name,   L1 # name
 % varchar,     varchar,        char # type
-% 15,  35,     8 # length
+% 15,  31,     8 # length
 [ "=", "columnsize",   "DEP_FUNC"      ]
 [ "left_shift",        "columnsize",   "DEP_FUNC"      ]
 [ "sql_mul",   "columnsize",   "DEP_FUNC"      ]
 [ "pi",        "degrees",      "DEP_FUNC"      ]
 [ "sql_div",   "degrees",      "DEP_FUNC"      ]
 [ "sql_mul",   "degrees",      "DEP_FUNC"      ]
-[ "=", "dependencies_columns_on_functions",    "DEP_FUNC"      ]
-[ "hash",      "dependencies_columns_on_functions",    "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_columns_on_functions",    "DEP_FUNC"      
]
 [ "=", "dependencies_columns_on_indexes",      "DEP_FUNC"      ]
 [ "hash",      "dependencies_columns_on_indexes",      "DEP_FUNC"      ]
 [ "isnull",    "dependencies_columns_on_indexes",      "DEP_FUNC"      ]
@@ -377,34 +373,7 @@ Dependencies between database objects
 [ "hash",      "dependencies_columns_on_keys", "DEP_FUNC"      ]
 [ "rotate_xor_hash",   "dependencies_columns_on_keys", "DEP_FUNC"      ]
 [ "sql_neg",   "dependencies_columns_on_keys", "DEP_FUNC"      ]
-[ "=", "dependencies_columns_on_triggers",     "DEP_FUNC"      ]
-[ "hash",      "dependencies_columns_on_triggers",     "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_columns_on_triggers",     "DEP_FUNC"      
]
-[ "=", "dependencies_columns_on_views",        "DEP_FUNC"      ]
-[ "hash",      "dependencies_columns_on_views",        "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_columns_on_views",        "DEP_FUNC"      
]
-[ "=", "dependencies_functions_on_functions",  "DEP_FUNC"      ]
-[ "hash",      "dependencies_functions_on_functions",  "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_functions_on_functions",  "DEP_FUNC"      
]
-[ "=", "dependencies_functions_os_triggers",   "DEP_FUNC"      ]
-[ "hash",      "dependencies_functions_os_triggers",   "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_functions_os_triggers",   "DEP_FUNC"      
]
-[ "=", "dependencies_tables_on_functions",     "DEP_FUNC"      ]
-[ "hash",      "dependencies_tables_on_functions",     "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_tables_on_functions",     "DEP_FUNC"      
]
 [ "isnull",    "dependencies_tables_on_indexes",       "DEP_FUNC"      ]
-[ "=", "dependencies_tables_on_triggers",      "DEP_FUNC"      ]
-[ "hash",      "dependencies_tables_on_triggers",      "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_tables_on_triggers",      "DEP_FUNC"      
]
-[ "=", "dependencies_tables_on_views", "DEP_FUNC"      ]
-[ "hash",      "dependencies_tables_on_views", "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_tables_on_views", "DEP_FUNC"      ]
-[ "=", "dependencies_views_on_functions",      "DEP_FUNC"      ]
-[ "hash",      "dependencies_views_on_functions",      "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_views_on_functions",      "DEP_FUNC"      
]
-[ "=", "dependencies_views_on_triggers",       "DEP_FUNC"      ]
-[ "hash",      "dependencies_views_on_triggers",       "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_views_on_triggers",       "DEP_FUNC"      
]
 [ ">", "f1",   "DEP_FUNC"      ]
 [ "not",       "f1",   "DEP_FUNC"      ]
 [ "<", "f2",   "DEP_FUNC"      ]
@@ -438,9 +407,8 @@ Dependencies between database objects
 % sys.f,       sys.tri,        .L # table_name
 % name,        name,   single_value # name
 % varchar,     varchar,        char # type
-% 6,   12,     11 # length
+% 5,   12,     11 # length
 [ "<>",        "trigger_test", "DEP_TRIGGER"   ]
-[ "isnull",    "trigger_test", "DEP_TRIGGER"   ]
 [ "count",     "trigger_test", "DEP_TRIGGER"   ]
 #SELECT k.name, fk.name, 'DEP_FKEY' from keys as k, keys as fk where fk.rkey = 
k.id;
 % sys.k,       sys.fk, .L # table_name
@@ -486,16 +454,13 @@ Dependencies between functions with same
 % sys.f1,      sys.f2, .L1 # table_name
 % name,        name,   L1 # name
 % varchar,     varchar,        char # type
-% 15,  35,     8 # length
+% 15,  31,     8 # length
 [ "=", "columnsize",   "DEP_FUNC"      ]
 [ "left_shift",        "columnsize",   "DEP_FUNC"      ]
 [ "sql_mul",   "columnsize",   "DEP_FUNC"      ]
 [ "pi",        "degrees",      "DEP_FUNC"      ]
 [ "sql_div",   "degrees",      "DEP_FUNC"      ]
 [ "sql_mul",   "degrees",      "DEP_FUNC"      ]
-[ "=", "dependencies_columns_on_functions",    "DEP_FUNC"      ]
-[ "hash",      "dependencies_columns_on_functions",    "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_columns_on_functions",    "DEP_FUNC"      
]
 [ "=", "dependencies_columns_on_indexes",      "DEP_FUNC"      ]
 [ "hash",      "dependencies_columns_on_indexes",      "DEP_FUNC"      ]
 [ "isnull",    "dependencies_columns_on_indexes",      "DEP_FUNC"      ]
@@ -504,34 +469,7 @@ Dependencies between functions with same
 [ "hash",      "dependencies_columns_on_keys", "DEP_FUNC"      ]
 [ "rotate_xor_hash",   "dependencies_columns_on_keys", "DEP_FUNC"      ]
 [ "sql_neg",   "dependencies_columns_on_keys", "DEP_FUNC"      ]
-[ "=", "dependencies_columns_on_triggers",     "DEP_FUNC"      ]
-[ "hash",      "dependencies_columns_on_triggers",     "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_columns_on_triggers",     "DEP_FUNC"      
]
-[ "=", "dependencies_columns_on_views",        "DEP_FUNC"      ]
-[ "hash",      "dependencies_columns_on_views",        "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_columns_on_views",        "DEP_FUNC"      
]
-[ "=", "dependencies_functions_on_functions",  "DEP_FUNC"      ]
-[ "hash",      "dependencies_functions_on_functions",  "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_functions_on_functions",  "DEP_FUNC"      
]
-[ "=", "dependencies_functions_os_triggers",   "DEP_FUNC"      ]
-[ "hash",      "dependencies_functions_os_triggers",   "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_functions_os_triggers",   "DEP_FUNC"      
]
-[ "=", "dependencies_tables_on_functions",     "DEP_FUNC"      ]
-[ "hash",      "dependencies_tables_on_functions",     "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_tables_on_functions",     "DEP_FUNC"      
]
 [ "isnull",    "dependencies_tables_on_indexes",       "DEP_FUNC"      ]
-[ "=", "dependencies_tables_on_triggers",      "DEP_FUNC"      ]
-[ "hash",      "dependencies_tables_on_triggers",      "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_tables_on_triggers",      "DEP_FUNC"      
]
-[ "=", "dependencies_tables_on_views", "DEP_FUNC"      ]
-[ "hash",      "dependencies_tables_on_views", "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_tables_on_views", "DEP_FUNC"      ]
-[ "=", "dependencies_views_on_functions",      "DEP_FUNC"      ]
-[ "hash",      "dependencies_views_on_functions",      "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_views_on_functions",      "DEP_FUNC"      
]
-[ "=", "dependencies_views_on_triggers",       "DEP_FUNC"      ]
-[ "hash",      "dependencies_views_on_triggers",       "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_views_on_triggers",       "DEP_FUNC"      
]
 [ ">", "f1",   "DEP_FUNC"      ]
 [ "not",       "f1",   "DEP_FUNC"      ]
 [ "<", "f2",   "DEP_FUNC"      ]
@@ -571,16 +509,13 @@ Dependencies between functions with same
 % sys.f1,      sys.f2, .L1 # table_name
 % name,        name,   L1 # name
 % varchar,     varchar,        char # type
-% 15,  35,     8 # length
+% 15,  31,     8 # length
 [ "=", "columnsize",   "DEP_FUNC"      ]
 [ "left_shift",        "columnsize",   "DEP_FUNC"      ]
 [ "sql_mul",   "columnsize",   "DEP_FUNC"      ]
 [ "pi",        "degrees",      "DEP_FUNC"      ]
 [ "sql_div",   "degrees",      "DEP_FUNC"      ]
 [ "sql_mul",   "degrees",      "DEP_FUNC"      ]
-[ "=", "dependencies_columns_on_functions",    "DEP_FUNC"      ]
-[ "hash",      "dependencies_columns_on_functions",    "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_columns_on_functions",    "DEP_FUNC"      
]
 [ "=", "dependencies_columns_on_indexes",      "DEP_FUNC"      ]
 [ "hash",      "dependencies_columns_on_indexes",      "DEP_FUNC"      ]
 [ "isnull",    "dependencies_columns_on_indexes",      "DEP_FUNC"      ]
@@ -589,34 +524,7 @@ Dependencies between functions with same
 [ "hash",      "dependencies_columns_on_keys", "DEP_FUNC"      ]
 [ "rotate_xor_hash",   "dependencies_columns_on_keys", "DEP_FUNC"      ]
 [ "sql_neg",   "dependencies_columns_on_keys", "DEP_FUNC"      ]
-[ "=", "dependencies_columns_on_triggers",     "DEP_FUNC"      ]
-[ "hash",      "dependencies_columns_on_triggers",     "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_columns_on_triggers",     "DEP_FUNC"      
]
-[ "=", "dependencies_columns_on_views",        "DEP_FUNC"      ]
-[ "hash",      "dependencies_columns_on_views",        "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_columns_on_views",        "DEP_FUNC"      
]
-[ "=", "dependencies_functions_on_functions",  "DEP_FUNC"      ]
-[ "hash",      "dependencies_functions_on_functions",  "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_functions_on_functions",  "DEP_FUNC"      
]
-[ "=", "dependencies_functions_os_triggers",   "DEP_FUNC"      ]
-[ "hash",      "dependencies_functions_os_triggers",   "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_functions_os_triggers",   "DEP_FUNC"      
]
-[ "=", "dependencies_tables_on_functions",     "DEP_FUNC"      ]
-[ "hash",      "dependencies_tables_on_functions",     "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_tables_on_functions",     "DEP_FUNC"      
]
 [ "isnull",    "dependencies_tables_on_indexes",       "DEP_FUNC"      ]
-[ "=", "dependencies_tables_on_triggers",      "DEP_FUNC"      ]
-[ "hash",      "dependencies_tables_on_triggers",      "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_tables_on_triggers",      "DEP_FUNC"      
]
-[ "=", "dependencies_tables_on_views", "DEP_FUNC"      ]
-[ "hash",      "dependencies_tables_on_views", "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_tables_on_views", "DEP_FUNC"      ]
-[ "=", "dependencies_views_on_functions",      "DEP_FUNC"      ]
-[ "hash",      "dependencies_views_on_functions",      "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_views_on_functions",      "DEP_FUNC"      
]
-[ "=", "dependencies_views_on_triggers",       "DEP_FUNC"      ]
-[ "hash",      "dependencies_views_on_triggers",       "DEP_FUNC"      ]
-[ "rotate_xor_hash",   "dependencies_views_on_triggers",       "DEP_FUNC"      
]
 [ "<>",        "heapsize",     "DEP_FUNC"      ]
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to