Changeset: a2b1a32d59fb for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a2b1a32d59fb
Modified Files:
        clients/Tests/exports.stable.out
        gdk/gdk.h
        gdk/gdk_atoms.mx
        gdk/gdk_bat.c
        gdk/gdk_bat.h
        gdk/gdk_batop.mx
        gdk/gdk_bbp.mx
        gdk/gdk_delta.c
        gdk/gdk_heap.c
        gdk/gdk_logger.c
        gdk/gdk_private.h
        gdk/gdk_scanselect.mx
        gdk/gdk_scanselect_defs.mx
        gdk/gdk_search.mx
        gdk/gdk_storage.c
        gdk/gdk_utils.c
        gdk/gdk_value.c
        monetdb5/extras/crackers/crackers_joins.mx
        monetdb5/extras/crackers/crackers_select_ops.mx
        monetdb5/extras/crackers/crackers_sideways.mx
        monetdb5/extras/crackers/crackers_sortmerge.mx
        monetdb5/mal/mal_atom.c
        monetdb5/modules/kernel/group.mx
        monetdb5/modules/mal/mkey.c
Branch: sciql
Log Message:

Merge with default branch


diffs (truncated from 2674 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
@@ -9,19 +9,19 @@ stdout of test 'exports` in directory '.
 int ALIGNsetH(BAT *b1, BAT *b2);
 int ALIGNsynced(BAT *b1, BAT *b2);
 int ATOMcmp(int id, const void *v_1, const void *v_2);
-ptr ATOMdup(int id, ptr val);
+ptr ATOMdup(int id, const void *val);
 bte ATOMelmshift(int sz);
-int ATOMformat(int id, ptr val, char **buf);
+int ATOMformat(int id, const void *val, char **buf);
 int ATOMindex(char *nme);
-int ATOMlen(int id, ptr v);
+int ATOMlen(int id, const void *v);
 str ATOMname(int id);
 ptr ATOMnil(int id);
-int ATOMprint(int id, ptr val, stream *fd);
+int ATOMprint(int id, const void *val, stream *fd);
 void ATOMproperty(char *nme, char *property, GDKfcn fcn, int val);
 size_t BATaccess(BAT *b, int what, int advice, int load);
 BAT *BATalpha(BAT *b);
 BAT *BATantijoin(BAT *l, BAT *r);
-BAT *BATantiuselect_(BAT *b, ptr tl, ptr th, bit li, bit hi);
+BAT *BATantiuselect_(BAT *b, const void *tl, const void *th, bit li, bit hi);
 BAT *BATappend(BAT *b, BAT *c, bit force);
 void BATassertProps(BAT *b);
 atomDesc BATatoms[];
@@ -93,7 +93,7 @@ BAT *BATcalcxor(BAT *b1, BAT *b2, int ac
 BAT *BATcalcxorcst(BAT *b, const ValRecord *v, int accum);
 BAT *BATclear(BAT *b);
 BAT *BATcommit(BAT *b);
-BAT *BATconst(BAT *l, int tt, ptr val);
+BAT *BATconst(BAT *l, int tt, const void *val);
 BAT *BATconvert(BAT *b, int tp, int abort_on_error);
 BAT *BATcopy(BAT *b, int ht, int tt, int writeable);
 BUN BATcount(BAT *b);
@@ -150,14 +150,14 @@ int BATprintf(stream *f, BAT *b);
 BAT *BATrangejoin(BAT *l, BAT *rl, BAT *rh, bit li, bit hi);
 BAT *BATrangesplit(BAT *b, BUN n, int unary);
 BAT *BATreplace(BAT *b, BAT *n, bit force);
-BAT *BATrestrict(BAT *b, ptr hl, ptr hh, ptr tl, ptr th);
+BAT *BATrestrict(BAT *b, const void *hl, const void *hh, const void *tl, const 
void *th);
 BAT *BATrevert(BAT *b);
 BAT *BATroles(BAT *b, const char *hnme, const char *tnme);
 BAT *BATsample(BAT *b, BUN n);
 BAT *BATsave(BAT *b);
 BAT *BATsdiff(BAT *b, BAT *c);
-BAT *BATselect(BAT *b, ptr tl, ptr th);
-BAT *BATselect_(BAT *b, ptr tl, ptr th, bit li, bit hi);
+BAT *BATselect(BAT *b, const void *tl, const void *th);
+BAT *BATselect_(BAT *b, const void *tl, const void *th, bit li, bit hi);
 BAT *BATsemijoin(BAT *l, BAT *r);
 BAT *BATseqbase(BAT *b, oid o);
 BAT *BATset(BAT *b, int onoff);
@@ -176,8 +176,8 @@ BAT *BATsunique(BAT *b);
 BAT *BATthetajoin(BAT *l, BAT *r, int mode, BUN estimate);
 int BATtopN(BAT *b, BUN topN);
 BAT *BATundo(BAT *b);
-BAT *BATuselect(BAT *b, ptr tl, ptr th);
-BAT *BATuselect_(BAT *b, ptr tl, ptr th, bit li, bit hi);
+BAT *BATuselect(BAT *b, const void *tl, const void *th);
+BAT *BATuselect_(BAT *b, const void *tl, const void *th, bit li, bit hi);
 BBPrec *BBP;
 int BBP_curstamp;
 void BBPclear(bat bid);
@@ -207,16 +207,16 @@ void BBPshare(bat b);
 int BBPsize;
 int BBPsync(int cnt, bat *subcommit);
 void BBPunlock(const char *s);
-BAT *BUNappend(BAT *b, ptr right, bit force);
-BAT *BUNdel(BAT *b, ptr left, ptr right, bit force);
-BAT *BUNdelHead(BAT *b, ptr left, bit force);
+BAT *BUNappend(BAT *b, const void *right, bit force);
+BAT *BUNdel(BAT *b, const void *left, const void *right, bit force);
+BAT *BUNdelHead(BAT *b, const void *left, bit force);
 BUN BUNdelete(BAT *b, BUN p, bit force);
-BAT *BUNfastins(BAT *b, ptr left, ptr right);
-BUN BUNfnd(BAT *b, ptr left);
-BAT *BUNinplace(BAT *b, BUN p, ptr left, ptr right, bit force);
-BAT *BUNins(BAT *b, ptr left, ptr right, bit force);
-BUN BUNlocate(BAT *b, ptr left, ptr right);
-BAT *BUNreplace(BAT *b, ptr left, ptr right, bit force);
+BAT *BUNfastins(BAT *b, const void *left, const void *right);
+BUN BUNfnd(BAT *b, const void *left);
+BAT *BUNinplace(BAT *b, BUN p, const void *left, const void *right, bit force);
+BAT *BUNins(BAT *b, const void *left, const void *right, bit force);
+BUN BUNlocate(BAT *b, const void *left, const void *right);
+BAT *BUNreplace(BAT *b, const void *left, const void *right, bit force);
 size_t GDK_mem_bigsize;
 size_t GDK_mem_maxsize;
 int GDK_mem_pagebits;
@@ -261,7 +261,7 @@ size_t GDKvm_heapsize(void);
 void *GDKzalloc(size_t size);
 void HASHdestroy(BAT *b);
 BUN HASHlist(Hash *h, BUN i);
-BUN HASHprobe(Hash *h, ptr v);
+BUN HASHprobe(Hash *h, const void *v);
 void HASHremove(BAT *b);
 void HEAP_free(Heap *heap, var_t block);
 void HEAP_initialize(Heap *heap, size_t nbytes, size_t nprivate, int 
alignment);
@@ -299,30 +299,9 @@ int OIDfromStr(const char *src, int *len
 oid OIDnew(oid inc);
 int OIDtoStr(str *dst, int *len, const oid *src);
 void PROPdestroy(PROPrec *p);
-BUN SORTfnd_bte(BAT *b, ptr v);
-BUN SORTfnd_dbl(BAT *b, ptr v);
-BUN SORTfnd_flt(BAT *b, ptr v);
-BUN SORTfnd_int(BAT *b, ptr v);
-BUN SORTfnd_lng(BAT *b, ptr v);
-BUN SORTfnd_loc(BAT *b, ptr v);
-BUN SORTfnd_sht(BAT *b, ptr v);
-BUN SORTfnd_var(BAT *b, ptr v);
-BUN SORTfndfirst_bte(BAT *b, ptr v);
-BUN SORTfndfirst_dbl(BAT *b, ptr v);
-BUN SORTfndfirst_flt(BAT *b, ptr v);
-BUN SORTfndfirst_int(BAT *b, ptr v);
-BUN SORTfndfirst_lng(BAT *b, ptr v);
-BUN SORTfndfirst_loc(BAT *b, ptr v);
-BUN SORTfndfirst_sht(BAT *b, ptr v);
-BUN SORTfndfirst_var(BAT *b, ptr v);
-BUN SORTfndlast_bte(BAT *b, ptr v);
-BUN SORTfndlast_dbl(BAT *b, ptr v);
-BUN SORTfndlast_flt(BAT *b, ptr v);
-BUN SORTfndlast_int(BAT *b, ptr v);
-BUN SORTfndlast_lng(BAT *b, ptr v);
-BUN SORTfndlast_loc(BAT *b, ptr v);
-BUN SORTfndlast_sht(BAT *b, ptr v);
-BUN SORTfndlast_var(BAT *b, ptr v);
+BUN SORTfnd(BAT *b, const void *v);
+BUN SORTfndfirst(BAT *b, const void *v);
+BUN SORTfndlast(BAT *b, const void *v);
 void *THRdata[16];
 void THRdel(Thread t);
 Thread THRget(int tid);
@@ -343,7 +322,7 @@ ValPtr VALcopy(ValPtr dst, ValPtr src);
 void VALempty(ValPtr v);
 int VALformat(char **buf, ValPtr res);
 void *VALget(ValPtr v);
-ValPtr VALinit(ValPtr d, int tpe, ptr s);
+ValPtr VALinit(ValPtr d, int tpe, const void *s);
 ValPtr VALset(ValPtr v, int t, ptr p);
 int VARcalcabsolute(ValPtr ret, const ValRecord *v);
 int VARcalcadd(ValPtr ret, const ValRecord *lft, const ValRecord *rgt, int 
abort_on_error);
@@ -487,7 +466,7 @@ int strLen(const char *s);
 int strNil(const char *s);
 int strToStr(str *dst, int *len, const char *src);
 const char str_nil[2];
-int void_inplace(BAT *b, oid id, ptr val, bit force);
+int void_inplace(BAT *b, oid id, const void *val, bit force);
 BUN void_replace_bat(BAT *b, BAT *u, bit force);
 int *win_errno(void);
 int win_mkdir(const char *, const int mode);
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -708,7 +708,7 @@ typedef struct {
 gdk_export ptr VALconvert(int typ, ValPtr t);
 gdk_export int VALformat(char **buf, ValPtr res);
 gdk_export ValPtr VALcopy(ValPtr dst, ValPtr src);
-gdk_export ValPtr VALinit(ValPtr d, int tpe, ptr s);
+gdk_export ValPtr VALinit(ValPtr d, int tpe, const void *s);
 gdk_export void VALempty(ValPtr v);
 gdk_export void VALclear(ValPtr v);
 gdk_export ValPtr VALset(ValPtr v, int t, ptr p);
@@ -1142,21 +1142,21 @@ gdk_export bte  ATOMelmshift(int sz);
  * @end itemize
  */
 /* NOTE: `p' is evaluated after a possible upgrade of the heap */
-#define Hputvalue(b, p, v, copyall)                                    \
+#define HTputvalue(b, p, v, copyall, HT)                               \
        do {                                                            \
-               if ((b)->hvarsized && (b)->htype) {                     \
+               if ((b)->HT->varsized && (b)->HT->type) {               \
                        var_t _d;                                       \
                        ptr _ptr;                                       \
-                       ATOMput((b)->htype, (b)->H->vheap, &_d, v);     \
-                       if ((b)->H->width < SIZEOF_VAR_T &&             \
-                           ((b)->H->width <= 2 ? _d - GDK_VAROFFSET : _d) >= 
((size_t) 1 << (8 * (b)->H->width))) { \
+                       ATOMput((b)->HT->type, (b)->HT->vheap, &_d, v); \
+                       if ((b)->HT->width < SIZEOF_VAR_T &&            \
+                           ((b)->HT->width <= 2 ? _d - GDK_VAROFFSET : _d) >= 
((size_t) 1 << (8 * (b)->HT->width))) { \
                                /* doesn't fit in current heap, upgrade it */ \
                                BATaccessBegin(b, USE_HEAD, MMAP_SEQUENTIAL); \
-                               GDKupgradevarheap((b)->H, _d, (copyall)); \
+                               GDKupgradevarheap((b)->HT, _d, (copyall)); \
                                BATaccessEnd(b, USE_HEAD, MMAP_SEQUENTIAL); \
                        }                                               \
                        _ptr = (p);                                     \
-                       switch ((b)->H->width) {                        \
+                       switch ((b)->HT->width) {                       \
                        case 1:                                         \
                                * (unsigned char *) _ptr = (unsigned char) (_d 
- GDK_VAROFFSET); \
                                break;                                  \
@@ -1171,23 +1171,38 @@ gdk_export bte  ATOMelmshift(int sz);
                                break;                                  \
                        }                                               \
                } else                                                  \
-                       ATOMput((b)->htype, (b)->H->vheap, (p), v);     \
+                       ATOMput((b)->HT->type, (b)->HT->vheap, (p), v); \
        } while (0)
-#define Tputvalue(b, p, v, copyall)                                    \
+#define Hputvalue(b, p, v, copyall)    HTputvalue(b, p, v, copyall, H)
+#define Tputvalue(b, p, v, copyall)    HTputvalue(b, p, v, copyall, T)
+#define HTreplacevalue(b, p, v, HT)                                    \
        do {                                                            \
-               if ((b)->tvarsized && (b)->ttype) {                     \
+               if ((b)->HT->varsized && (b)->HT->type) {               \
                        var_t _d;                                       \
                        ptr _ptr;                                       \
-                       ATOMput((b)->ttype, (b)->T->vheap, &_d, v);     \
-                       if ((b)->T->width < SIZEOF_VAR_T &&             \
-                           ((b)->T->width <= 2 ? _d - GDK_VAROFFSET : _d) >= 
((size_t) 1 << (8 * (b)->T->width))) { \
+                       _ptr = (p);                                     \
+                       switch ((b)->HT->width) {                       \
+                       case 1:                                         \
+                               _d = (var_t) * (unsigned char *) _ptr + 
GDK_VAROFFSET; \
+                               break;                                  \
+                       case 2:                                         \
+                               _d = (var_t) * (unsigned short *) _ptr + 
GDK_VAROFFSET; \
+                               break;                                  \
+                       case 4:                                         \
+                               _d = (var_t) * (unsigned int *) _ptr;   \
+                               break;                                  \
+                       case 8:                                         \
+                               _d = * (var_t *) _ptr;                  \
+                               break;                                  \
+                       }                                               \
+                       ATOMreplace((b)->HT->type, (b)->HT->vheap, &_d, v); \
+                       if ((b)->HT->width < SIZEOF_VAR_T &&            \
+                           ((b)->HT->width <= 2 ? _d - GDK_VAROFFSET : _d) >= 
((size_t) 1 << (8 * (b)->HT->width))) { \
                                /* doesn't fit in current heap, upgrade it */ \
-                               BATaccessBegin(b, USE_TAIL, MMAP_SEQUENTIAL); \
-                               GDKupgradevarheap((b)->T, _d, (copyall)); \
-                               BATaccessEnd(b, USE_TAIL, MMAP_SEQUENTIAL); \
+                               GDKupgradevarheap((b)->HT, _d, 0);      \
                        }                                               \
                        _ptr = (p);                                     \
-                       switch ((b)->T->width) {                        \
+                       switch ((b)->HT->width) {                       \
                        case 1:                                         \
                                * (unsigned char *) _ptr = (unsigned char) (_d 
- GDK_VAROFFSET); \
                                break;                                  \
@@ -1202,120 +1217,32 @@ gdk_export bte         ATOMelmshift(int sz);
                                break;                                  \
                        }                                               \
                } else                                                  \
-                       ATOMput((b)->ttype, (b)->T->vheap, (p), v);     \
+                       ATOMreplace((b)->HT->type, (b)->HT->vheap, (p), v); \
        } while (0)
-#define Hreplacevalue(b, p, v)                                         \
-       do {                                                            \
-               if ((b)->hvarsized && (b)->htype) {                     \
-                       var_t _d;                                       \
-                       ptr _ptr;                                       \
-                       _ptr = (p);                                     \
-                       switch ((b)->H->width) {                        \
-                       case 1:                                         \
-                               _d = (var_t) * (unsigned char *) _ptr + 
GDK_VAROFFSET; \
-                               break;                                  \
-                       case 2:                                         \
-                               _d = (var_t) * (unsigned short *) _ptr + 
GDK_VAROFFSET; \
-                               break;                                  \
-                       case 4:                                         \
-                               _d = (var_t) * (unsigned int *) _ptr;   \
-                               break;                                  \
-                       case 8:                                         \
-                               _d = * (var_t *) _ptr;                  \
-                               break;                                  \
-                       }                                               \
-                       ATOMreplace((b)->htype, (b)->H->vheap, &_d, v); \
-                       if ((b)->H->width < SIZEOF_VAR_T &&             \
-                           ((b)->H->width <= 2 ? _d - GDK_VAROFFSET : _d) >= 
((size_t) 1 << (8 * (b)->H->width))) { \
-                               /* doesn't fit in current heap, upgrade it */ \
-                               GDKupgradevarheap((b)->H, _d, 0);       \
-                       }                                               \
-                       _ptr = (p);                                     \
-                       switch ((b)->H->width) {                        \
-                       case 1:                                         \
-                               * (unsigned char *) _ptr = (unsigned char) (_d 
- GDK_VAROFFSET); \
-                               break;                                  \
-                       case 2:                                         \
-                               * (unsigned short *) _ptr = (unsigned short) 
(_d - GDK_VAROFFSET); \
-                               break;                                  \
-                       case 4:                                         \
-                               * (unsigned int *) _ptr = (unsigned int) _d; \
-                               break;                                  \
-                       case 8:                                         \
-                               * (var_t *) _ptr = _d;                  \
-                               break;                                  \
-                       }                                               \
-               } else                                                  \
-                       ATOMreplace((b)->htype, (b)->H->vheap, (p), v); \
+#define Hreplacevalue(b, p, v)         HTreplacevalue(b, p, v, H)
+#define Treplacevalue(b, p, v)         HTreplacevalue(b, p, v, T)
+#define HTfastins_nocheck(b, p, v, s, HT)                      \
+       do {                                                    \
+               assert((b)->HT->width == (s));                  \
+               (b)->HT->heap.free += (s);                      \
+               HTputvalue((b), HT##loc((b), (p)), (v), 0, HT); \
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to