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