Changeset: 220a4ae35df1 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=220a4ae35df1
Modified Files:
monetdb5/optimizer/opt_cluster.c
monetdb5/optimizer/opt_coercion.c
monetdb5/optimizer/opt_costModel.c
monetdb5/optimizer/opt_crackers.c
monetdb5/optimizer/opt_datacell.c
monetdb5/optimizer/opt_datacyclotron.c
monetdb5/optimizer/opt_dataflow.c
monetdb5/optimizer/opt_dictionary.c
monetdb5/optimizer/opt_emptySet.c
monetdb5/optimizer/opt_evaluate.c
monetdb5/optimizer/opt_factorize.c
monetdb5/optimizer/opt_garbagecollector.c
monetdb5/optimizer/opt_history.c
monetdb5/optimizer/opt_joinpath.c
monetdb5/optimizer/opt_macro.c
monetdb5/optimizer/opt_mapreduce.c
monetdb5/optimizer/opt_mergetable.c
monetdb5/optimizer/opt_mitosis.c
monetdb5/optimizer/opt_multiplex.c
monetdb5/optimizer/opt_octopus.c
monetdb5/optimizer/opt_prejoin.c
monetdb5/optimizer/opt_pushranges.c
monetdb5/optimizer/opt_recycler.c
monetdb5/optimizer/opt_remap.c
monetdb5/optimizer/opt_remoteQueries.c
monetdb5/optimizer/opt_replication.c
monetdb5/optimizer/opt_selcrack.c
monetdb5/optimizer/opt_singleton.c
monetdb5/optimizer/opt_support.c
monetdb5/optimizer/opt_wrapper.c
Branch: headless
Log Message:
Convert to MALtype structure
diffs (truncated from 1620 to 300 lines):
diff --git a/monetdb5/optimizer/opt_cluster.c b/monetdb5/optimizer/opt_cluster.c
--- a/monetdb5/optimizer/opt_cluster.c
+++ b/monetdb5/optimizer/opt_cluster.c
@@ -163,7 +163,7 @@
if (ol) {
InstrPtr c, q = old[ord[0]], *no, m, s, o;
int i, j, p, cur = 0;
- int ht = getColType(getArgType(mb, q, 1));
+ int ht = getArgType(mb, q, 1).type;
int bits = 5;
int offset = 3;
@@ -187,7 +187,7 @@
/* cluster into 'nr_parts' parts based on the values */
c = newStmt( mb, "cluster", "new" );
/* second return (map) value */
- c = pushReturn(mb, c, newTmpVariable(mb, TYPE_any));
+ c = pushReturn(mb, c, newTmpVariable(mb, newMALtype(TYPE_any)));
c = pushArgument( mb, c, getArg(q, 1) );
c = pushInt( mb, c, bits);
c = pushInt( mb, c, offset);
@@ -202,7 +202,7 @@
s = newStmt( mb, "cluster", "split" );
/* split returns 'nr_parts' parts */
for (p = 1; p<nr_parts; p++)
- s = pushReturn(mb, s, newTmpVariable(mb, TYPE_any));
+ s = pushReturn(mb, s, newTmpVariable(mb,
newMALtype(TYPE_any)));
s = pushArgument( mb, s, getArg(m, 0) );
s = pushArgument( mb, s, getArg(c, 0) ); /* psum */
@@ -211,7 +211,7 @@
o = old[ord[0]];
for (p = 0; p<nr_parts; p++) {
no[p] = copyInstruction(o);
- getArg(no[p], 0) = newTmpVariable(mb, TYPE_any);
+ getArg(no[p], 0) = newTmpVariable(mb,
newMALtype(TYPE_any));
getArg(no[p], 1) = getArg(s, p);
pushInstruction(mb, no[p]);
}
@@ -233,12 +233,12 @@
s = newStmt( mb, "cluster", "split" );
/* split returns 'nr_parts' parts */
for (p = 1; p<nr_parts; p++)
- s = pushReturn(mb, s,
newTmpVariable(mb, TYPE_any));
+ s = pushReturn(mb, s,
newTmpVariable(mb, newMALtype(TYPE_any)));
s = pushArgument( mb, s, getArg(m, 0) );
s = pushArgument( mb, s, getArg(c, 0) ); /*
psum */
for (p = 0; p<nr_parts; p++) {
nno = copyInstruction(o);
- getArg(nno, 0) = newTmpVariable(mb,
TYPE_any);
+ getArg(nno, 0) = newTmpVariable(mb,
newMALtype(TYPE_any));
getArg(nno, 1) = getArg(no[p], 0);
getArg(nno, 2) = getArg(s, p);
pushInstruction(mb, nno);
@@ -247,7 +247,7 @@
} else {
for (p = 0; p<nr_parts; p++) {
nno = copyInstruction(o);
- getArg(nno, 0) = newTmpVariable(mb,
TYPE_any);
+ getArg(nno, 0) = newTmpVariable(mb,
newMALtype(TYPE_any));
getArg(nno, 1) = getArg(no[p], 0);
pushInstruction(mb, nno);
no[p] = nno;
@@ -270,7 +270,7 @@
s = newStmt( mb, "cluster", "split" );
/* split returns 'nr_parts' parts */
for (p = 1; p<nr_parts; p++)
- s = pushReturn(mb, s, newTmpVariable(mb,
TYPE_any));
+ s = pushReturn(mb, s, newTmpVariable(mb,
newMALtype(TYPE_any)));
s = pushArgument( mb, s, getArg(m, 0) );
s = pushArgument( mb, s, getArg(c, 0) ); /* psum */
@@ -281,7 +281,7 @@
for (p = 0; p<nr_parts; p++) {
ppj = copyInstruction(opj);
- getArg(ppj, 0) = newTmpVariable(mb, TYPE_any);
+ getArg(ppj, 0) = newTmpVariable(mb,
newMALtype(TYPE_any));
getArg(ppj, 1) = getArg(no[p], 0);
getArg(ppj, 2) = getArg(s, p);
@@ -376,8 +376,8 @@
InstrPtr cl, cr, sl, sr, q = old[join[0]], *njn, *mr, *rmr, m,
s, jn;
int njn0 = -1, mr0 = -1, rmr0 = -1, p;
int i, j, cur = 0;
- int ht = getColType(getArgType(mb, q, 1));
- int h2 = getColType(getArgType(mb, q, 2));
+ int ht = getArgType(mb, q, 1).type;
+ int h2 = getArgType(mb, q, 2).type;
int bits = 5;
int offset = 0;
@@ -399,7 +399,7 @@
/* cluster left col into 'nr_parts' parts based on the values */
cl = newStmt( mb, "cluster", "new" );
/* second return (map) value */
- cl = pushReturn(mb, cl, newTmpVariable(mb, TYPE_any));
+ cl = pushReturn(mb, cl, newTmpVariable(mb,
newMALtype(TYPE_any)));
cl = pushArgument( mb, cl, getArg(q, 1) );
cl = pushInt( mb, cl, bits);
cl = pushInt( mb, cl, offset);
@@ -415,7 +415,7 @@
sl = newStmt( mb, "cluster", "split" );
/* split returns 'nr_parts' parts */
for (p = 1; p<nr_parts; p++)
- sl = pushReturn(mb, sl, newTmpVariable(mb, TYPE_any));
+ sl = pushReturn(mb, sl, newTmpVariable(mb,
newMALtype(TYPE_any)));
sl = pushArgument( mb, sl, getArg(m, 0) );
sl = pushArgument( mb, sl, getArg(cl, 0) ); /* psum */
@@ -425,7 +425,7 @@
cr = newStmt( mb, "cluster", "new" );
/* second return (map) value */
- cr = pushReturn(mb, cr, newTmpVariable(mb, TYPE_any));
+ cr = pushReturn(mb, cr, newTmpVariable(mb,
newMALtype(TYPE_any)));
cr = pushArgument( mb, cr, getArg(s, 0) );
cr = pushInt( mb, cr, bits);
cr = pushInt( mb, cr, offset);
@@ -441,7 +441,7 @@
sr = newStmt( mb, "cluster", "split" );
/* split returns 'nr_parts' parts */
for (p = 1; p<nr_parts; p++)
- sr = pushReturn(mb, sr, newTmpVariable(mb, TYPE_any));
+ sr = pushReturn(mb, sr, newTmpVariable(mb,
newMALtype(TYPE_any)));
sr = pushArgument( mb, sr, getArg(m, 0) );
sr = pushArgument( mb, sr, getArg(cr, 0) ); /* psum */
@@ -457,7 +457,7 @@
r = pushArgument(mb, r, getArg(sr, p));
njn[p] = copyInstruction(jn);
- getArg(njn[p], 0) = newTmpVariable(mb, TYPE_any);
+ getArg(njn[p], 0) = newTmpVariable(mb,
newMALtype(TYPE_any));
getArg(njn[p], 1) = getArg(sl, p);
getArg(njn[p], 2) = getArg(r, 0);
pushInstruction(mb, njn[p]);
@@ -499,7 +499,7 @@
for (p = 0; p<nr_parts; p++) {
InstrPtr n = copyInstruction(o);
- getArg(n, 0) = newTmpVariable(mb, TYPE_any);
+ getArg(n, 0) = newTmpVariable(mb,
newMALtype(TYPE_any));
getArg(n, 1) = getArg(in[p], 0);
pushInstruction(mb, n);
res[p] = n;
@@ -523,7 +523,7 @@
s = newStmt( mb, "cluster", "split" );
/* split returns 'nr_parts' parts */
for (p = 1; p<nr_parts; p++)
- s = pushReturn(mb, s, newTmpVariable(mb,
TYPE_any));
+ s = pushReturn(mb, s, newTmpVariable(mb,
newMALtype(TYPE_any)));
s = pushArgument( mb, s, getArg(m, 0) );
s = pushArgument( mb, s, getArg(c, 0) ); /* psum */
@@ -534,7 +534,7 @@
for (p = 0; p<nr_parts; p++) {
ppj = copyInstruction(opj);
- getArg(ppj, 0) = newTmpVariable(mb, TYPE_any);
+ getArg(ppj, 0) = newTmpVariable(mb,
newMALtype(TYPE_any));
getArg(ppj, 1) = getArg(jr[p], 0);
getArg(ppj, 2) = getArg(s, p);
pushInstruction(mb, ppj);
diff --git a/monetdb5/optimizer/opt_coercion.c
b/monetdb5/optimizer/opt_coercion.c
--- a/monetdb5/optimizer/opt_coercion.c
+++ b/monetdb5/optimizer/opt_coercion.c
@@ -36,14 +36,15 @@
static int
coercionOptimizerStep(MalBlkPtr mb, int i, InstrPtr p)
{
- int t, k, a, b;
+ int k, a, b;
+ MALtype tpe;
a = getArg(p, 0);
b = getArg(p, 1);
- t = getVarType(mb, b);
- if (getVarType(mb, a) != t)
+ tpe = getVarType(mb, b);
+ if ( !CMPMALtype(getVarType(mb, a), tpe))
return 0;
- if (strcmp(getFunctionId(p), ATOMname(t)) == 0) {
+ if (strcmp(getFunctionId(p), ATOMname(tpe.type)) == 0) {
removeInstruction(mb, p); /* dead code */
for (; i < mb->stop; i++) {
p = getInstrPtr(mb, i);
@@ -55,6 +56,7 @@
}
return 0;
}
+
int
OPTcoercionImplementation(Client cntxt,MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci)
{
diff --git a/monetdb5/optimizer/opt_costModel.c
b/monetdb5/optimizer/opt_costModel.c
--- a/monetdb5/optimizer/opt_costModel.c
+++ b/monetdb5/optimizer/opt_costModel.c
@@ -161,7 +161,7 @@
newRows1(1, c1 < 50 ? c1 : c1 / 10+1)
}
} else if (getModuleId(p) == colcalcRef) {
- if( isaColType(getArgType(mb,p,1)) )
+ if( getArgType(mb,p,1).col )
newRows1(1, c1)
else
newRows1(2, c2)
@@ -186,7 +186,7 @@
* The same holds for replacement operations, which add information to
* an initially empty insertion column.
*/
- if( isaColType(getArgType(mb,p,2)) ){
+ if( getArgType(mb,p,2).col ){
newRows(1,2, c1 + c2+1,1)
OPTbackpropagate(mb,i,getArg(p,1));
} else {
@@ -195,7 +195,7 @@
OPTbackpropagate(mb,i,getArg(p,1));
}
} else if (getFunctionId(p) == deleteRef){
- if( isaColType(getArgType(mb,p,2)) ){
+ if( getArgType(mb,p,2).col ){
/* delete column */
newRows(1,2, (c1 - c2 ==0? 1: c1-c2),1)
OPTbackpropagate(mb,i,getArg(p,1));
diff --git a/monetdb5/optimizer/opt_crackers.c
b/monetdb5/optimizer/opt_crackers.c
--- a/monetdb5/optimizer/opt_crackers.c
+++ b/monetdb5/optimizer/opt_crackers.c
@@ -59,7 +59,7 @@
if ( match2(p, colRef, newRef) || match2(p, sqlRef, bindRef) ){
/* crack only supported data types */
- if ( getColType(mb->var[getArg(p,0)]->type)==TYPE_str )
+ if ( getVarType(mb,getArg(p,0)).type == TYPE_str )
continue;
/* avoid cracking delta bats used for updates */
diff --git a/monetdb5/optimizer/opt_datacell.c
b/monetdb5/optimizer/opt_datacell.c
--- a/monetdb5/optimizer/opt_datacell.c
+++ b/monetdb5/optimizer/opt_datacell.c
@@ -247,7 +247,7 @@
j= mf->stop;
/* barrier go:=true; */
q= newAssignment(mf);
- setArgType(mf,q,0,TYPE_bit);
+ setArgType(mf,q,0, newMALtype(TYPE_bit));
k= getArg(q,0);
setVarUsed(mf,k);
q->barrier= BARRIERsymbol;
diff --git a/monetdb5/optimizer/opt_datacyclotron.c
b/monetdb5/optimizer/opt_datacyclotron.c
--- a/monetdb5/optimizer/opt_datacyclotron.c
+++ b/monetdb5/optimizer/opt_datacyclotron.c
@@ -179,7 +179,8 @@
int
OPTdatacyclotronImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr p)
{
- int i=0, actions=0, k=0, z=0, j=0, num_regs=DCYREGS, *tpes=NULL,
oldtop=0,slimit=0;
+ int i=0, actions=0, k=0, z=0, j=0, num_regs=DCYREGS, oldtop=0,slimit=0;
+ MALtype *tpes = NULL;
DCYcatalog **regs=NULL, *reg = NULL;
VarRecord low,hgh,max_hgh;
InstrPtr *old=NULL, new, matq;
@@ -193,7 +194,7 @@
return actions;
#ifdef BIND_DATACYCLOTRON_OPT
- tpes= (int*) GDKmalloc(num_regs * sizeof(int));
+ tpes= (MALtype*) GDKmalloc(num_regs * sizeof(MALtype));
if ( tpes == NULL )
goto out;
#endif
@@ -219,7 +220,7 @@
if ( num_regs <= (mb->vtop + 1000) ) {
#ifdef BIND_DATACYCLOTRON_OPT
- if ( !(tpes = GDKrealloc(tpes, (num_regs + DCYREGS) *
sizeof(int))) ){
+ if ( !(tpes = (MALtype*) GDKrealloc(tpes, (num_regs +
DCYREGS) * sizeof(MALtype))) ){
errors = 1;
goto out;
}
@@ -248,7 +249,7 @@
regs[getArg(p,0)] = findRegist(sch, tab, col, acc);
if (regs[getArg(p,0)]) {
- int tpe = TYPE_int;
+ MALtype tpe = newMALtype(TYPE_int);
reg = regs[getArg(p,0)];
#ifndef BIND_DATACYCLOTRON_OPT
tpe = getArgType(mb,p,0);
@@ -270,10 +271,10 @@
getArg(new,0) = newTmpVariable(mb, tpe);
#else
setFunctionId(new,copyRef);
- new = pushArgument(mb, new,
newTmpVariable(mb,TYPE_int));
+ new = pushArgument(mb, new,
newTmpVariable(mb, newMALtype(TYPE_int)));
new->retc++;
getArg(new,0) = newTmpVariable(mb, tpe);
- getArg(new,1) = newTmpVariable(mb,
TYPE_int);
+ getArg(new,1) = newTmpVariable(mb,
newMALtype(TYPE_int));
#endif
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list