Changeset: 790b40a57702 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=790b40a57702
Modified Files:
sql/backends/monet5/sql_gencode.c
sql/server/rel_optimizer.c
Branch: default
Log Message:
A couple of fixes in the sql code for the sample operator.
Relational optimizer should check under the sample operator for empty
relations, and the code generation should create a statement with 0 references
diffs (24 lines):
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
@@ -838,7 +838,7 @@ _dumpstmt(backend *sql, MalBlkPtr mb, st
case st_sample:{
int l = _dumpstmt(sql, mb, s->op1);
int r = _dumpstmt(sql, mb, s->op2);
- q = newStmt1(mb, "sample", "uniform");
+ q = newStmt(mb, "sample", "uniform");
q = pushArgument(mb, q, l);
q = pushArgument(mb, q, r);
s->nr = getDestVar(q);
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
@@ -2877,7 +2877,7 @@ rel_uses_part_nr( sql_rel *rel, sql_exp
return 1;
}
/* for projects we may need to do a rename! */
- if (is_project(rel->op) || is_topn(rel->op))
+ if (is_project(rel->op) || is_topn(rel->op) || is_sample(rel->op))
return rel_uses_part_nr( rel->l, e, pnr);
if (is_union(rel->op) || is_join(rel->op) || is_semi(rel->op)) {
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list