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

Reply via email to