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
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list