Changeset: f415598131c3 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f415598131c3
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_statement.h
Branch: Oct2014
Log Message:

removed use of tunique


diffs (172 lines):

diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -501,15 +501,13 @@ exp_bin(mvc *sql, sql_exp *e, stmt *left
                                if (!as) 
                                        return NULL;    
                                if (need_distinct(e)){ 
-                                       if (grp) {
-                                               stmt *g = stmt_group(sql->sa, 
as, grp, ext, cnt);
-                                               stmt *next = 
stmt_result(sql->sa, g, 1); 
+                                       stmt *g = stmt_group(sql->sa, as, grp, 
ext, cnt);
+                                       stmt *next = stmt_result(sql->sa, g, 
1); 
                                                
-                                               as = stmt_project(sql->sa, 
next, as);
+                                       as = stmt_project(sql->sa, next, as);
+                                       if (grp)
                                                grp = stmt_project(sql->sa, 
next, grp);
-                                               stmt_group_done(g);
-                                       } else
-                                               as = stmt_unique(sql->sa, as);
+                                       stmt_group_done(g);
                                }
                                append(l, as);
                        }
diff --git a/sql/backends/monet5/sql_gencode.c 
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -1742,43 +1742,6 @@ static int
                        }
                }
                        break;
-               case st_unique:{
-                       int l;
-
-                       if ((l = _dumpstmt(sql, mb, s->op1)) < 0)
-                               return -1;
-
-                       if (s->op2) {
-                               int grp, ext;
-
-                               if ((grp = _dumpstmt(sql, mb, s->op2)) < 0)
-                                       return -1;
-                               if ((ext = _dumpstmt(sql, mb, s->op3)) < 0)
-                                       return -1;
-
-                               q = newStmt2(mb, groupRef, subgroupRef);
-                               /* push second result */
-                               q = pushReturn(mb, q, newTmpVariable(mb, 
TYPE_any));
-                               q = pushReturn(mb, q, newTmpVariable(mb, 
TYPE_any));
-                               q = pushArgument(mb, q, l);
-                               q = pushArgument(mb, q, grp);
-                               if (q == NULL)
-                                       return -1;
-                               grp = getDestVar(q);
-                               ext = getArg(q, 1);
-
-                               q = newStmt2(mb, algebraRef, leftfetchjoinRef);
-                               q = pushArgument(mb, q, ext);
-                               q = pushArgument(mb, q, l);
-                       } else {
-                               q = newStmt2(mb, algebraRef, tuniqueRef);
-                               q = pushArgument(mb, q, l);
-                       }
-                       if (q == NULL)
-                               return -1;
-                       s->nr = getDestVar(q);
-                       break;
-               }
                case st_convert:{
                        list *types = s->op4.lval;
                        sql_subtype *f = types->h->data;
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
@@ -122,7 +122,6 @@ st_type2string(st_type type)
 
                ST(group);
 
-               ST(unique);
                ST(convert);
                ST(Nop);
                ST(func);
@@ -325,7 +324,6 @@ stmt_deps(list *dep_list, stmt *s, int d
                        case st_join:
                        case st_join2:
                        case st_joinN:
-                       case st_unique:
                        case st_append:
                        case st_rs_column:
 
@@ -826,21 +824,6 @@ stmt_reorder(sql_allocator *sa, stmt *s,
 }
 
 stmt *
-stmt_unique(sql_allocator *sa, stmt *s)
-{
-       stmt *ns = stmt_create(sa, st_unique);
-
-       ns->op1 = s;
-       ns->op2 = NULL;
-       ns->op3 = NULL;
-       ns->op4.stval = NULL;
-       ns->nrcols = s->nrcols;
-       ns->key = 1;
-       ns->aggr = s->aggr;
-       return ns;
-}
-
-stmt *
 stmt_atom(sql_allocator *sa, atom *op1)
 {
        stmt *s = stmt_create(sa, st_atom);
@@ -1299,7 +1282,6 @@ tail_type(stmt *st)
        case st_tinter:
        case st_diff:
        case st_union:
-       case st_unique:
        case st_append:
        case st_alias:
        case st_gen_group:
@@ -1465,7 +1447,6 @@ char *
        case st_tinter:
        case st_diff:
        case st_union:
-       case st_unique:
        case st_convert:
                return column_name(sa, st->op1);
        case st_Nop:
@@ -1543,7 +1524,6 @@ char *
        case st_diff:
        case st_union:
        case st_aggr:
-       case st_unique:
                return table_name(sa, st->op1);
 
        case st_table_clear:
@@ -1603,7 +1583,6 @@ schema_name(sql_allocator *sa, stmt *st)
        case st_tinter:
        case st_diff:
        case st_union:
-       case st_unique:
        case st_convert:
        case st_Nop:
        case st_aggr:
@@ -1757,7 +1736,7 @@ stack_push_children(sql_stack *stk, stmt
                stack_push_list(stk, s->op4.lval);
                break;
        default:
-               if ((s->type == st_uselect2 || s->type == st_unique || s->type 
== st_group) && s->op4.stval)
+               if ((s->type == st_uselect2 || s->type == st_group) && 
s->op4.stval)
                        stack_push_stmt(stk, s->op4.stval, 1);
                if (s->op2) {
                        if (s->op3)
diff --git a/sql/backends/monet5/sql_statement.h 
b/sql/backends/monet5/sql_statement.h
--- a/sql/backends/monet5/sql_statement.h
+++ b/sql/backends/monet5/sql_statement.h
@@ -95,7 +95,6 @@ typedef enum stmt_type {
        st_delete,
 
        st_group,
-       st_unique,
        st_convert,
        st_Nop,
        st_func,
@@ -245,7 +244,6 @@ extern stmt *stmt_binop(sql_allocator *s
 extern stmt *stmt_Nop(sql_allocator *sa, stmt *ops, sql_subfunc *op);
 extern stmt *stmt_func(sql_allocator *sa, stmt *ops, char *name, sql_rel *imp);
 extern stmt *stmt_aggr(sql_allocator *sa, stmt *op1, stmt *grp, stmt *ext, 
sql_subaggr *op, int reduce, int no_nil);
-extern stmt *stmt_unique(sql_allocator *sa, stmt *s);
 
 extern stmt *stmt_alias(sql_allocator *sa, stmt *op1, char *tname, char *name);
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to