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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list