Changeset: 1196aa5f895b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/1196aa5f895b
Modified Files:
monetdb5/modules/mal/properties.c
monetdb5/optimizer/opt_properties.c
sql/backends/monet5/sql_optimizer.c
Branch: types
Log Message:
Harmonize the downcasting types.
diffs (84 lines):
diff --git a/monetdb5/modules/mal/properties.c
b/monetdb5/modules/mal/properties.c
--- a/monetdb5/modules/mal/properties.c
+++ b/monetdb5/modules/mal/properties.c
@@ -48,10 +48,16 @@ PROPbind(Client cntxt, MalBlkPtr mb, Mal
#include "mel.h"
mel_func properties_init_funcs[] = {
pattern("properties", "bind", PROPbind, false, "Retrieve actual properties
from a BAT", args(1,3, arg("",void),batargany("",1),arg("min",int))),
- pattern("properties", "info", PROPinfo, false, "Retrieve actual properties
from a BAT", args(1,5,
arg("",void),batargany("",1),arg("min",bte),arg("max",bte),arg("cnt",lng) )),
- pattern("properties", "info", PROPinfo, false, "Retrieve actual properties
from a BAT", args(1,5,
arg("",void),batargany("",1),arg("min",sht),arg("max",sht),arg("cnt",lng) )),
- pattern("properties", "info", PROPinfo, false, "Retrieve actual properties
from a BAT", args(1,5,
arg("",void),batargany("",1),arg("min",int),arg("max",int),arg("cnt",lng) )),
- pattern("properties", "info", PROPinfo, false, "Retrieve actual properties
from a BAT", args(1,5,
arg("",void),batargany("",1),arg("min",lng),arg("max",lng),arg("cnt",lng) )),
+ pattern("properties", "info", PROPinfo, false, "Retrieve actual properties
from a BAT", args(1,5, arg("",void),batargany("",1),arg("cnt",lng),
arg("min",bte),arg("max",bte))),
+ pattern("properties", "info", PROPinfo, false, "Retrieve actual properties
from a BAT", args(1,5, arg("",void),batargany("",1), arg("cnt",lng),
arg("min",sht),arg("max",sht))),
+ pattern("properties", "info", PROPinfo, false, "Retrieve actual properties
from a BAT", args(1,5,
arg("",void),batargany("",1),arg("cnt",lng),arg("min",int),arg("max",int))),
+ pattern("properties", "info", PROPinfo, false, "Retrieve actual properties
from a BAT", args(1,5, arg("",void),batargany("",1),arg("cnt",lng),
arg("min",lng),arg("max",lng))),
+#ifdef HAVE_HGE
+ pattern("properties", "info", PROPinfo, false, "Retrieve actual properties
from a BAT", args(1,5, arg("",void),batargany("",1),arg("cnt",lng),
arg("min",hge),arg("max",hge))),
+#endif
+ pattern("properties", "info", PROPinfo, false, "Retrieve actual properties
from a BAT", args(1,5, arg("",void),batargany("",1),arg("cnt",lng),
arg("min",flt),arg("max",flt))),
+ pattern("properties", "info", PROPinfo, false, "Retrieve actual properties
from a BAT", args(1,5, arg("",void),batargany("",1),arg("cnt",lng),
arg("min",dbl),arg("max",dbl))),
+ pattern("properties", "info", PROPinfo, false, "Retrieve actual properties
from a BAT", args(1,5, arg("",void),batargany("",1),arg("cnt",lng),
arg("min",oid),arg("max",oid))),
{ .imp=NULL }
};
#include "mal_import.h"
diff --git a/monetdb5/optimizer/opt_properties.c
b/monetdb5/optimizer/opt_properties.c
--- a/monetdb5/optimizer/opt_properties.c
+++ b/monetdb5/optimizer/opt_properties.c
@@ -19,26 +19,27 @@
#define properties(TPE) \
val = BATmax_skipnil(bn, (void*) (&vmax.val.TPE), 1);\
vmax.vtype = basetype;\
- restype =scaledown(&vmax);\
+ r1 =scaledown(&vmax);\
if( val != &vmax.val.TPE){\
assert(0);\
/* error */\
}\
val = BATmin_skipnil(bn, (void*) (&vmin.val.TPE), 1);\
vmin.vtype = basetype;\
- restype =scaledown(&vmin);\
+ r2 =scaledown(&vmin);\
if( val != &vmin.val.TPE){\
/* error */\
- }
+ } restype= MAX(r1,r2);\
+ vmin.vtype = vmax.vtype = restype;
#define keeparound(T, TPE)\
q = newStmt(mb, propertiesRef, infoRef);\
setArgType(mb, q, 0, TYPE_void);\
q = pushArgument(mb, q, getArg(pci,1));\
+ q = pushLng(mb, q, cnt);\
q = push##T(mb, q, vmin.val.TPE);\
q = push##T(mb, q, vmax.val.TPE);\
- q = pushLng(mb, q, cnt);\
q->token = REMsymbol
@@ -75,7 +76,7 @@ PROPstatistics(Client cntxt, MalBlkPtr m
InstrPtr q;
bat bid;
BAT *b, *bn;
- int restype = TYPE_any, basetype= TYPE_any;
+ int r1, r2, restype = TYPE_any, basetype= TYPE_any;
ValRecord vmin, vmax;
lng cnt = 0;
ptr val;
diff --git a/sql/backends/monet5/sql_optimizer.c
b/sql/backends/monet5/sql_optimizer.c
--- a/sql/backends/monet5/sql_optimizer.c
+++ b/sql/backends/monet5/sql_optimizer.c
@@ -98,6 +98,12 @@ SQLgetSpace(mvc *m, MalBlkPtr mb, int pr
q = pushArgument(mb, q, getArg(p,0));
q = pushInt(mb, q, bid);
q->token = REMsymbol;
+ if( p->retc == 2){
+ q = newStmt(mb, propertiesRef,
bindRef);
+ q = pushArgument(mb, q, getArg(p,1));
+ q = pushInt(mb, q, bid);
+ q->token = REMsymbol;
+ }
}
/* we have to sum the cost of all three components of a
BAT */
if (c && isTable(c->t) && (lasttable == 0 ||
strcmp(lasttable,tname)==0)) {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list