Changeset: 19e79f396e34 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=19e79f396e34
Modified Files:
        clients/Tests/exports.stable.out
        monetdb5/mal/Tests/tst007.mal
        monetdb5/mal/Tests/tst007.stable.out
        monetdb5/mal/mal_function.c
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_resolve.c
        monetdb5/mal/mal_type.h
        monetdb5/modules/atoms/batxml.c
        monetdb5/modules/atoms/json.c
        monetdb5/modules/atoms/mtime.c
        monetdb5/modules/kernel/algebra.c
        monetdb5/modules/kernel/bat5.c
        monetdb5/modules/kernel/bat5.h
        monetdb5/modules/kernel/batcolor.c
        monetdb5/modules/kernel/batstr.c
        monetdb5/modules/mal/batExtensions.c
        monetdb5/modules/mal/batcalc.c
        monetdb5/modules/mal/calc.c
        monetdb5/modules/mal/inspect.c
        monetdb5/modules/mal/mal_mapi.c
        monetdb5/modules/mal/manifold.c
        monetdb5/modules/mal/mat.c
        monetdb5/modules/mal/pcre.c
        monetdb5/modules/mal/remote.c
        monetdb5/optimizer/opt_multiplex.c
Branch: default
Log Message:

Remove getHeadType, getHeadIndex
and corresponding htype use cases


