Changeset: 862c0ec8510d for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=862c0ec8510d
Modified Files:
sql/backends/monet5/sql_gencode.c
Branch: Feb2013
Log Message:
aggr.stdev{,] and aggr.variance{,p} need "abort_on_error" argument.
This fixes bug 3257.
diffs (32 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
@@ -1804,6 +1804,7 @@ _dumpstmt(backend *sql, MalBlkPtr mb, st
char aggrF[64];
int restype = s->op4.aggrval->res.type->localtype;
int sum_or_prod = 0;
+ int abort_on_error;
if (backend_create_func(sql, s->op4.aggrval->aggr) < 0)
return -1;
@@ -1813,6 +1814,11 @@ _dumpstmt(backend *sql, MalBlkPtr mb, st
if (strcmp(aggrfunc, "sum") == 0 ||
strcmp(aggrfunc, "prod") == 0)
sum_or_prod = 1;
+ /* some "sub" aggregates have an extra
+ * argument "abort_on_error" */
+ abort_on_error = sum_or_prod ||
+ strncmp(aggrfunc, "stdev", 5) == 0 ||
+ strncmp(aggrfunc, "variance", 8) == 0;
if (s->op3) {
snprintf(aggrF, 64, "sub%s", aggrfunc);
@@ -1859,7 +1865,7 @@ _dumpstmt(backend *sql, MalBlkPtr mb, st
q = pushArgument(mb, q, e);
g = getDestVar(q);
q = pushBit(mb, q, no_nil);
- if (sum_or_prod)
+ if (abort_on_error)
q = pushBit(mb, q, TRUE);
}
s->nr = getDestVar(q);
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list