Changeset: 93b7e5ba214d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/93b7e5ba214d
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
monetdb5/modules/kernel/batmmath.c
sql/backends/monet5/rel_bin.c
Branch: pushcands
Log Message:
Make rand function work again
diffs (45 lines):
diff --git a/clients/Tests/MAL-signatures.stable.out
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -4921,7 +4921,6 @@ stdout of test 'MAL-signatures` in direc
[ "batmmath", "pow", "pattern batmmath.pow(X_0:flt, X_1:bat[:flt],
X_2:bat[:oid]):bat[:flt] ", "CMDscience_bat_pow;", "" ]
[ "batmmath", "radians", "pattern batmmath.radians(X_0:bat[:dbl],
X_1:bat[:oid]):bat[:dbl] ", "CMDscience_bat_radians;", "" ]
[ "batmmath", "radians", "pattern batmmath.radians(X_0:bat[:flt],
X_1:bat[:oid]):bat[:flt] ", "CMDscience_bat_radians;", "" ]
-[ "batmmath", "rand", "unsafe pattern batmmath.rand(X_0:bat[:any]):bat[:int]
", "CMDscience_bat_randintarg;", "" ]
[ "batmmath", "rand", "unsafe pattern batmmath.rand(X_0:bat[:any],
X_1:bat[:oid]):bat[:int] ", "CMDscience_bat_randintarg;", "" ]
[ "batmmath", "sin", "pattern batmmath.sin(X_0:bat[:dbl],
X_1:bat[:oid]):bat[:dbl] ", "CMDscience_bat_sin;", "" ]
[ "batmmath", "sin", "pattern batmmath.sin(X_0:bat[:flt],
X_1:bat[:oid]):bat[:flt] ", "CMDscience_bat_sin;", "" ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -7053,7 +7053,6 @@ stdout of test 'MAL-signatures` in direc
[ "batmmath", "pow", "pattern batmmath.pow(X_0:flt, X_1:bat[:flt],
X_2:bat[:oid]):bat[:flt] ", "CMDscience_bat_pow;", "" ]
[ "batmmath", "radians", "pattern batmmath.radians(X_0:bat[:dbl],
X_1:bat[:oid]):bat[:dbl] ", "CMDscience_bat_radians;", "" ]
[ "batmmath", "radians", "pattern batmmath.radians(X_0:bat[:flt],
X_1:bat[:oid]):bat[:flt] ", "CMDscience_bat_radians;", "" ]
-[ "batmmath", "rand", "unsafe pattern batmmath.rand(X_0:bat[:any]):bat[:int]
", "CMDscience_bat_randintarg;", "" ]
[ "batmmath", "rand", "unsafe pattern batmmath.rand(X_0:bat[:any],
X_1:bat[:oid]):bat[:int] ", "CMDscience_bat_randintarg;", "" ]
[ "batmmath", "sin", "pattern batmmath.sin(X_0:bat[:dbl],
X_1:bat[:oid]):bat[:dbl] ", "CMDscience_bat_sin;", "" ]
[ "batmmath", "sin", "pattern batmmath.sin(X_0:bat[:flt],
X_1:bat[:oid]):bat[:flt] ", "CMDscience_bat_sin;", "" ]
diff --git a/monetdb5/modules/kernel/batmmath.c
b/monetdb5/modules/kernel/batmmath.c
--- a/monetdb5/modules/kernel/batmmath.c
+++ b/monetdb5/modules/kernel/batmmath.c
@@ -509,7 +509,6 @@ mel_func batmmath_init_funcs[] = {
pattern("batmmath", "pow", CMDscience_bat_pow, false, "", args(1,5,
batarg("",flt),batarg("x",flt),batarg("y",flt),batarg("s1",oid),batarg("s2",oid))),
pattern("batmmath", "pow", CMDscience_bat_pow, false, "", args(1,4,
batarg("",dbl),arg("x",dbl),batarg("y",dbl),batarg("s",oid))),
pattern("batmmath", "pow", CMDscience_bat_pow, false, "", args(1,4,
batarg("",flt),arg("x",flt),batarg("y",flt),batarg("s",oid))),
- pattern("batmmath", "rand", CMDscience_bat_randintarg, true, "", args(1,2,
batarg("",int),batargany("v",0))),
pattern("batmmath", "rand", CMDscience_bat_randintarg, true, "", args(1,3,
batarg("",int),batargany("v",0),batarg("s",oid))),
{ .imp=NULL }
};
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
@@ -1311,7 +1311,7 @@ exp_bin(backend *be, sql_exp *e, rel_bin
if (list_empty(exps) && (strcmp(f->func->base.name,
"rand") == 0 || (f1 = sql_find_func(sql, f->func->s ? f->func->s->base.name :
NULL, f->func->base.name, 1, f->func->type, NULL)))) {
if (f1)
f = f1;
- list_append(l, strcmp(f->func->base.name,
"rand") == 0 ? left->cand ? left->cand : bin_find_smallest_column(be, left) :
stmt_const(be, bin_find_smallest_column(be, left), left->cand,
+ list_append(l, strcmp(f->func->base.name,
"rand") == 0 ? bin_find_smallest_column(be, left) : stmt_const(be,
bin_find_smallest_column(be, left), left->cand,
stmt_atom(be,
atom_general(sql->sa, f1 ? &(((sql_arg*)f1->func->ops->h->data)->type) :
sql_bind_localtype("int"), NULL))));
} else if (exps_card(exps) < CARD_MULTI) {
rows = left->cand ? left->cand :
bin_find_smallest_column(be, left);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list