Changeset: 8856a4f0e843 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8856a4f0e843
Modified Files:
        sql/server/rel_optimizer.c
Branch: Jul2015
Log Message:

reduced use of identity function


diffs (41 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
@@ -7077,7 +7077,7 @@ rel_apply_rename(mvc *sql, sql_rel *rel)
 }
 
 static sql_rel *
-rel_add_identity(mvc *sql, sql_rel *rel, sql_exp **exp)
+_rel_add_identity(mvc *sql, sql_rel *rel, sql_exp **exp)
 {
        list *exps = rel_projections(sql, rel, NULL, 1, 1);
        sql_exp *e;
@@ -7094,6 +7094,28 @@ rel_add_identity(mvc *sql, sql_rel *rel,
        return rel;
 }
 
+static sql_exp *
+exps_find_identity(list *exps) 
+{
+       node *n;
+
+       for (n=exps->h; n; n = n->next) {
+               sql_exp *e = n->data;
+
+               if (is_identity(e, NULL))
+                       return e;
+       }
+       return NULL;
+}
+
+static sql_rel *
+rel_add_identity(mvc *sql, sql_rel *rel, sql_exp **exp)
+{
+       if (rel && is_project(rel->op) && (*exp = 
exps_find_identity(rel->exps)) != NULL) 
+               return rel;
+       return _rel_add_identity(sql, rel, exp);
+}
+
 static int
 exps_from_rel( list *exps, sql_rel *rel )
 {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to