Changeset: df09457a2551 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=df09457a2551
Modified Files:
        sql/backends/monet5/sql_statement.c
        testing/Mtest.py.in
Branch: nospare
Log Message:

merged with default


diffs (truncated from 684 to 300 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
@@ -611,11 +611,7 @@ stdout of test 'MAL-signatures` in direc
 [ "algebra",   "fetch",        "command algebra.fetch(X_1:bat[:any_1], 
X_2:oid):any_1 ",       "ALGfetchoid;", ""      ]
 [ "algebra",   "find", "command algebra.find(X_1:bat[:any_1], X_2:any_1):oid 
",        "ALGfind;",     ""      ]
 [ "algebra",   "firstn",       "pattern algebra.firstn(X_1:bat[:any], 
X_2:bat[:oid], X_3:bat[:oid], X_4:lng, X_5:bit, X_6:bit, X_7:bit):bat[:oid] ",  
 "ALGfirstn;",   ""      ]
-[ "algebra",   "firstn",       "pattern algebra.firstn(X_1:bat[:any], 
X_2:bat[:oid], X_3:lng, X_4:bit, X_5:bit, X_6:bit):bat[:oid] ",  "ALGfirstn;",  
 ""      ]
-[ "algebra",   "firstn",       "pattern algebra.firstn(X_1:bat[:any], X_2:lng, 
X_3:bit, X_4:bit, X_5:bit):bat[:oid] ", "ALGfirstn;",   ""      ]
 [ "algebra",   "firstn",       "pattern algebra.firstn(X_2:bat[:any], 
X_3:bat[:oid], X_4:bat[:oid], X_5:lng, X_6:bit, X_7:bit, X_8:bit) 
(X_0:bat[:oid], X_1:bat[:oid]) ",      "ALGfirstn;",   ""      ]
-[ "algebra",   "firstn",       "pattern algebra.firstn(X_2:bat[:any], 
X_3:bat[:oid], X_4:lng, X_5:bit, X_6:bit, X_7:bit) (X_0:bat[:oid], 
X_1:bat[:oid]) ",     "ALGfirstn;",   ""      ]
-[ "algebra",   "firstn",       "pattern algebra.firstn(X_2:bat[:any], X_3:lng, 
X_4:bit, X_5:bit, X_6:bit) (X_0:bat[:oid], X_1:bat[:oid]) ",    "ALGfirstn;",   
""      ]
 [ "algebra",   "groupby",      "command algebra.groupby(X_1:bat[:oid], 
X_2:bat[:lng]):bat[:oid] ",     "ALGgroupby;",  ""      ]
 [ "algebra",   "ilike",        "command algebra.ilike(X_1:str, X_2:str):bit ", 
"PCREilike2;",  ""      ]
 [ "algebra",   "ilike",        "command algebra.ilike(X_1:str, X_2:str, 
X_3:str):bit ",        "PCREilike3;",  ""      ]
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
@@ -724,11 +724,7 @@ stdout of test 'MAL-signatures` in direc
 [ "algebra",   "fetch",        "command algebra.fetch(X_1:bat[:any_1], 
X_2:oid):any_1 ",       "ALGfetchoid;", ""      ]
 [ "algebra",   "find", "command algebra.find(X_1:bat[:any_1], X_2:any_1):oid 
",        "ALGfind;",     ""      ]
 [ "algebra",   "firstn",       "pattern algebra.firstn(X_1:bat[:any], 
X_2:bat[:oid], X_3:bat[:oid], X_4:lng, X_5:bit, X_6:bit, X_7:bit):bat[:oid] ",  
 "ALGfirstn;",   ""      ]
-[ "algebra",   "firstn",       "pattern algebra.firstn(X_1:bat[:any], 
X_2:bat[:oid], X_3:lng, X_4:bit, X_5:bit, X_6:bit):bat[:oid] ",  "ALGfirstn;",  
 ""      ]
