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

Reply via email to