Changeset: 1fe774d6f2a6 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1fe774d6f2a6
Modified Files:
clients/Tests/exports.stable.out
monetdb5/mal/mal_function.c
monetdb5/mal/mal_parser.c
monetdb5/mal/mal_type.h
monetdb5/modules/mal/mat.c
monetdb5/modules/mal/mat.h
monetdb5/modules/mal/mat.mal
monetdb5/optimizer/opt_multiplex.c
sql/backends/monet5/sql_gencode.c
Branch: default
Log Message:
Minor textual
All newBATtype calls only work on TYPE_oid head.
To be replaced at some point by column signatures.
diffs (truncated from 318 to 300 lines):
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
@@ -1363,7 +1363,6 @@ str MATpack2(Client cntxt, MalBlkPtr mb,
str MATpackIncrement(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
str MATpackSlice(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
str MATpackValues(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str MATprint(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
str MATproject(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str MATsort(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str MATsortReverse(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
diff --git a/monetdb5/mal/mal_function.c b/monetdb5/mal/mal_function.c
--- a/monetdb5/mal/mal_function.c
+++ b/monetdb5/mal/mal_function.c
@@ -288,17 +288,15 @@ static void replaceTypeVar(MalBlkPtr mb,
for(i=0;i<p->argc; i++)
if( isPolymorphic(x= getArgType(mb,p,i))) {
if( isaBatType(x)){
- int head,tail;
+ int tail;
int tx;
- head = TYPE_oid;
tail = getColumnType(x);
tx = getColumnIndex(x);
- head = TYPE_oid;
if(v && tx == v && tail == TYPE_any){
tx= 0;
tail = t;
}
- y= newBatType(head,tail);
+ y= newBatType(TYPE_oid,tail);
setAnyColumnIndex(y,tx);
setArgType(mb,p,i,y);
#ifdef DEBUG_MAL_FCN
diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c
--- a/monetdb5/mal/mal_parser.c
+++ b/monetdb5/mal/mal_parser.c
@@ -689,8 +689,7 @@ parseTypeId(Client cntxt, int defaultTyp
parseError(cntxt, "':oid' expected\n");
return i;
}
- } else
- ht = TYPE_any;
+ }
if (currChar(cntxt) != ',') {
parseError(cntxt, "',' expected\n");
@@ -704,7 +703,7 @@ parseTypeId(Client cntxt, int defaultTyp
} else
tt = TYPE_any;
- i = newBatType(ht, tt);
+ i = newBatType(TYPE_oid, tt);
if (kh > 0)
setAnyHeadIndex(i, kh);
if (kt > 0)
diff --git a/monetdb5/mal/mal_type.h b/monetdb5/mal/mal_type.h
--- a/monetdb5/mal/mal_type.h
+++ b/monetdb5/mal/mal_type.h
@@ -16,7 +16,7 @@
#define TMPMARKER '_'
#define REFMARKER 'X'
-#define newBatType(H,T) (1<<16 | (((H & 0377) <<8) | (T & 0377) ))
+#define newBatType(H,T) (1<<16 | (((TYPE_oid & 0377) <<8) | (T & 0377) ))
#define isaBatType(X) ((1<<16) & (X) && (X)!= TYPE_any)
#define setAnyHeadIndex(X,I) X |= ((I & 017)<<22);
#define isAnyExpression(X) ((X) >> 17)
diff --git a/monetdb5/modules/mal/mat.c b/monetdb5/modules/mal/mat.c
--- a/monetdb5/modules/mal/mat.c
+++ b/monetdb5/modules/mal/mat.c
@@ -85,15 +85,11 @@ MATpackInternal(Client cntxt, MalBlkPtr
for (i = 1; i < p->argc; i++) {
bat bid = stk->stk[getArg(p,i)].val.bval;
b = BBPquickdesc(abs(bid),FALSE);
- if (b && bid < 0)
- b = BATmirror(b);
if( b ){
- assert(BAThdense(b));
- if (tt == TYPE_any){
+ if (tt == TYPE_any)
tt = b->ttype;
- }
- if (!tt && tt != b->ttype)
- tt = b->ttype;
+ if (tt != b->ttype)
+ throw(MAL, "mat.pack", "incompatible
arguments");
cap += BATcount(b);
}
}
@@ -117,7 +113,6 @@ MATpackInternal(Client cntxt, MalBlkPtr
BBPunfix(b->batCacheid);
}
}
- assert(!bn->H->nil || !bn->H->nonil);
assert(!bn->T->nil || !bn->T->nonil);
BATsettrivprop(bn);
BATderiveProps(bn,FALSE);
@@ -289,7 +284,7 @@ MATpackSliceInternal(MalBlkPtr mb, MalSt
bn = BATnew(TYPE_void, tt, cnt, TRANSIENT);
if (bn == NULL)
throw(MAL, "mat.packSlice", MAL_MALLOC_FAIL);
- /* must set seqbase or else BATins will not materialize column */
+ /* must set seqbase else BATins will not materialize column */
BATseqbase(bn, 0);
if (tt == TYPE_void)
BATseqbase(BATmirror(bn), 0);
@@ -515,13 +510,6 @@ MATpackSlice(Client cntxt, MalBlkPtr mb,
str
-MATprint(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p)
-{
- (void) cntxt; (void) mb; (void) stk; (void) p;
- return MAL_SUCCEED;
-}
-
-str
MATinfo(bat *ret, str *grp, str *elm){
(void) grp; (void) elm;
*ret = bat_nil;
diff --git a/monetdb5/modules/mal/mat.h b/monetdb5/modules/mal/mat.h
--- a/monetdb5/modules/mal/mat.h
+++ b/monetdb5/modules/mal/mat.h
@@ -33,7 +33,6 @@ mat_export str MATpackSlice(Client cntxt
mat_export str MATnewIterator(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr p);
mat_export str MAThasMoreElements(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr p);
mat_export str MATinfo(bat *ret, str *grp, str *elm);
-mat_export str MATprint(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
mat_export str MATproject(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
mat_export str MATsortReverse(Client cntxt, MalBlkPtr mb, MalStkPtr stk,
InstrPtr pci);
mat_export str MATsort(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci);
diff --git a/monetdb5/modules/mal/mat.mal b/monetdb5/modules/mal/mat.mal
--- a/monetdb5/modules/mal/mat.mal
+++ b/monetdb5/modules/mal/mat.mal
@@ -61,9 +61,6 @@ pattern sortReverse(b:bat[:oid,:any_2]..
address MATsortReverse
comment "Returns a BAT copy sorted on the tail column.";
-pattern print(b:bat[:oid,:any_2]...):void
-address MATprint;
-
pattern newIterator(grp:bat[:oid,:any_2]...):bat[:oid,:any_2]
address MATnewIterator
comment "Create an iterator over a MAT";
diff --git a/monetdb5/optimizer/opt_multiplex.c
b/monetdb5/optimizer/opt_multiplex.c
--- a/monetdb5/optimizer/opt_multiplex.c
+++ b/monetdb5/optimizer/opt_multiplex.c
@@ -38,13 +38,12 @@ OPTexpandMultiplex(Client cntxt, MalBlkP
str mod, fcn;
int *alias, *resB;
InstrPtr q;
- int ht, tt;
+ int tt;
int bat = (getModuleId(pci) == batmalRef) ;
(void) cntxt;
(void) stk;
for (i = 0; i < pci->retc; i++) {
- ht = TYPE_oid;
tt = getColumnType(getArgType(mb, pci, i));
if (tt== TYPE_any)
throw(MAL, "optimizer.multiplex", "Target tail type is
missing");
@@ -98,11 +97,10 @@ OPTexpandMultiplex(Client cntxt, MalBlkP
q = newFcnCall(mb, batRef, newRef);
resB[i] = getArg(q, 0);
- ht = TYPE_oid;
tt = getColumnType(getArgType(mb, pci, i));
- setVarType(mb, getArg(q, 0), newBatType(ht, tt));
- q = pushType(mb, q, ht);
+ setVarType(mb, getArg(q, 0), newBatType(TYPE_oid, tt));
+ q = pushType(mb, q, TYPE_oid);
q = pushType(mb, q, tt);
}
@@ -131,9 +129,8 @@ OPTexpandMultiplex(Client cntxt, MalBlkP
for (i = 0; i < pci->retc; i++) {
int nvar = 0;
if (bat) {
- ht = TYPE_oid;
tt = getColumnType(getArgType(mb, pci, i));
- nvar = newTmpVariable(mb, newBatType(ht, tt));
+ nvar = newTmpVariable(mb, newBatType(TYPE_oid, tt));
} else {
nvar = newTmpVariable(mb, TYPE_any);
}
diff --git a/sql/backends/monet5/sql_gencode.c
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -956,7 +956,6 @@ static int
s->nr = getDestVar(q);
} break;
case st_single:{
- int ht = TYPE_oid;
int tt = s->op4.typeval.type->localtype;
int val = _dumpstmt(sql, mb, s->op1);
@@ -965,22 +964,21 @@ static int
q = newStmt1(mb, sqlRef, "single");
if (q == NULL)
return -1;
- setVarType(mb, getArg(q, 0), newBatType(ht, tt));
+ setVarType(mb, getArg(q, 0), newBatType(TYPE_oid, tt));
q = pushArgument(mb, q, val);
if (q == NULL)
return -1;
s->nr = getDestVar(q);
} break;
case st_temp:{
- int ht = TYPE_oid;
int tt = s->op4.typeval.type->localtype;
q = newStmt1(mb, batRef, "new");
if (q == NULL)
return -1;
- setVarType(mb, getArg(q, 0), newBatType(ht, tt));
+ setVarType(mb, getArg(q, 0), newBatType(TYPE_oid, tt));
setVarUDFtype(mb, getArg(q, 0));
- q = pushType(mb, q, ht);
+ q = pushType(mb, q, TYPE_oid);
q = pushType(mb, q, tt);
if (q == NULL)
return -1;
@@ -988,14 +986,13 @@ static int
s->nr = getDestVar(q);
} break;
case st_tid:{
- int ht = TYPE_oid;
int tt = TYPE_oid;
sql_table *t = s->op4.tval;
q = newStmt1(mb, sqlRef, "tid");
if (q == NULL)
return -1;
- setVarType(mb, getArg(q, 0), newBatType(ht, tt));
+ setVarType(mb, getArg(q, 0), newBatType(TYPE_oid, tt));
setVarUDFtype(mb, getArg(q, 0));
q = pushArgument(mb, q, sql->mvc_var);
q = pushSchema(mb, q, t);
@@ -1006,7 +1003,6 @@ static int
}
break;
case st_bat:{
- int ht = TYPE_oid;
int tt = s->op4.cval->type.type->localtype;
sql_table *t = s->op4.cval->t;
@@ -1014,9 +1010,9 @@ static int
if (q == NULL)
return -1;
if (s->flag == RD_UPD_ID) {
- q = pushReturn(mb, q, newTmpVariable(mb,
newBatType(ht, tt)));
+ q = pushReturn(mb, q, newTmpVariable(mb,
newBatType(TYPE_oid, tt)));
} else {
- setVarType(mb, getArg(q, 0), newBatType(ht,
tt));
+ setVarType(mb, getArg(q, 0),
newBatType(TYPE_oid, tt));
setVarUDFtype(mb, getArg(q, 0));
}
q = pushArgument(mb, q, sql->mvc_var);
@@ -1035,7 +1031,6 @@ static int
}
break;
case st_idxbat:{
- int ht = TYPE_oid;
int tt = tail_type(s)->type->localtype;
sql_table *t = s->op4.idxval->t;
@@ -1043,9 +1038,9 @@ static int
if (q == NULL)
return -1;
if (s->flag == RD_UPD_ID) {
- q = pushReturn(mb, q, newTmpVariable(mb,
newBatType(ht, tt)));
+ q = pushReturn(mb, q, newTmpVariable(mb,
newBatType(TYPE_oid, tt)));
} else {
- setVarType(mb, getArg(q, 0), newBatType(ht,
tt));
+ setVarType(mb, getArg(q, 0),
newBatType(TYPE_oid, tt));
setVarUDFtype(mb, getArg(q, 0));
}
@@ -1106,16 +1101,15 @@ static int
assert(s->nrcols);
if (s->nrcols == 0) {
int k;
- int ht = TYPE_oid;
int tt = tail_type(s->op1)->type->localtype;
assert(0);
q = newStmt1(mb, batRef, "new");
if (q == NULL)
return -1;
- setVarType(mb, getArg(q, 0), newBatType(ht,
tt));
+ setVarType(mb, getArg(q, 0),
newBatType(TYPE_oid, tt));
setVarUDFtype(mb, getArg(q, 0));
- q = pushType(mb, q, ht);
+ q = pushType(mb, q, TYPE_oid);
q = pushType(mb, q, tt);
if (q == NULL)
return -1;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list