-[ "algebra",   "firstn",       "pattern algebra.firstn(X_1:bat[:any], X_2:lng, 
X_3:bit, X_4:bit, X_5:bit):bat[:oid] ", "ALGfirstn;",   ""      ]
 [ "algebra",   "firstn",       "pattern algebra.firstn(X_2:bat[:any], 
X_3:bat[:oid], X_4:bat[:oid], X_5:lng, X_6:bit, X_7:bit, X_8:bit) 
(X_0:bat[:oid], X_1:bat[:oid]) ",      "ALGfirstn;",   ""      ]
-[ "algebra",   "firstn",       "pattern algebra.firstn(X_2:bat[:any], 
X_3:bat[:oid], X_4:lng, X_5:bit, X_6:bit, X_7:bit) (X_0:bat[:oid], 
X_1:bat[:oid]) ",     "ALGfirstn;",   ""      ]
-[ "algebra",   "firstn",       "pattern algebra.firstn(X_2:bat[:any], X_3:lng, 
X_4:bit, X_5:bit, X_6:bit) (X_0:bat[:oid], X_1:bat[:oid]) ",    "ALGfirstn;",   
""      ]
 [ "algebra",   "groupby",      "command algebra.groupby(X_1:bat[:oid], 
X_2:bat[:lng]):bat[:oid] ",     "ALGgroupby;",  ""      ]
 [ "algebra",   "ilike",        "command algebra.ilike(X_1:str, X_2:str):bit ", 
"PCREilike2;",  ""      ]
 [ "algebra",   "ilike",        "command algebra.ilike(X_1:str, X_2:str, 
X_3:str):bit ",        "PCREilike3;",  ""      ]
diff --git a/monetdb5/modules/kernel/algebra.c 
b/monetdb5/modules/kernel/algebra.c
--- a/monetdb5/modules/kernel/algebra.c
+++ b/monetdb5/modules/kernel/algebra.c
@@ -679,7 +679,7 @@ ALGfirstn(Client cntxt, MalBlkPtr mb, Ma
        assert(pci->retc == 1 || pci->retc == 2);
        assert(pci->argc - pci->retc >= 5 && pci->argc - pci->retc <= 7);
 
-       n = * getArgReference_lng(stk, pci, pci->argc - 4);
+       n = *getArgReference_lng(stk, pci, pci->argc - 4);
        if (n < 0 || (lng) n >= (lng) BUN_MAX)
                throw(MAL, "algebra.firstn", ILLEGAL_ARGUMENT);
        ret1 = getArgReference_bat(stk, pci, 0);
@@ -696,16 +696,16 @@ ALGfirstn(Client cntxt, MalBlkPtr mb, Ma
                }
                if (pci->argc - pci->retc > 6) {
                        gid = *getArgReference_bat(stk, pci, pci->retc + 2);
-                       if ((g = BATdescriptor(gid)) == NULL) {
+                       if (!is_bat_nil(gid) && (g = BATdescriptor(gid)) == 
NULL) {
                                BBPunfix(bid);
                                BBPunfix(sid);
                                throw(MAL, "algebra.firstn", SQLSTATE(HY002) 
RUNTIME_OBJECT_MISSING);
                        }
                }
        }
-       asc = * getArgReference_bit(stk, pci, pci->argc - 3);
-       nilslast = * getArgReference_bit(stk, pci, pci->argc - 2);
-       distinct = * getArgReference_bit(stk, pci, pci->argc - 1);
+       asc = *getArgReference_bit(stk, pci, pci->argc - 3);
+       nilslast = *getArgReference_bit(stk, pci, pci->argc - 2);
+       distinct = *getArgReference_bit(stk, pci, pci->argc - 1);
        rc = BATfirstn(&bn, ret2 ? &gn : NULL, b, s, g, (BUN) n, asc, nilslast, 
distinct);
        BBPunfix(b->batCacheid);
        if (s)
@@ -1422,11 +1422,7 @@ mel_func algebra_init_funcs[] = {
  command("algebra", "rangejoin", ALGrangejoin1, false, "Range join: values in 
l and r1/r2 match if r1 <[=] l <[=] r2; only produce left output", 
args(1,11,batarg("",oid),batargany("l",1),batargany("r1",1),batargany("r2",1),batarg("sl",oid),batarg("sr",oid),arg("li",bit),arg("hi",bit),arg("anti",bit),arg("symmetric",bit),arg("estimate",lng))),
  command("algebra", "difference", ALGdifference, false, "Difference of l and r 
with candidate lists", args(1,8, 
batarg("",oid),batargany("l",1),batargany("r",1),batarg("sl",oid),batarg("sr",oid),arg("nil_matches",bit),arg("nil_clears",bit),arg("estimate",lng))),
  command("algebra", "intersect", ALGintersect, false, "Intersection of l and r 
with candidate lists (i.e. half of semi-join)", args(1,8, 
batarg("",oid),batargany("l",1),batargany("r",1),batarg("sl",oid),batarg("sr",oid),arg("nil_matches",bit),arg("max_one",bit),arg("estimate",lng))),
- pattern("algebra", "firstn", ALGfirstn, false, "Calculate first N values of 
B", args(1,6, 
batarg("",oid),batargany("b",0),arg("n",lng),arg("asc",bit),arg("nilslast",bit),arg("distinct",bit))),
- pattern("algebra", "firstn", ALGfirstn, false, "Calculate first N values of B 
with candidate list S", args(1,7, 
batarg("",oid),batargany("b",0),batarg("s",oid),arg("n",lng),arg("asc",bit),arg("nilslast",bit),arg("distinct",bit))),
  pattern("algebra", "firstn", ALGfirstn, false, "Calculate first N values of B 
with candidate list S", args(1,8, 
batarg("",oid),batargany("b",0),batarg("s",oid),batarg("g",oid),arg("n",lng),arg("asc",bit),arg("nilslast",bit),arg("distinct",bit))),
- pattern("algebra", "firstn", ALGfirstn, false, "Calculate first N values of 
B", args(2,7, 
batarg("",oid),batarg("",oid),batargany("b",0),arg("n",lng),arg("asc",bit),arg("nilslast",bit),arg("distinct",bit))),
- pattern("algebra", "firstn", ALGfirstn, false, "Calculate first N values of B 
with candidate list S", args(2,8, 
batarg("",oid),batarg("",oid),batargany("b",0),batarg("s",oid),arg("n",lng),arg("asc",bit),arg("nilslast",bit),arg("distinct",bit))),
  pattern("algebra", "firstn", ALGfirstn, false, "Calculate first N values of B 
with candidate list S", args(2,9, 
batarg("",oid),batarg("",oid),batargany("b",0),batarg("s",oid),batarg("g",oid),arg("n",lng),arg("asc",bit),arg("nilslast",bit),arg("distinct",bit))),
  command("algebra", "reuse", ALGreuse, false, "Reuse a temporary BAT if you 
can. Otherwise,\nallocate enough storage to accept result of an\noperation (not 
involving the heap)", args(1,2, batargany("",1),batargany("b",1))),
  command("algebra", "slice", ALGslice_oid, false, "Return the slice based on 
head oid x till y (exclusive).", args(1,4, 
batargany("",1),batargany("b",1),arg("x",oid),arg("y",oid))),
diff --git a/monetdb5/modules/mal/Tests/pqueue.maltest 
b/monetdb5/modules/mal/Tests/pqueue.maltest
--- a/monetdb5/modules/mal/Tests/pqueue.maltest
+++ b/monetdb5/modules/mal/Tests/pqueue.maltest
@@ -28,14 +28,14 @@ io.print(b)
 14 values hashing to 6f65e6b8b547c5732d61c715af858a15
 
 statement ok
