Changeset: bc74e819e342 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bc74e819e342 Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out monetdb5/modules/kernel/algebra.c monetdb5/optimizer/opt_candidates.c monetdb5/optimizer/opt_prelude.c monetdb5/optimizer/opt_prelude.h sql/backends/monet5/generator/generator.c sql/backends/monet5/sql_statement.c Branch: default Log Message:
Removed thetaselect without candidate list. diffs (truncated from 317 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 @@ -675,7 +675,6 @@ stdout of test 'MAL-signatures` in direc [ "algebra", "subslice", "command algebra.subslice(X_1:bat[:any_1], X_2:lng, X_3:lng):bat[:oid] ", "ALGsubslice_lng;", "" ] [ "algebra", "thetajoin", "command algebra.thetajoin(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid], X_4:bat[:oid], X_5:int, X_6:bit, X_7:lng):bat[:oid] ", "ALGthetajoin1;", "" ] [ "algebra", "thetajoin", "command algebra.thetajoin(X_2:bat[:any_1], X_3:bat[:any_1], X_4:bat[:oid], X_5:bat[:oid], X_6:int, X_7:bit, X_8:lng) (X_0:bat[:oid], X_1:bat[:oid]) ", "ALGthetajoin;", "" ] -[ "algebra", "thetaselect", "command algebra.thetaselect(X_1:bat[:any_1], X_2:any_1, X_3:str):bat[:oid] ", "ALGthetaselect1;", "" ] [ "algebra", "thetaselect", "command algebra.thetaselect(X_1:bat[:any_1], X_2:bat[:oid], X_3:any_1, X_4:str):bat[:oid] ", "ALGthetaselect2;", "" ] [ "algebra", "unique", "command algebra.unique(X_1:bat[:any_1]):bat[:oid] ", "ALGunique1;", "" ] [ "algebra", "unique", "command algebra.unique(X_1:bat[:any_1], X_2:bat[:oid]):bat[:oid] ", "ALGunique2;", "" ] @@ -8544,19 +8543,12 @@ stdout of test 'MAL-signatures` in direc [ "generator", "series", "pattern generator.series(X_1:sht, X_2:sht, X_3:sht):bat[:sht] ", "VLTgenerator_table;", "" ] [ "generator", "series", "pattern generator.series(X_1:timestamp, X_2:timestamp, X_3:lng):bat[:timestamp] ", "VLTgenerator_table;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:bte], X_2:bat[:oid], X_3:bte, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:bte], X_2:bte, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:dbl], X_2:bat[:oid], X_3:dbl, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:dbl], X_2:dbl, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:flt], X_2:bat[:oid], X_3:flt, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:flt], X_2:flt, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:int], X_2:bat[:oid], X_3:int, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:int], X_2:int, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:lng], X_2:bat[:oid], X_3:lng, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:lng], X_2:lng, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:sht], X_2:bat[:oid], X_3:sht, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:sht], X_2:sht, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:timestamp], X_2:bat[:oid], X_3:timestamp, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:timestamp], X_2:timestamp, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "geom", "Area", "command geom.Area(X_1:wkb):dbl ", "wkbArea;", "" ] [ "geom", "AsBinary", "command geom.AsBinary(X_1:wkb):str ", "wkbAsBinary;", "" ] [ "geom", "AsEWKT", "function geom.AsEWKT(w:wkb):str;", "", "" ] 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 @@ -788,7 +788,6 @@ stdout of test 'MAL-signatures` in direc [ "algebra", "subslice", "command algebra.subslice(X_1:bat[:any_1], X_2:lng, X_3:lng):bat[:oid] ", "ALGsubslice_lng;", "" ] [ "algebra", "thetajoin", "command algebra.thetajoin(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid], X_4:bat[:oid], X_5:int, X_6:bit, X_7:lng):bat[:oid] ", "ALGthetajoin1;", "" ] [ "algebra", "thetajoin", "command algebra.thetajoin(X_2:bat[:any_1], X_3:bat[:any_1], X_4:bat[:oid], X_5:bat[:oid], X_6:int, X_7:bit, X_8:lng) (X_0:bat[:oid], X_1:bat[:oid]) ", "ALGthetajoin;", "" ] -[ "algebra", "thetaselect", "command algebra.thetaselect(X_1:bat[:any_1], X_2:any_1, X_3:str):bat[:oid] ", "ALGthetaselect1;", "" ] [ "algebra", "thetaselect", "command algebra.thetaselect(X_1:bat[:any_1], X_2:bat[:oid], X_3:any_1, X_4:str):bat[:oid] ", "ALGthetaselect2;", "" ] [ "algebra", "unique", "command algebra.unique(X_1:bat[:any_1]):bat[:oid] ", "ALGunique1;", "" ] [ "algebra", "unique", "command algebra.unique(X_1:bat[:any_1], X_2:bat[:oid]):bat[:oid] ", "ALGunique2;", "" ] @@ -11838,21 +11837,13 @@ stdout of test 'MAL-signatures` in direc [ "generator", "series", "pattern generator.series(X_1:sht, X_2:sht, X_3:sht):bat[:sht] ", "VLTgenerator_table;", "" ] [ "generator", "series", "pattern generator.series(X_1:timestamp, X_2:timestamp, X_3:lng):bat[:timestamp] ", "VLTgenerator_table;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:bte], X_2:bat[:oid], X_3:bte, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:bte], X_2:bte, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:dbl], X_2:bat[:oid], X_3:dbl, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:dbl], X_2:dbl, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:flt], X_2:bat[:oid], X_3:flt, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:flt], X_2:flt, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:hge], X_2:bat[:oid], X_3:hge, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:hge], X_2:hge, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:int], X_2:bat[:oid], X_3:int, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:int], X_2:int, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:lng], X_2:bat[:oid], X_3:lng, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:lng], X_2:lng, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:sht], X_2:bat[:oid], X_3:sht, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:sht], X_2:sht, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:timestamp], X_2:bat[:oid], X_3:timestamp, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:timestamp], X_2:timestamp, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "geom", "Area", "command geom.Area(X_1:wkb):dbl ", "wkbArea;", "" ] [ "geom", "AsBinary", "command geom.AsBinary(X_1:wkb):str ", "wkbAsBinary;", "" ] [ "geom", "AsEWKT", "function geom.AsEWKT(w:wkb):str;", "", "" ] diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -1288,7 +1288,6 @@ str ifthenelseRef; str ilikeRef; str ilikejoinRef; str ilikeselectRef; -str ilikethetaselectRef; str ilikeuselectRef; str importColumnRef; void initHeartbeat(void); @@ -1343,7 +1342,6 @@ str leftjoinRef; str likeRef; str likejoinRef; str likeselectRef; -str likethetaselectRef; str likeuselectRef; str listRef; str loadLibrary(const char *modulename, int flag); 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 @@ -359,12 +359,6 @@ ALGthetaselect2(bat *result, const bat * } static str -ALGthetaselect1(bat *result, const bat *bid, const void *val, const char **op) -{ - return ALGthetaselect2(result, bid, NULL, val, op); -} - -static str ALGselectNotNil(bat *result, const bat *bid) { BAT *b; @@ -1405,7 +1399,6 @@ mel_func algebra_init_funcs[] = { command("algebra", "select", ALGselect2, false, "Select all head values of the first input BAT for which the tail value\nis in range and for which the head value occurs in the tail of the\nsecond input BAT.\nThe first input is a dense-headed BAT, the second input is a\ndense-headed BAT with sorted tail, output is a dense-headed BAT\nwith in the tail the head value of the input BAT for which the\ntail value is between the values low and high (inclusive if li\nrespectively hi is set). The output BAT is sorted on the tail\nvalue. If low or high is nil, the boundary is not considered\n(effectively - and + infinity). If anti is set, the result is the\ncomplement. Nil values in the tail are never matched, unless\nlow=nil, high=nil, li=1, hi=1, anti=0. All non-nil values are\nreturned if low=nil, high=nil, and li, hi are not both 1, or anti=1.\nNote that the output is suitable as second input for this\nfunction.", args(1,8, batarg("",oid),batargany("b",1),batarg("s",oid),argany("low" ,1),argany("high",1),arg("li",bit),arg("hi",bit),arg("anti",bit))), command("algebra", "select", ALGselect1nil, false, "With unknown set, each nil != nil", args(1,8, batarg("",oid),batargany("b",1),argany("low",1),argany("high",1),arg("li",bit),arg("hi",bit),arg("anti",bit),arg("unknown",bit))), command("algebra", "select", ALGselect2nil, false, "With unknown set, each nil != nil", args(1,9, batarg("",oid),batargany("b",1),batarg("s",oid),argany("low",1),argany("high",1),arg("li",bit),arg("hi",bit),arg("anti",bit),arg("unknown",bit))), - command("algebra", "thetaselect", ALGthetaselect1, false, "Select all head values for which the tail value obeys the relation\nvalue OP VAL.\nInput is a dense-headed BAT, output is a dense-headed BAT with in\nthe tail the head value of the input BAT for which the\nrelationship holds. The output BAT is sorted on the tail value.", args(1,4, batarg("",oid),batargany("b",1),argany("val",1),arg("op",str))), command("algebra", "thetaselect", ALGthetaselect2, false, "Select all head values of the first input BAT for which the tail value\nobeys the relation value OP VAL and for which the head value occurs in\nthe tail of the second input BAT.\nInput is a dense-headed BAT, output is a dense-headed BAT with in\nthe tail the head value of the input BAT for which the\nrelationship holds. The output BAT is sorted on the tail value.", args(1,5, batarg("",oid),batargany("b",1),batarg("s",oid),argany("val",1),arg("op",str))), command("algebra", "selectNotNil", ALGselectNotNil, false, "Select all not-nil values", args(1,2, batargany("",2),batargany("b",2))), command("algebra", "sort", ALGsort11, false, "Returns a copy of the BAT sorted on tail values.\nThe order is descending if the reverse bit is set.\nThis is a stable sort if the stable bit is set.", args(1,5, batargany("",1),batargany("b",1),arg("reverse",bit),arg("nilslast",bit),arg("stable",bit))), diff --git a/monetdb5/optimizer/opt_candidates.c b/monetdb5/optimizer/opt_candidates.c --- a/monetdb5/optimizer/opt_candidates.c +++ b/monetdb5/optimizer/opt_candidates.c @@ -43,7 +43,7 @@ OPTcandidatesImplementation(Client cntxt else if( getModuleId(p) == algebraRef ){ if(getFunctionId(p) == selectRef || getFunctionId(p) == thetaselectRef) setVarCList(mb,getArg(p,0)); - else if(getFunctionId(p) == likeselectRef || getFunctionId(p) == likethetaselectRef) + else if(getFunctionId(p) == likeselectRef) setVarCList(mb,getArg(p,0)); else if(getFunctionId(p) == intersectRef || getFunctionId(p) == differenceRef ) setVarCList(mb,getArg(p,0)); diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c --- a/monetdb5/optimizer/opt_prelude.c +++ b/monetdb5/optimizer/opt_prelude.c @@ -155,7 +155,6 @@ str ifthenelseRef; str ilikejoinRef; str ilikeRef; str ilikeselectRef; -str ilikethetaselectRef; str importColumnRef; str intersectcandRef; str intersectRef; @@ -173,7 +172,6 @@ str leftjoinRef; str likejoinRef; str likeRef; str likeselectRef; -str likethetaselectRef; str listRef; str lockRef; str lookupRef; @@ -468,7 +466,6 @@ void optimizerInit(void) ilikejoinRef = putName("ilikejoin"); ilikeRef = putName("ilike"); ilikeselectRef = putName("ilikeselect"); - ilikethetaselectRef = putName("ilikethetaselect"); importColumnRef = putName("importColumn"); intersectcandRef= putName("intersectcand"); intersectRef = putName("intersect"); @@ -486,7 +483,6 @@ void optimizerInit(void) likejoinRef = putName("likejoin"); likeRef = putName("like"); likeselectRef = putName("likeselect"); - likethetaselectRef = putName("likethetaselect"); listRef = putName("list"); lockRef = putName("lock"); lookupRef = putName("lookup"); diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h --- a/monetdb5/optimizer/opt_prelude.h +++ b/monetdb5/optimizer/opt_prelude.h @@ -152,7 +152,6 @@ mal_export str ifthenelseRef; mal_export str ilikejoinRef; mal_export str ilikeRef; mal_export str ilikeselectRef; -mal_export str ilikethetaselectRef; mal_export str ilikeuselectRef; mal_export str importColumnRef; mal_export str intersectcandRef; @@ -171,7 +170,6 @@ mal_export str leftjoinRef; mal_export str likejoinRef; mal_export str likeRef; mal_export str likeselectRef; -mal_export str likethetaselectRef; mal_export str likeuselectRef; mal_export str listRef; mal_export str lockRef; diff --git a/sql/backends/monet5/generator/generator.c b/sql/backends/monet5/generator/generator.c --- a/sql/backends/monet5/generator/generator.c +++ b/sql/backends/monet5/generator/generator.c @@ -506,20 +506,20 @@ VLTgenerator_subselect(Client cntxt, Mal low= hgh = TPE##_nil; \ v = (oid*) Tloc(bn,0); \ if ( strcmp(oper,"<") == 0){ \ - hgh= *getArgReference_##TPE(stk,pci,idx); \ + hgh= *getArgReference_##TPE(stk,pci,3); \ hgh = PREVVALUE##TPE(hgh); \ } else if ( strcmp(oper,"<=") == 0){ \ - hgh= *getArgReference_##TPE(stk,pci,idx); \ + hgh= *getArgReference_##TPE(stk,pci,3); \ } else if ( strcmp(oper,">") == 0){ \ - low= *getArgReference_##TPE(stk,pci,idx); \ + low= *getArgReference_##TPE(stk,pci,3); \ low = NEXTVALUE##TPE(low); \ } else if ( strcmp(oper,">=") == 0){ \ - low= *getArgReference_##TPE(stk,pci,idx); \ + low= *getArgReference_##TPE(stk,pci,3); \ } else if ( strcmp(oper,"!=") == 0 || strcmp(oper, "<>") == 0){ \ - hgh= low= *getArgReference_##TPE(stk,pci,idx); \ + hgh= low= *getArgReference_##TPE(stk,pci,3); \ anti = 1; \ } else if ( strcmp(oper,"==") == 0 || strcmp(oper, "=") == 0){ \ - hgh= low= *getArgReference_##TPE(stk,pci,idx); \ + hgh= low= *getArgReference_##TPE(stk,pci,3); \ } else \ throw(MAL,"generator.thetaselect", SQLSTATE(42000) "Unknown operator"); \ for(j=0;j<cap;j++, f+=s, o++) \ @@ -534,7 +534,7 @@ VLTgenerator_subselect(Client cntxt, Mal str VLTgenerator_thetasubselect(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) { - int idx, c= 0, anti =0,tpe; + int c= 0, anti =0,tpe; bat cndid =0; BAT *cand = 0, *bn = NULL; struct canditer ci = (struct canditer) {.tpe = cand_dense}; @@ -548,21 +548,19 @@ str VLTgenerator_thetasubselect(Client c if( p == NULL) throw(MAL,"generator.thetaselect",SQLSTATE(42000) "Could not locate definition for object"); - if( pci->argc == 5){ // candidate list included - cndid = *getArgReference_bat(stk,pci, 2); - if( !is_bat_nil(cndid)){ - cand = BATdescriptor(cndid); - if( cand == NULL) - throw(MAL,"generator.select", SQLSTATE(HY002) RUNTIME_OBJECT_MISSING); - canditer_init(&ci, NULL, cand); - } - idx = 3; - } else idx = 2; - oper= *getArgReference_str(stk,pci,idx+1); + assert(pci->argc == 5); // candidate list included + cndid = *getArgReference_bat(stk,pci, 2); + if( !is_bat_nil(cndid)){ + cand = BATdescriptor(cndid); + if( cand == NULL) + throw(MAL,"generator.select", SQLSTATE(HY002) RUNTIME_OBJECT_MISSING); + canditer_init(&ci, NULL, cand); + } + oper= *getArgReference_str(stk,pci,4); // check the step direction - switch( tpe =getArgType(mb,pci,idx)){ + switch( tpe =getArgType(mb,pci,3)){ case TYPE_bte: VLTthetasubselect(bte,abs);break; case TYPE_sht: VLTthetasubselect(sht,abs);break; case TYPE_int: VLTthetasubselect(int,abs);break; @@ -598,7 +596,7 @@ str VLTgenerator_thetasubselect(Client c hgh = low = timestamp_nil; if ( strcmp(oper,"<") == 0){ - hgh= *getArgReference_TYPE(stk,pci,idx, timestamp); + hgh= *getArgReference_TYPE(stk,pci,3, timestamp); hgh = timestamp_add_usec(hgh, -1); if (is_timestamp_nil(hgh)) { if (cand) @@ -607,10 +605,10 @@ str VLTgenerator_thetasubselect(Client c } } else if ( strcmp(oper,"<=") == 0){ - hgh= *getArgReference_TYPE(stk,pci,idx, timestamp) ; + hgh= *getArgReference_TYPE(stk,pci,3, timestamp) ; } else if ( strcmp(oper,">") == 0){ - low= *getArgReference_TYPE(stk,pci,idx, timestamp); + low= *getArgReference_TYPE(stk,pci,3, timestamp); low = timestamp_add_usec(low, 1); if (is_timestamp_nil(low)) { if (cand) @@ -619,14 +617,14 @@ str VLTgenerator_thetasubselect(Client c } } else if ( strcmp(oper,">=") == 0){ - low= *getArgReference_TYPE(stk,pci,idx, timestamp); + low= *getArgReference_TYPE(stk,pci,3, timestamp); } else if ( strcmp(oper,"!=") == 0 || strcmp(oper, "<>") == 0){ - hgh= low= *getArgReference_TYPE(stk,pci,idx, timestamp); + hgh= low= *getArgReference_TYPE(stk,pci,3, timestamp); anti = 1; } else if ( strcmp(oper,"==") == 0 || strcmp(oper, "=") == 0){ - hgh= low= *getArgReference_TYPE(stk,pci,idx, timestamp); + hgh= low= *getArgReference_TYPE(stk,pci,3, timestamp); } else { if (cand) BBPunfix(cand->batCacheid); @@ -1134,13 +1132,6 @@ static mel_func generator_init_funcs[] = pattern("generator", "parameters", VLTgenerator_noop, false, "", args(1,3, batarg("",lng),arg("first",lng),arg("limit",lng))), pattern("generator", "parameters", VLTgenerator_noop, false, "", args(1,3, batarg("",flt),arg("first",flt),arg("limit",flt))), pattern("generator", "parameters", VLTgenerator_noop, false, "", args(1,3, batarg("",dbl),arg("first",dbl),arg("limit",dbl))), - pattern("generator", "thetaselect", VLTgenerator_thetasubselect, false, "", args(1,4, batarg("",oid),batarg("b",bte),arg("low",bte),arg("oper",str))), - pattern("generator", "thetaselect", VLTgenerator_thetasubselect, false, "", args(1,4, batarg("",oid),batarg("b",sht),arg("low",sht),arg("oper",str))), - pattern("generator", "thetaselect", VLTgenerator_thetasubselect, false, "", args(1,4, batarg("",oid),batarg("b",int),arg("low",int),arg("oper",str))), - pattern("generator", "thetaselect", VLTgenerator_thetasubselect, false, "", args(1,4, batarg("",oid),batarg("b",lng),arg("low",lng),arg("oper",str))), - pattern("generator", "thetaselect", VLTgenerator_thetasubselect, false, "", args(1,4, batarg("",oid),batarg("b",flt),arg("low",flt),arg("oper",str))), - pattern("generator", "thetaselect", VLTgenerator_thetasubselect, false, "", args(1,4, batarg("",oid),batarg("b",dbl),arg("low",dbl),arg("oper",str))), - pattern("generator", "thetaselect", VLTgenerator_thetasubselect, false, "Overloaded selection routine", args(1,4, batarg("",oid),batarg("b",timestamp),arg("low",timestamp),arg("oper",str))), pattern("generator", "thetaselect", VLTgenerator_thetasubselect, false, "", args(1,5, batarg("",oid),batarg("b",bte),batarg("cnd",oid),arg("low",bte),arg("oper",str))), pattern("generator", "thetaselect", VLTgenerator_thetasubselect, false, "", args(1,5, batarg("",oid),batarg("b",sht),batarg("cnd",oid),arg("low",sht),arg("oper",str))), pattern("generator", "thetaselect", VLTgenerator_thetasubselect, false, "", args(1,5, batarg("",oid),batarg("b",int),batarg("cnd",oid),arg("low",int),arg("oper",str))), @@ -1186,7 +1177,6 @@ static mel_func generator_init_funcs[] = pattern("generator", "series", VLTgenerator_table, false, "Create and materialize a generator table", args(1,4, batarg("",hge),arg("first",hge),arg("limit",hge),arg("step",hge))), _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list