diffs (truncated from 917 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
@@ -815,7 +815,6 @@ str BKCgetAccess(str *res, const bat *bi
 str BKCgetBBPname(str *ret, const bat *bid);
 str BKCgetCapacity(lng *res, const bat *bid);
 str BKCgetColumnType(str *res, const bat *bid);
-str BKCgetHeadType(str *res, const bat *bid);
 str BKCgetKey(bit *ret, const bat *bid);
 str BKCgetRole(str *res, const bat *bid);
 str BKCgetSequenceBase(oid *r, const bat *bid);
@@ -831,7 +830,7 @@ str BKCisSynced(bit *ret, const bat *bid
 str BKCisTransient(bit *res, const bat *bid);
 str BKCmergecand(bat *ret, const bat *aid, const bat *bid);
 str BKCmirror(bat *ret, const bat *bid);
-str BKCnewBAT(bat *res, const int *ht, const int *tt, const BUN *cap, int 
role);
+str BKCnewBAT(bat *res, const int *tt, const BUN *cap, int role);
 str BKCpersists(void *r, const bat *bid, const bit *flg);
 str BKCreuseBAT(bat *ret, const bat *bid, const bat *did);
 str BKCreuseBATmap(bat *ret, const bat *bid, const bat *did);
diff --git a/monetdb5/mal/Tests/tst007.mal b/monetdb5/mal/Tests/tst007.mal
--- a/monetdb5/mal/Tests/tst007.mal
+++ b/monetdb5/mal/Tests/tst007.mal
@@ -35,14 +35,14 @@ exit        N;
 
 # de if-then en if-then-else constructies
 
-barrier        FT:= booleanexpr;
+barrier        FT:= false;
        # thenpart
 exit   FT;
 
-barrier        FTE:= booleanexpr;
+barrier        FTE:= false;
        # thenpart
 exit   FTE;
-barrier FS:= batcalc.not(FTE);
+barrier FS:= calc.not(FTE);
        #elsepart
 exit   FS;
 
diff --git a/monetdb5/mal/Tests/tst007.stable.out 
b/monetdb5/mal/Tests/tst007.stable.out
--- a/monetdb5/mal/Tests/tst007.stable.out
+++ b/monetdb5/mal/Tests/tst007.stable.out
@@ -18,7 +18,6 @@ stdout of test 'tst007` in directory 'mo
 # MonetDB/JAQL module loaded
 # MonetDB/SQL module loaded
 !TypeException:user.foo[16]:'entry_or_exittest' may not be used before being 
initialized
-!TypeException:user.foo[29]:'booleanexpr' may not be used before being 
initialized
 function user.foo():void;
     b := bat.new(:oid,:int);
 barrier H := true;
@@ -48,13 +47,13 @@ barrier N := calc.<(i,10);
     redo N;
 exit N;
 # de if-then en if-then-else constructies 
-barrier FT := booleanexpr;
+barrier FT := false;
 # thenpart 
 exit FT;
-barrier FTE := booleanexpr;
+barrier FTE := false;
 # thenpart 
 exit FTE;
-barrier FS := batcalc.not(FTE);
+barrier FS := calc.not(FTE);
 #elsepart 
 exit FS;
 end user.foo;
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
@@ -289,21 +289,16 @@ static void replaceTypeVar(MalBlkPtr mb,
        if( isPolymorphic(x= getArgType(mb,p,i))) {
                if( isaBatType(x)){
                        int head,tail;
-                       int hx,tx;
-                       head = getHeadType(x);
+                       int tx;
+                       head = TYPE_oid;
                        tail = getColumnType(x);
-                       hx = getHeadIndex(x);
                        tx = getColumnIndex(x);
-                       if(v && hx == v && head == TYPE_any){
-                           hx =0;
-                           head =t;
-                       }
+                       head = TYPE_oid;
                        if(v && tx == v && tail == TYPE_any){
                            tx= 0;
                            tail = t;
                        }
                        y= newBatType(head,tail);
-                       setAnyHeadIndex(y,hx);
                        setAnyColumnIndex(y,tx);
                        setArgType(mb,p,i,y);
 #ifdef DEBUG_MAL_FCN
@@ -409,8 +404,6 @@ cloneFunction(stream *out, Module scope,
                        if (v == TYPE_any)
                                replaceTypeVar(new->def, pp, v, t);
                        if (isaBatType(v)) {
-                               if (getHeadIndex(v))
-                                       replaceTypeVar(new->def, pp, 
getHeadIndex(v), getHeadType(t));
                                if (getColumnIndex(v))
                                        replaceTypeVar(new->def, pp, 
getColumnIndex(v), getColumnType(t));
                        } else
diff --git a/monetdb5/mal/mal_instruction.c b/monetdb5/mal/mal_instruction.c
--- a/monetdb5/mal/mal_instruction.c
+++ b/monetdb5/mal/mal_instruction.c
@@ -1753,12 +1753,8 @@ setPolymorphic(InstrPtr p, int tpe, int 
 
        if (force == FALSE && tpe == TYPE_any)
                return;
-       if (isaBatType(tpe)) {
-               if (getHeadIndex(tpe) > 0)
-                       c1 = getHeadIndex(tpe);
-               else if (getHeadType(tpe) == TYPE_any)
-                       c1 = 1;
-       }
+       if (isaBatType(tpe)) 
+               c1= TYPE_oid;
        if (getColumnIndex(tpe) > 0)
                c2 = getColumnIndex(tpe);
        else if (getColumnType(tpe) == TYPE_any)
diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c
--- a/monetdb5/mal/mal_profiler.c
+++ b/monetdb5/mal/mal_profiler.c
@@ -451,19 +451,19 @@ TRACEtable(BAT **r)
        if (initTrace())
                return ;
        MT_lock_set(&mal_profileLock, "TRACEtable");
-       r[0] = BATcopy(TRACE_id_event, TRACE_id_event->htype, 
TRACE_id_event->ttype, 0, TRANSIENT);
-       r[1] = BATcopy(TRACE_id_time, TRACE_id_time->htype, 
TRACE_id_time->ttype, 0, TRANSIENT);
-       r[2] = BATcopy(TRACE_id_pc, TRACE_id_pc->htype, TRACE_id_pc->ttype, 0, 
TRANSIENT);
-       r[3] = BATcopy(TRACE_id_thread, TRACE_id_thread->htype, 
TRACE_id_thread->ttype, 0, TRANSIENT);
-       r[4] = BATcopy(TRACE_id_ticks, TRACE_id_ticks->htype, 
TRACE_id_ticks->ttype, 0, TRANSIENT);
-       r[5] = BATcopy(TRACE_id_rssMB, TRACE_id_rssMB->htype, 
TRACE_id_rssMB->ttype, 0, TRANSIENT);
-       r[6] = BATcopy(TRACE_id_tmpspace, TRACE_id_tmpspace->htype, 
TRACE_id_tmpspace->ttype, 0, TRANSIENT);
-       r[7] = BATcopy(TRACE_id_inblock, TRACE_id_inblock->htype, 
TRACE_id_inblock->ttype, 0, TRANSIENT);
-       r[8] = BATcopy(TRACE_id_oublock, TRACE_id_oublock->htype, 
TRACE_id_oublock->ttype, 0, TRANSIENT);
-       r[9] = BATcopy(TRACE_id_minflt, TRACE_id_minflt->htype, 
TRACE_id_minflt->ttype, 0, TRANSIENT);
-       r[10] = BATcopy(TRACE_id_majflt, TRACE_id_majflt->htype, 
TRACE_id_majflt->ttype, 0, TRANSIENT);
-       r[11] = BATcopy(TRACE_id_nvcsw, TRACE_id_nvcsw->htype, 
TRACE_id_nvcsw->ttype, 0, TRANSIENT);
-       r[12] = BATcopy(TRACE_id_stmt, TRACE_id_stmt->htype, 
TRACE_id_stmt->ttype, 0, TRANSIENT);
+       r[0] = BATcopy(TRACE_id_event, TYPE_void, TRACE_id_event->ttype, 0, 
TRANSIENT);
+       r[1] = BATcopy(TRACE_id_time, TYPE_void, TRACE_id_time->ttype, 0, 
TRANSIENT);
+       r[2] = BATcopy(TRACE_id_pc, TYPE_void, TRACE_id_pc->ttype, 0, 
TRANSIENT);
+       r[3] = BATcopy(TRACE_id_thread, TYPE_void, TRACE_id_thread->ttype, 0, 
TRANSIENT);
+       r[4] = BATcopy(TRACE_id_ticks, TYPE_void, TRACE_id_ticks->ttype, 0, 
TRANSIENT);
+       r[5] = BATcopy(TRACE_id_rssMB, TYPE_void, TRACE_id_rssMB->ttype, 0, 
TRANSIENT);
+       r[6] = BATcopy(TRACE_id_tmpspace, TYPE_void, TRACE_id_tmpspace->ttype, 
0, TRANSIENT);
+       r[7] = BATcopy(TRACE_id_inblock, TYPE_void, TRACE_id_inblock->ttype, 0, 
TRANSIENT);
+       r[8] = BATcopy(TRACE_id_oublock, TYPE_void, TRACE_id_oublock->ttype, 0, 
TRANSIENT);
+       r[9] = BATcopy(TRACE_id_minflt, TYPE_void, TRACE_id_minflt->ttype, 0, 
TRANSIENT);
+       r[10] = BATcopy(TRACE_id_majflt, TYPE_void, TRACE_id_majflt->ttype, 0, 
TRANSIENT);
+       r[11] = BATcopy(TRACE_id_nvcsw, TYPE_void, TRACE_id_nvcsw->ttype, 0, 
TRANSIENT);
+       r[12] = BATcopy(TRACE_id_stmt, TYPE_void, TRACE_id_stmt->ttype, 0, 
TRANSIENT);
        MT_lock_unset(&mal_profileLock, "TRACEtable");
 }
 
@@ -600,31 +600,31 @@ getTrace(const char *nme)
        if (TRACE_init == 0)
                return NULL;
        if (strcmp(nme, "event") == 0)
-               return BATcopy(TRACE_id_event, TRACE_id_event->htype, 
TRACE_id_event->ttype, 0, TRANSIENT);
+               return BATcopy(TRACE_id_event, TYPE_void, 
TRACE_id_event->ttype, 0, TRANSIENT);
        if (strcmp(nme, "time") == 0)
-               return BATcopy(TRACE_id_time, TRACE_id_time->htype, 
TRACE_id_time->ttype, 0, TRANSIENT);
+               return BATcopy(TRACE_id_time, TYPE_void, TRACE_id_time->ttype, 
0, TRANSIENT);
        if (strcmp(nme, "pc") == 0)
-               return BATcopy(TRACE_id_pc, TRACE_id_pc->htype, 
TRACE_id_pc->ttype, 0, TRANSIENT);
+               return BATcopy(TRACE_id_pc, TYPE_void, TRACE_id_pc->ttype, 0, 
TRANSIENT);
        if (strcmp(nme, "thread") == 0)
-               return BATcopy(TRACE_id_thread, TRACE_id_thread->htype, 
TRACE_id_thread->ttype, 0, TRANSIENT);
+               return BATcopy(TRACE_id_thread, TYPE_void, 
TRACE_id_thread->ttype, 0, TRANSIENT);
        if (strcmp(nme, "ticks") == 0)
-               return BATcopy(TRACE_id_ticks, TRACE_id_ticks->htype, 
TRACE_id_ticks->ttype, 0, TRANSIENT);
+               return BATcopy(TRACE_id_ticks, TYPE_void, 
TRACE_id_ticks->ttype, 0, TRANSIENT);
        if (strcmp(nme, "rssMB") == 0)
-               return BATcopy(TRACE_id_rssMB, TRACE_id_rssMB->htype, 
TRACE_id_rssMB->ttype, 0, TRANSIENT);
+               return BATcopy(TRACE_id_rssMB, TYPE_void, 
TRACE_id_rssMB->ttype, 0, TRANSIENT);
        if (strcmp(nme, "tmpspace") == 0)
-               return BATcopy(TRACE_id_tmpspace, TRACE_id_tmpspace->htype, 
TRACE_id_tmpspace->ttype, 0, TRANSIENT);
+               return BATcopy(TRACE_id_tmpspace, TYPE_void, 
TRACE_id_tmpspace->ttype, 0, TRANSIENT);
        if (strcmp(nme, "reads") == 0)
-               return BATcopy(TRACE_id_inblock, TRACE_id_inblock->htype, 
TRACE_id_inblock->ttype, 0, TRANSIENT);
+               return BATcopy(TRACE_id_inblock, TYPE_void, 
TRACE_id_inblock->ttype, 0, TRANSIENT);
        if (strcmp(nme, "writes") == 0)
-               return BATcopy(TRACE_id_oublock, TRACE_id_oublock->htype, 
TRACE_id_oublock->ttype, 0, TRANSIENT);
+               return BATcopy(TRACE_id_oublock, TYPE_void, 
TRACE_id_oublock->ttype, 0, TRANSIENT);
        if (strcmp(nme, "minflt") == 0)
-               return BATcopy(TRACE_id_minflt, TRACE_id_minflt->htype, 
TRACE_id_minflt->ttype, 0, TRANSIENT);
+               return BATcopy(TRACE_id_minflt, TYPE_void, 
TRACE_id_minflt->ttype, 0, TRANSIENT);
        if (strcmp(nme, "majflt") == 0)
-               return BATcopy(TRACE_id_majflt, TRACE_id_majflt->htype, 
TRACE_id_majflt->ttype, 0, TRANSIENT);
+               return BATcopy(TRACE_id_majflt, TYPE_void, 
TRACE_id_majflt->ttype, 0, TRANSIENT);
        if (strcmp(nme, "nvcsw") == 0)
-               return BATcopy(TRACE_id_nvcsw, TRACE_id_nvcsw->htype, 
TRACE_id_nvcsw->ttype, 0, TRANSIENT);
+               return BATcopy(TRACE_id_nvcsw, TYPE_void, 
TRACE_id_nvcsw->ttype, 0, TRANSIENT);
        if (strcmp(nme, "stmt") == 0)
-               return BATcopy(TRACE_id_stmt, TRACE_id_stmt->htype, 
TRACE_id_stmt->ttype, 0, TRANSIENT);
+               return BATcopy(TRACE_id_stmt, TYPE_void, TRACE_id_stmt->ttype, 
0, TRANSIENT);
        return NULL;
 }
 
diff --git a/monetdb5/mal/mal_resolve.c b/monetdb5/mal/mal_resolve.c
--- a/monetdb5/mal/mal_resolve.c
+++ b/monetdb5/mal/mal_resolve.c
@@ -505,22 +505,7 @@ resolveType(int dsttype, int srctype)
        if (isaBatType(dsttype) && srctype == TYPE_bat)
                return dsttype;
        if (isaBatType(dsttype) && isaBatType(srctype)) {
-               int h1, t1, h2, t2, h3, t3;
-               h1 = getHeadType(dsttype);
-               h2 = getHeadType(srctype);
-               if (h1 == h2)
-                       h3 = h1;
-               else if (h1 == TYPE_any)
-                       h3 = h2;
-               else if (h2 == TYPE_any)
-                       h3 = h1;
-               else {
-#ifdef DEBUG_MAL_RESOLVE
-                       if (tracefcn)
-                               mnstr_printf(GDKout, "Head can not be resolved 
\n");
-#endif
-                       return -1;
-               }
+               int t1, t2, t3;
                t1 = getColumnType(dsttype);
                t2 = getColumnType(srctype);
                if (t1 == t2)
@@ -538,26 +523,19 @@ resolveType(int dsttype, int srctype)
                }
 #ifdef DEBUG_MAL_RESOLVE
                if (tracefcn) {
-                       int i1 = getHeadIndex(dsttype);
                        int i2 = getColumnIndex(dsttype);
-                       char *tpe1, *tpe2, *tpe3, *tpe4, *tpe5, *tpe6;
-                       tpe1 = getTypeName(h1);
+                       char *tpe1, *tpe2, *tpe3; 
                        tpe2 = getTypeName(t1);
-                       tpe3 = getTypeName(h2);
                        tpe4 = getTypeName(t2);
-                       tpe5 = getTypeName(h3);
                        tpe6 = getTypeName(t3);
-                       mnstr_printf(GDKout, "resolved to bat[:%s,:%s] 
bat[:%s,:%s]->bat[%s:%d,%s:%d]\n",
-                                                tpe1, tpe2, tpe3, tpe4, tpe5, 
i1, tpe6, i2);
+                       mnstr_printf(GDKout, "resolved to bat[:oid,:%s] 
bat[:oid,:%s]->bat[:oid,%s:%d]\n",
+                                                tpe2, tpe4, tpe6, i2);
                        GDKfree(tpe1);
                        GDKfree(tpe2);
                        GDKfree(tpe3);
-                       GDKfree(tpe4);
-                       GDKfree(tpe5);
-                       GDKfree(tpe6);
                }
 #endif
-               return newBatType(h3, t3);
+               return newBatType(TYPE_oid, t3);
        }
 #ifdef DEBUG_MAL_RESOLVE
        if (tracefcn)
@@ -856,19 +834,16 @@ typeKind(MalBlkPtr mb, InstrPtr p, int i
 static malType
 getPolyType(malType t, int *polytype)
 {
-       int hi, ti;
-       int head, tail;
+       int ti;
+       int tail;
 
        ti = getColumnIndex(t);
        if (!isaBatType(t) && ti > 0)
                return polytype[ti];
 
        tail = ti == 0 ? getColumnType(t) : polytype[ti];
-       if (isaBatType(t)) {
-               hi = getHeadIndex(t);
-               head = hi == 0 ? getHeadType(t) : polytype[hi];
-               return newBatType(head, tail);
-       }
+       if (isaBatType(t)) 
+               return newBatType(TYPE_oid, tail);
        return tail;
 }
 
@@ -919,17 +894,6 @@ updateTypeMap(int formal, int actual, in
        if (isaBatType(formal)) {
                if (!isaBatType(actual) && actual != TYPE_bat)
                        return -1;
-               if ((h = getHeadIndex(formal))) {
-                       t = actual == TYPE_bat ? actual : getHeadType(actual);
-                       if (t != polytype[h]) {
-                               if (polytype[h] == TYPE_any)
-                                       polytype[h] = t;
-                               else {
-                                       ret = -1;
-                                       goto updLabel;
-                               }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to