-bp:= algebra.firstn(b,0:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,0:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
 ----
 
 statement ok
-bp:= algebra.firstn(b,1:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,1:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
@@ -44,7 +44,7 @@ 0
 4
 
 statement ok
-bp:= algebra.firstn(b,2:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,2:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
@@ -55,7 +55,7 @@ 1
 5
 
 statement ok
-bp:= algebra.firstn(b,3:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,3:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
@@ -68,7 +68,7 @@ 2
 6
 
 statement ok
-bp:= algebra.firstn(b,4:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,4:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
@@ -83,7 +83,7 @@ 3
 6
 
 statement ok
-bp:= algebra.firstn(b,5:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,5:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
@@ -91,7 +91,7 @@ io.print(bp)
 10 values hashing to 9366dac70a8c800c4a3ba376d3995e4b
 
 statement ok
-bp:= algebra.firstn(b,6:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,6:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
@@ -99,7 +99,7 @@ io.print(bp)
 12 values hashing to 0c93b862b714640e965b921e1f8ab8ff
 
 statement ok
-bp:= algebra.firstn(b,7:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,7:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
@@ -107,7 +107,7 @@ io.print(bp)
 14 values hashing to 85ff96c644d3ad69de07d013f0043314
 
 statement ok
-bp:= algebra.firstn(b,8:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,8:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
@@ -115,14 +115,14 @@ io.print(bp)
 14 values hashing to 85ff96c644d3ad69de07d013f0043314
 
 statement ok
-bp:= algebra.firstn(b,0:lng,true,false,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,0:lng,true,false,false)
 
 query TT rowsort
 io.print(bp)
 ----
 
 statement ok
-bp:= algebra.firstn(b,1:lng,true,false,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,1:lng,true,false,false)
 
 query TT rowsort
 io.print(bp)
@@ -131,7 +131,7 @@ 0
 1
 
 statement ok
-bp:= algebra.firstn(b,2:lng,true,false,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,2:lng,true,false,false)
 
 query TT rowsort
 io.print(bp)
@@ -142,7 +142,7 @@ 1
 1
 
 statement ok
-bp:= algebra.firstn(b,3:lng,true,false,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,3:lng,true,false,false)
 
 query TT rowsort
 io.print(bp)
@@ -155,7 +155,7 @@ 2
 2
 
 statement ok
-bp:= algebra.firstn(b,4:lng,true,false,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,4:lng,true,false,false)
 
 query TT rowsort
 io.print(bp)
@@ -170,7 +170,7 @@ 3
 3
 
 statement ok
-bp:= algebra.firstn(b,5:lng,true,false,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,5:lng,true,false,false)
 
 query TT rowsort
 io.print(bp)
@@ -178,7 +178,7 @@ io.print(bp)
 10 values hashing to f51acd2cc63747ad3ac6c1140a98247f
 
 statement ok
-bp:= algebra.firstn(b,6:lng,true,false,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,6:lng,true,false,false)
 
 query TT rowsort
 io.print(bp)
@@ -186,7 +186,7 @@ io.print(bp)
 12 values hashing to 62c2e86589d15c4e4a7edfd67ebb2baa
 
 statement ok
-bp:= algebra.firstn(b,7:lng,true,false,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,7:lng,true,false,false)
 
 query TT rowsort
 io.print(bp)
@@ -194,7 +194,7 @@ io.print(bp)
 14 values hashing to 85ff96c644d3ad69de07d013f0043314
 
 statement ok
-bp:= algebra.firstn(b,8:lng,true,false,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,8:lng,true,false,false)
 
 query TT rowsort
 io.print(bp)
diff --git a/monetdb5/modules/mal/Tests/pqueue2.maltest 
b/monetdb5/modules/mal/Tests/pqueue2.maltest
--- a/monetdb5/modules/mal/Tests/pqueue2.maltest
+++ b/monetdb5/modules/mal/Tests/pqueue2.maltest
@@ -57,14 +57,14 @@ io.print(b)
 14 values hashing to 6f65e6b8b547c5732d61c715af858a15
 
 statement ok
-bp:= algebra.firstn(b,0:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,0:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
 ----
 
 statement ok
-bp:= algebra.firstn(b,1:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,1:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
@@ -73,7 +73,7 @@ 0
 4
 
 statement ok
-bp:= algebra.firstn(b,2:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,2:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
@@ -84,7 +84,7 @@ 1
 5
 
 statement ok
-bp:= algebra.firstn(b,3:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,3:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
@@ -97,7 +97,7 @@ 2
 6
 
 statement ok
-bp:= algebra.firstn(b,4:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,4:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
@@ -112,7 +112,7 @@ 3
 6
 
 statement ok
-bp:= algebra.firstn(b,5:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,5:lng,false,true,false)
 
 query TT rowsort
 io.print(bp)
@@ -120,7 +120,7 @@ io.print(bp)
 10 values hashing to 9366dac70a8c800c4a3ba376d3995e4b
 
 statement ok
-bp:= algebra.firstn(b,6:lng,false,true,false)
+bp:= algebra.firstn(b,nil:bat,nil:bat,6:lng,false,true,false)
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to