Changeset: 9c7534ae6ed0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9c7534ae6ed0
Added Files:
sql/test/mergetables/Tests/mergedropcascade.sql
sql/test/mergetables/Tests/mergedropcascade.stable.err
sql/test/mergetables/Tests/mergedropcascade.stable.out
Modified Files:
clients/Tests/exports.stable.out
gdk/gdk.h
gdk/gdk_aggr.c
gdk/gdk_align.c
gdk/gdk_bat.c
gdk/gdk_batop.c
gdk/gdk_bbp.c
gdk/gdk_calc.c
gdk/gdk_calc_compare.h
gdk/gdk_cross.c
gdk/gdk_delta.c
gdk/gdk_delta.h
gdk/gdk_firstn.c
gdk/gdk_group.c
gdk/gdk_hash.c
gdk/gdk_hash.h
gdk/gdk_heap.c
gdk/gdk_imprints.c
gdk/gdk_join.c
gdk/gdk_logger.c
gdk/gdk_orderidx.c
gdk/gdk_private.h
gdk/gdk_project.c
gdk/gdk_sample.c
gdk/gdk_select.c
gdk/gdk_storage.c
gdk/gdk_unique.c
monetdb5/extras/pyapi/connection.c
monetdb5/extras/pyapi/pyapi.c
monetdb5/extras/rapi/converters.c.h
monetdb5/extras/sphinx/sphinx.c
monetdb5/mal/mal_authorize.c
monetdb5/mal/mal_debugger.c
monetdb5/mal/mal_profiler.c
monetdb5/mal/mal_resource.c
monetdb5/mal/mal_runtime.c
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/batcolor.c
monetdb5/modules/kernel/batmmath.c
monetdb5/modules/kernel/batstr.c
monetdb5/modules/kernel/status.c
monetdb5/modules/mal/manifold.c
monetdb5/modules/mal/mat.c
monetdb5/modules/mal/mkey.c
monetdb5/modules/mal/orderidx.c
monetdb5/modules/mal/pcre.c
monetdb5/modules/mal/remote.c
monetdb5/modules/mal/tablet.c
monetdb5/modules/mal/tokenizer.c
monetdb5/modules/mal/zorder.c
sql/backends/monet5/generator/generator.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql_cast_impl_down_from_int.h
sql/backends/monet5/sql_cast_impl_up_to_flt.h
sql/backends/monet5/sql_cast_impl_up_to_int.h
sql/backends/monet5/sql_fround_impl.h
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_rank.c
sql/backends/monet5/sql_round_impl.h
sql/backends/monet5/sql_statistics.c
sql/backends/monet5/vaults/bam/bam_lib.c
sql/backends/monet5/vaults/netcdf/netcdf.c
sql/storage/bat/bat_storage.c
sql/storage/bat/bat_table.c
sql/storage/store.c
sql/test/mergetables/Tests/All
Branch: jit
Log Message:
Merge with default
diffs (truncated from 10267 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
@@ -255,7 +255,7 @@ str GDKstrdup(const char *s) __attribute
str GDKstrndup(const char *s, size_t n)
__attribute__((__warn_unused_result__));
void GDKsyserror(_In_z_ _Printf_format_string_ const char *format, ...)
__attribute__((__format__(__printf__, 1, 2)));
ThreadRec GDKthreads[THREADS];
-gdk_return GDKupgradevarheap(COLrec *c, var_t v, int copyall, int mayshare);
+gdk_return GDKupgradevarheap(BAT *b, var_t v, int copyall, int mayshare);
lng GDKusec(void);
BAT *GDKval;
const char *GDKversion(void);
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -886,48 +886,58 @@ typedef struct BAT {
oid hseqbase; /* head seq base */
/* dynamic column properties */
- COLrec *T; /* column info */
+ COLrec T; /* column info */
- BATrec *S; /* the BAT properties */
+ BATrec S; /* the BAT properties */
} BAT;
typedef struct BATiter {
BAT *b;
- oid hvid, tvid;
+ oid tvid;
} BATiter;
-typedef struct BATstore BATstore;
-#define BATSTORESIZE (2 * (sizeof(BAT) + sizeof(COLrec)) + sizeof(BATrec))
-
typedef int (*GDKfcn) ();
/* macros's to hide complexity of BAT structure */
-#define batPersistence S->persistence
-#define batCopiedtodisk S->copiedtodisk
-#define batDirty S->dirty
-#define batConvert S->convert
-#define batDirtyflushed S->dirtyflushed
-#define batDirtydesc S->descdirty
-#define batFirst S->first
-#define batInserted S->inserted
-#define batDeleted S->deleted
-#define batCount S->count
-#define batCapacity S->capacity
-#define batStamp S->stamp
-#define batSharecnt S->sharecnt
-#define batRestricted S->restricted
-#define batRole S->role
-#define creator_tid S->tid
-#define ttype T->type
-#define tkey T->key
-#define tvarsized T->varsized
-#define tseqbase T->seq
-#define tsorted T->sorted
-#define trevsorted T->revsorted
-#define tdense T->dense
-#define tident T->id
-#define talign T->align
-#define torderidx T->orderidx
+#define batPersistence S.persistence
+#define batCopiedtodisk S.copiedtodisk
+#define batDirty S.dirty
+#define batConvert S.convert
+#define batDirtyflushed S.dirtyflushed
+#define batDirtydesc S.descdirty
+#define batFirst S.first
+#define batInserted S.inserted
+#define batDeleted S.deleted
+#define batCount S.count
+#define batCapacity S.capacity
+#define batStamp S.stamp
+#define batSharecnt S.sharecnt
+#define batRestricted S.restricted
+#define batRole S.role
+#define creator_tid S.tid
+#define ttype T.type
+#define tkey T.key
+#define tvarsized T.varsized
+#define tseqbase T.seq
+#define tsorted T.sorted
+#define trevsorted T.revsorted
+#define tdense T.dense
+#define tident T.id
+#define talign T.align
+#define torderidx T.orderidx
+#define twidth T.width
+#define tshift T.shift
+#define tnonil T.nonil
+#define tnil T.nil
+#define tnokey T.nokey
+#define tnosorted T.nosorted
+#define tnorevsorted T.norevsorted
+#define tnodense T.nodense
+#define theap T.heap
+#define tvheap T.vheap
+#define thash T.hash
+#define timprints T.imprints
+#define tprops T.props
@@ -1097,20 +1107,20 @@ gdk_export bte ATOMelmshift(int sz);
*/
/* NOTE: `p' is evaluated after a possible upgrade of the heap */
#if SIZEOF_VAR_T == 8
-#define HTputvalue(b, p, v, copyall, HT) \
+#define Tputvalue(b, p, v, copyall) \
do { \
- if ((b)->HT->varsized && (b)->HT->type) { \
+ if ((b)->tvarsized && (b)->ttype) { \
var_t _d; \
ptr _ptr; \
- ATOMputVAR((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))) { \
+ ATOMputVAR((b)->ttype, (b)->tvheap, &_d, v); \
+ if ((b)->twidth < SIZEOF_VAR_T && \
+ ((b)->twidth <= 2 ? _d - GDK_VAROFFSET : _d) >=
((size_t) 1 << (8 * (b)->twidth))) { \
/* doesn't fit in current heap, upgrade it */ \
- if (GDKupgradevarheap((b)->HT, _d, (copyall),
(b)->batRestricted == BAT_READ) != GDK_SUCCEED) \
+ if (GDKupgradevarheap((b), _d, (copyall),
(b)->batRestricted == BAT_READ) != GDK_SUCCEED) \
goto bunins_failed; \
} \
_ptr = (p); \
- switch ((b)->HT->width) { \
+ switch ((b)->twidth) { \
case 1: \
* (unsigned char *) _ptr = (unsigned char) (_d
- GDK_VAROFFSET); \
break; \
@@ -1125,16 +1135,16 @@ gdk_export bte ATOMelmshift(int sz);
break; \
} \
} else { \
- ATOMputFIX((b)->HT->type, (p), v); \
+ ATOMputFIX((b)->ttype, (p), v); \
} \
} while (0)
-#define HTreplacevalue(b, p, v, HT) \
+#define Treplacevalue(b, p, v) \
do { \
- if ((b)->HT->varsized && (b)->HT->type) { \
+ if ((b)->tvarsized && (b)->ttype) { \
var_t _d; \
ptr _ptr; \
_ptr = (p); \
- switch ((b)->HT->width) { \
+ switch ((b)->twidth) { \
case 1: \
_d = (var_t) * (unsigned char *) _ptr +
GDK_VAROFFSET; \
break; \
@@ -1148,15 +1158,15 @@ gdk_export bte ATOMelmshift(int sz);
_d = * (var_t *) _ptr; \
break; \
} \
- ATOMreplaceVAR((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))) { \
+ ATOMreplaceVAR((b)->ttype, (b)->tvheap, &_d, v); \
+ if ((b)->twidth < SIZEOF_VAR_T && \
+ ((b)->twidth <= 2 ? _d - GDK_VAROFFSET : _d) >=
((size_t) 1 << (8 * (b)->twidth))) { \
/* doesn't fit in current heap, upgrade it */ \
- if (GDKupgradevarheap((b)->HT, _d, 0,
(b)->batRestricted == BAT_READ) != GDK_SUCCEED) \
+ if (GDKupgradevarheap((b), _d, 0,
(b)->batRestricted == BAT_READ) != GDK_SUCCEED) \
goto bunins_failed; \
} \
_ptr = (p); \
- switch ((b)->HT->width) { \
+ switch ((b)->twidth) { \
case 1: \
* (unsigned char *) _ptr = (unsigned char) (_d
- GDK_VAROFFSET); \
break; \
@@ -1171,24 +1181,24 @@ gdk_export bte ATOMelmshift(int sz);
break; \
} \
} else { \
- ATOMreplaceFIX((b)->HT->type, (p), v); \
+ ATOMreplaceFIX((b)->ttype, (p), v); \
} \
} while (0)
#else
-#define HTputvalue(b, p, v, copyall, HT) \
+#define Tputvalue(b, p, v, copyall) \
do { \
- if ((b)->HT->varsized && (b)->HT->type) { \
+ if ((b)->tvarsized && (b)->ttype) { \
var_t _d; \
ptr _ptr; \
- ATOMputVAR((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))) { \
+ ATOMputVAR((b)->ttype, (b)->tvheap, &_d, v); \
+ if ((b)->twidth < SIZEOF_VAR_T && \
+ ((b)->twidth <= 2 ? _d - GDK_VAROFFSET : _d) >=
((size_t) 1 << (8 * (b)->twidth))) { \
/* doesn't fit in current heap, upgrade it */ \
- if (GDKupgradevarheap((b)->HT, _d, (copyall),
(b)->batRestricted == BAT_READ) != GDK_SUCCEED) \
+ if (GDKupgradevarheap((b), _d, (copyall),
(b)->batRestricted == BAT_READ) != GDK_SUCCEED) \
goto bunins_failed; \
} \
_ptr = (p); \
- switch ((b)->HT->width) { \
+ switch ((b)->twidth) { \
case 1: \
* (unsigned char *) _ptr = (unsigned char) (_d
- GDK_VAROFFSET); \
break; \
@@ -1200,16 +1210,16 @@ gdk_export bte ATOMelmshift(int sz);
break; \
} \
} else { \
- ATOMputFIX((b)->HT->type, (p), v); \
+ ATOMputFIX((b)->ttype, (p), v); \
} \
} while (0)
-#define HTreplacevalue(b, p, v, HT) \
+#define Treplacevalue(b, p, v) \
do { \
- if ((b)->HT->varsized && (b)->HT->type) { \
+ if ((b)->tvarsized && (b)->ttype) { \
var_t _d; \
ptr _ptr; \
_ptr = (p); \
- switch ((b)->HT->width) { \
+ switch ((b)->twidth) { \
case 1: \
_d = (var_t) * (unsigned char *) _ptr +
GDK_VAROFFSET; \
break; \
@@ -1220,15 +1230,15 @@ gdk_export bte ATOMelmshift(int sz);
_d = * (var_t *) _ptr; \
break; \
} \
- ATOMreplaceVAR((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))) { \
+ ATOMreplaceVAR((b)->ttype, (b)->tvheap, &_d, v); \
+ if ((b)->twidth < SIZEOF_VAR_T && \
+ ((b)->twidth <= 2 ? _d - GDK_VAROFFSET : _d) >=
((size_t) 1 << (8 * (b)->twidth))) { \
/* doesn't fit in current heap, upgrade it */ \
- if (GDKupgradevarheap((b)->HT, _d, 0,
(b)->batRestricted == BAT_READ) != GDK_SUCCEED) \
+ if (GDKupgradevarheap((b), _d, 0,
(b)->batRestricted == BAT_READ) != GDK_SUCCEED) \
goto bunins_failed; \
} \
_ptr = (p); \
- switch ((b)->HT->width) { \
+ switch ((b)->twidth) { \
case 1: \
* (unsigned char *) _ptr = (unsigned char) (_d
- GDK_VAROFFSET); \
break; \
@@ -1240,19 +1250,16 @@ gdk_export bte ATOMelmshift(int sz);
break; \
} \
} else { \
- ATOMreplaceFIX((b)->HT->type, (p), v); \
+ ATOMreplaceFIX((b)->ttype, (p), v); \
} \
} while (0)
#endif
-#define Tputvalue(b, p, v, copyall) HTputvalue(b, p, v, copyall, T)
-#define Treplacevalue(b, p, v) HTreplacevalue(b, p, v, T)
-#define HTfastins_nocheck(b, p, v, s, HT) \
- do { \
- (b)->HT->heap.free += (s); \
- (b)->HT->heap.dirty |= (s) != 0; \
- HTputvalue((b), HT##loc((b), (p)), (v), 0, HT); \
+#define tfastins_nocheck(b, p, v, s) \
+ do { \
+ (b)->theap.free += (s); \
+ (b)->theap.dirty |= (s) != 0; \
+ Tputvalue((b), Tloc((b), (p)), (v), 0); \
} while (0)
-#define tfastins_nocheck(b, p, v, s) HTfastins_nocheck(b, p, v, s, T)
#define bunfastapp_nocheck(b, p, t, ts) \
do { \
@@ -1280,7 +1287,7 @@ gdk_export bte ATOMelmshift(int sz);
bunfastapp_nocheck(b, _p, t, Tsize(b)); \
} while (0)
-gdk_export gdk_return GDKupgradevarheap(COLrec *c, var_t v, int copyall, int
mayshare);
+gdk_export gdk_return GDKupgradevarheap(BAT *b, var_t v, int copyall, int
mayshare);
gdk_export gdk_return BUNappend(BAT *b, const void *right, bit force);
gdk_export gdk_return BATappend(BAT *b, BAT *c, bit force);
@@ -1311,13 +1318,13 @@ gdk_export BUN BUNfnd(BAT *b, const void
#define BATttype(b) ((b)->ttype == TYPE_void && (b)->tseqbase != oid_nil ? \
TYPE_oid : (b)->ttype)
-#define Tbase(b) ((b)->T->vheap->base)
+#define Tbase(b) ((b)->tvheap->base)
-#define Tsize(b) ((b)->T->width)
+#define Tsize(b) ((b)->twidth)
-#define tailsize(b,p) ((b)->ttype?((size_t)(p))<<(b)->T->shift:0)
+#define tailsize(b,p) ((b)->ttype?((size_t)(p))<<(b)->tshift:0)
-#define Tloc(b,p) ((b)->T->heap.base+((p)<<(b)->T->shift))
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list