Changeset: ffb77f9c0379 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ffb77f9c0379
Modified Files:
        sql/backends/monet5/sql_statement.c
        sql/server/rel_optimizer.c
Branch: Oct2020
Log Message:

merged and small cleanup


diffs (115 lines):

diff --git a/monetdb5/optimizer/opt_generator.c 
b/monetdb5/optimizer/opt_generator.c
--- a/monetdb5/optimizer/opt_generator.c
+++ b/monetdb5/optimizer/opt_generator.c
@@ -71,14 +71,11 @@ OPTgeneratorImplementation(Client cntxt,
        char buf[256];
        lng usec= GDKusec();
        str msg = MAL_SUCCEED;
+       int needed = 0;
 
-       (void) cntxt;
        (void) stk;
        (void) pci;
 
-       series = (InstrPtr*) GDKzalloc(sizeof(InstrPtr) * mb->vtop);
-       if(series == NULL)
-               throw(MAL,"optimizer.generator", SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
        old = mb->stmt;
        limit = mb->stop;
        slimit = mb->ssize;
@@ -87,12 +84,16 @@ OPTgeneratorImplementation(Client cntxt,
        for( i=0; i < limit; i++){
                p = old[i];
                if ( getModuleId(p) == generatorRef && getFunctionId(p) == 
seriesRef)
-                       break;
+                       needed = 1;
+               if (p->token == RETURNsymbol || p->barrier == RETURNsymbol)
+                       return 0;
        }
-       if (i == limit) {
-               GDKfree(series);
+       if (!needed)
                return 0;
-       }
+
+       series = (InstrPtr*) GDKzalloc(sizeof(InstrPtr) * mb->vtop);
+       if(series == NULL)
+               throw(MAL,"optimizer.generator", SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
 
        if (newMalBlkStmt(mb, mb->ssize) < 0) {
                GDKfree(series);
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
@@ -480,32 +480,24 @@ stmt_varnr(backend *be, int nr, sql_subt
 stmt *
 stmt_table(backend *be, stmt *cols, int temp)
 {
+       stmt *s = stmt_create(be->mvc->sa, st_table);
        MalBlkPtr mb = be->mb;
-       InstrPtr q = newAssignment(mb);
-
-       if (cols->nr < 0)
+
+       if (s == NULL || cols->nr < 0)
                return NULL;
 
        if (cols->type != st_list) {
+           InstrPtr q = newAssignment(mb);
                q = newStmt(mb, sqlRef, printRef);
                q = pushStr(mb, q, "not a valid output list\n");
                if (q == NULL)
                        return NULL;
        }
-       if (q) {
-               stmt *s = stmt_create(be->mvc->sa, st_table);
-               if (s == NULL) {
-                       freeInstruction(q);
-                       return NULL;
-               }
-
-               s->op1 = cols;
-               s->flag = temp;
-               s->nr = cols->nr;
-               s->nrcols = cols->nrcols;
-               return s;
-       }
-       return NULL;
+       s->op1 = cols;
+       s->flag = temp;
+       s->nr = cols->nr;
+       s->nrcols = cols->nrcols;
+       return s;
 }
 
 stmt *
@@ -3072,7 +3064,7 @@ stmt_convert(backend *be, stmt *v, stmt 
            !EC_INTERVAL(f->type->eclass) &&
            f->type->eclass != EC_DEC &&
            (t->digits == 0 || f->digits == t->digits) &&
-           type_has_tz(t) == type_has_tz(f)) || 
+           type_has_tz(t) == type_has_tz(f)) ||
                (EC_VARCHAR(f->type->eclass) && EC_VARCHAR(t->type->eclass) && 
f->digits > 0 && t->digits >= f->digits)) {
                /* set output type. Despite the MAL code already being 
generated,
                   the output type may still be checked */
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
@@ -5527,7 +5527,7 @@ rel_push_project_down(visitor *v, sql_re
 
                if (rel_is_ref(l))
                        return rel;
-               if (is_base(l->op)) {
+               if (is_basetable(l->op)) {
                        if (list_check_prop_all(rel->exps, 
(prop_check_func)&exp_is_useless_rename)) {
                                /* TODO reduce list (those in the project + 
internal) */
                                rel->l = NULL;
@@ -9559,7 +9559,7 @@ optimize_rel(mvc *sql, sql_rel *rel, int
                        rel = rel_visitor_bottomup(&v, rel, 
&rewrite_reset_used); /* reset used flag, used by rel_merge_select_rse */
                }
 
-       if (gp.cnt[op_project])
+       if (gp.cnt[op_project] && /* DISABLES CODE */ (0))
                rel = rel_exp_visitor_bottomup(&v, rel, &rel_merge_project_rse, 
false);
 
        if (gp.cnt[op_join])
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to