Changeset: 58dd837464b7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=58dd837464b7
Modified Files:
        clients/Tests/All
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        gdk/ChangeLog
        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_cross.c
        gdk/gdk_delta.c
        gdk/gdk_delta.h
        gdk/gdk_firstn.c
        gdk/gdk_group.c
        gdk/gdk_hash.c
        gdk/gdk_imprints.c
        gdk/gdk_join.c
        gdk/gdk_logger.c
        gdk/gdk_private.h
        gdk/gdk_project.c
        gdk/gdk_sample.c
        gdk/gdk_select.c
        gdk/gdk_storage.c
        geom/monetdb5/geom.c
        geom/monetdb5/geomBulk.c
        monetdb5/ChangeLog
        monetdb5/mal/Tests/tst202.malC
        monetdb5/mal/Tests/tst210.malC
        monetdb5/mal/Tests/tst275.stable.out
        monetdb5/mal/mal_authorize.c
        monetdb5/modules/kernel/algebra.c
        monetdb5/modules/kernel/bat5.c
        monetdb5/modules/kernel/bat5.h
        monetdb5/modules/kernel/bat5.mal
        monetdb5/modules/kernel/status.c
        monetdb5/modules/mal/Tests/inspect05.stable.out
        monetdb5/modules/mal/Tests/inspect05.stable.out.int128
        monetdb5/modules/mal/batcalc.c
        monetdb5/modules/mal/bbp.c
        monetdb5/modules/mal/clients.c
        monetdb5/modules/mal/inspect.c
        monetdb5/modules/mal/mal_io.c
        monetdb5/modules/mal/mat.c
        monetdb5/modules/mal/mdb.c
        monetdb5/modules/mal/mkey.c
        monetdb5/modules/mal/orderidx.c
        monetdb5/modules/mal/pcre.c
        monetdb5/modules/mal/projectionpath.c
        monetdb5/modules/mal/tablet.c
        monetdb5/optimizer/opt_pushselect.c
        monetdb5/optimizer/opt_support.c
        sql/backends/monet5/LSST/lsst.c
        sql/backends/monet5/UDF/udf.c
        sql/backends/monet5/gsl/gsl.c
        sql/backends/monet5/sql_fround_impl.h
        sql/backends/monet5/sql_round_impl.h
        sql/backends/monet5/vaults/fits/fits.c
        sql/backends/monet5/vaults/lidar/lidar.c
        sql/server/rel_partition.c
        sql/storage/bat/bat_storage.c
        sql/storage/bat/bat_table.c
        sql/storage/bat/bat_utils.c
Branch: jit
Log Message:

Merge with HEADLESS


diffs (truncated from 3647 to 300 lines):

diff --git a/clients/Tests/All b/clients/Tests/All
--- a/clients/Tests/All
+++ b/clients/Tests/All
@@ -1,4 +1,4 @@
 exports
-HAVE_FITS&HAVE_GEOM&HAVE_GSL&HAVE_LIBR&!HAVE_LIDAR&HAVE_NETCDF&HAVE_SAMTOOLS&HAVE_SHP&HAVE_SPHINXCLIENT?MAL-signatures
+HAVE_FITS&HAVE_GEOM&HAVE_GSL&HAVE_LIBPY&HAVE_LIBR&!HAVE_LIDAR&HAVE_NETCDF&HAVE_SAMTOOLS&HAVE_SHP&HAVE_SPHINXCLIENT?MAL-signatures
 
!BITS32&!BITS64OID32&HAVE_FITS&HAVE_GEOM&HAVE_GSL&!HAVE_LIDAR&HAVE_NETCDF&HAVE_PCRE&HAVE_SHP&HAVE_SAMTOOLS?SQL-dump
 MERCURIAL?malcheck
diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -24024,18 +24024,10 @@ command bat.setTransient(b:bat[:any_1]):
 address BKCsetTransient;
 comment Make the BAT transient.  Returns       boolean which indicates if 
theBAT administration has indeed changed.
 
-command bat.setColumn(b:bat[:any_1],h:str,t:str):void 
-address BKCsetColumns;
-comment Give both columns of a BAT a new name.
-
 command bat.setColumn(b:bat[:any_1],t:str):void 
 address BKCsetColumn;
 comment Give a logical name to the tail column of a BAT.
 
-command bat.setRole(b:bat[:any_1],h:str,t:str):void 
-address BKCsetRole;
-comment Give a logical name to the columns of a BAT.
-
 command bat.setName(b:bat[:any_1],s:str):void 
 address BKCsetName;
 comment Give a logical name to a BAT. 
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -31883,18 +31883,10 @@ command bat.setTransient(b:bat[:any_1]):
 address BKCsetTransient;
 comment Make the BAT transient.  Returns       boolean which indicates if 
theBAT administration has indeed changed.
 
-command bat.setColumn(b:bat[:any_1],h:str,t:str):void 
-address BKCsetColumns;
-comment Give both columns of a BAT a new name.
-
 command bat.setColumn(b:bat[:any_1],t:str):void 
 address BKCsetColumn;
 comment Give a logical name to the tail column of a BAT.
 
-command bat.setRole(b:bat[:any_1],h:str,t:str):void 
-address BKCsetRole;
-comment Give a logical name to the columns of a BAT.
-
 command bat.setName(b:bat[:any_1],s:str):void 
 address BKCsetName;
 comment Give a logical name to a BAT. 
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
@@ -158,7 +158,7 @@ BAT *BATproject(BAT *l, BAT *r);
 BAT *BATprojectchain(BAT **bats);
 gdk_return BATrangejoin(BAT **r1p, BAT **r2p, BAT *l, BAT *rl, BAT *rh, BAT 
*sl, BAT *sr, int li, int hi, BUN estimate);
 gdk_return BATreplace(BAT *b, BAT *p, BAT *n, bit force);
-void BATroles(BAT *b, const char *hnme, const char *tnme);
+void BATroles(BAT *b, const char *tnme);
 BAT *BATsample(BAT *b, BUN n);
 gdk_return BATsave(BAT *b);
 BAT *BATselect(BAT *b, BAT *s, const void *tl, const void *th, int li, int hi, 
int anti);
@@ -807,12 +807,10 @@ str BKCsave(bit *res, const char *const 
 str BKCsave2(void *r, const bat *bid);
 str BKCsetAccess(bat *res, const bat *bid, const char *const *param);
 str BKCsetColumn(void *r, const bat *bid, const char *const *tname);
-str BKCsetColumns(void *r, const bat *bid, const char *const *hname, const 
char *const *tname);
 str BKCsetHash(bit *ret, const bat *bid);
 str BKCsetImprints(bit *ret, const bat *bid);
 str BKCsetName(void *r, const bat *bid, const char *const *s);
 str BKCsetPersistent(void *r, const bat *bid);
-char *BKCsetRole(void *r, const bat *bid, const char *const *hname, const char 
*const *tname);
 str BKCsetTransient(void *r, const bat *bid);
 str BKCsetkey(bat *res, const bat *bid, const bit *param);
 str BKCshrinkBAT(bat *ret, const bat *bid, const bat *did);
diff --git a/gdk/ChangeLog b/gdk/ChangeLog
--- a/gdk/ChangeLog
+++ b/gdk/ChangeLog
@@ -1,6 +1,14 @@
 # ChangeLog file for MonetDB
 # This file is updated with Maddlog
 
+* Wed Jun 29 2016 Sjoerd Mullender <sjo...@acm.org>
+- Changed BATroles by removing the argument to set the name of the
+  head column.
+- The head column is now completely gone.  MonetDB is completely
+  "headless".
+- The format of the BBP.dir file was simplified.  Since the head column
+  is VOID, the only value that needs to be stored is the head seqbase.
+
 * Tue Jun 28 2016 Sjoerd Mullender <sjo...@acm.org>
 - BATs now only have a single (logical) name.
 - The function BATmirror is gone.  The HEAD column is always VOID (with
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -781,20 +781,6 @@ gdk_export int VALisnil(const ValRecord 
  *           BUN    batFirst;         // empty BUN before the first alive BUN
  *           BUN    batInserted;      // first inserted BUN
  *           BUN    batCount;         // Tuple count
- *           // Head properties
- *           int    htype;            // Head type number
- *           str    hident;           // name for head column
- *           bit    hkey;             // head values should be unique?
- *           bit    hsorted;          // are head values currently ordered?
- *           bit    hvarsized;        // for speed: head type is varsized?
- *           bit    hnonil;           // head has no nils
- *           oid    halign;           // alignment OID for head.
- *           // Head storage
- *           int    hloc;             // byte-offset in BUN for head elements
- *           Heap   *hheap;           // heap for varsized head values
- *           Hash   *hhash;           // linear chained hash table on head
- *           Imprints *himprints;     // column imprints index on head
- *           orderidx horderidx;      // order oid index on head
  *           // Tail properties
  *           int    ttype;            // Tail type number
  *           str    tident;           // name for tail column
@@ -891,14 +877,15 @@ typedef struct {
 #define GDKLIBRARY_SORTEDPOS   061030  /* version where we can't trust 
no(rev)sorted */
 #define GDKLIBRARY_OLDWKB      061031  /* old geom WKB format */
 #define GDKLIBRARY_INSERTED    061032  /* inserted and deleted in BBP.dir */
-#define GDKLIBRARY             061033
+#define GDKLIBRARY_HEADED      061033  /* head properties are stored */
+#define GDKLIBRARY             061034
 
 typedef struct BAT {
        /* static bat properties */
        bat batCacheid;         /* index into BBP */
+       oid hseqbase;           /* head seq base */
 
        /* dynamic column properties */
-       COLrec *H;              /* column info */
        COLrec *T;              /* column info */
 
        BATrec *S;              /* the BAT properties */
@@ -931,25 +918,15 @@ typedef int (*GDKfcn) ();
 #define batRestricted  S->restricted
 #define batRole                S->role
 #define creator_tid    S->tid
-#define htype          H->type
 #define ttype          T->type
-#define hkey           H->key
 #define tkey           T->key
-#define hvarsized      H->varsized
 #define tvarsized      T->varsized
-#define hseqbase       H->seq
 #define tseqbase       T->seq
-#define hsorted                H->sorted
-#define hrevsorted     H->revsorted
 #define tsorted                T->sorted
 #define trevsorted     T->revsorted
-#define hdense         H->dense
 #define tdense         T->dense
-#define hident         H->id
 #define tident         T->id
-#define halign         H->align
 #define talign         T->align
-#define horderidx      H->orderidx
 #define torderidx      T->orderidx
 
 
@@ -1292,7 +1269,6 @@ gdk_export bte ATOMelmshift(int sz);
 #define bunfastapp(b, t)                                               \
        do {                                                            \
                register BUN _p = BUNlast(b);                           \
-               assert((b)->htype == TYPE_void);                        \
                if (_p >= BATcapacity(b)) {                             \
                        if (_p == BUN_MAX || BATcount(b) == BUN_MAX) {  \
                                GDKerror("bunfastapp: too many elements to 
accomodate (" BUNFMT ")\n", BUN_MAX); \
@@ -1333,8 +1309,6 @@ gdk_export BUN BUNfnd(BAT *b, const void
         BUN_NONE :                                                     \
         BUNfirst((b)) + (BUN) (*(const oid*)(v) - (b)->tseqbase))
 
-#define BAThtype(b)    ((b)->htype == TYPE_void && (b)->hseqbase != oid_nil ? \
-                        TYPE_oid : (b)->htype)
 #define BATttype(b)    ((b)->ttype == TYPE_void && (b)->tseqbase != oid_nil ? \
                         TYPE_oid : (b)->ttype)
 #define Tbase(b)       ((b)->T->vheap->base)
@@ -1471,7 +1445,7 @@ gdk_export void BATsetcount(BAT *b, BUN 
 gdk_export BUN BATgrows(BAT *b);
 gdk_export gdk_return BATkey(BAT *b, int onoff);
 gdk_export gdk_return BATmode(BAT *b, int onoff);
-gdk_export void BATroles(BAT *b, const char *hnme, const char *tnme);
+gdk_export void BATroles(BAT *b, const char *tnme);
 gdk_export int BATname(BAT *b, const char *nme);
 gdk_export void BAThseqbase(BAT *b, oid o);
 gdk_export void BATtseqbase(BAT *b, oid o);
@@ -1481,7 +1455,7 @@ gdk_export int BATgetaccess(BAT *b);
 
 #define BATdirty(b)    ((b)->batCopiedtodisk == 0 || (b)->batDirty ||  \
                         (b)->batDirtydesc ||                           \
-                        (b)->H->heap.dirty || (b)->T->heap.dirty ||    \
+                        (b)->T->heap.dirty ||                          \
                         ((b)->T->vheap?(b)->T->vheap->dirty:0))
 
 #define PERSISTENT             0
@@ -1599,15 +1573,10 @@ gdk_export gdk_return BATsort(BAT **sort
 gdk_export void GDKqsort(void *h, void *t, const void *base, size_t n, int hs, 
int ts, int tpe);
 gdk_export void GDKqsort_rev(void *h, void *t, const void *base, size_t n, int 
hs, int ts, int tpe);
 
-#define BAThordered(b) ((b)->htype == TYPE_void || (b)->hsorted)
 #define BATtordered(b) ((b)->ttype == TYPE_void || (b)->tsorted)
-#define BAThrevordered(b) (((b)->htype == TYPE_void && (b)->hseqbase == 
oid_nil) || (b)->hrevsorted)
 #define BATtrevordered(b) (((b)->ttype == TYPE_void && (b)->tseqbase == 
oid_nil) || (b)->trevsorted)
-#define BAThdense(b)   (BAThvoid(b) && (b)->hseqbase != oid_nil)
 #define BATtdense(b)   (BATtvoid(b) && (b)->tseqbase != oid_nil)
-#define BAThvoid(b)    (((b)->hdense && (b)->hsorted) || (b)->htype==TYPE_void)
 #define BATtvoid(b)    (((b)->tdense && (b)->tsorted) || (b)->ttype==TYPE_void)
-#define BAThkey(b)     (b->hkey != FALSE || BAThdense(b))
 #define BATtkey(b)     (b->tkey != FALSE || BATtdense(b))
 
 /* set some properties that are trivial to deduce */
@@ -1663,10 +1632,8 @@ gdk_export void GDKqsort_rev(void *h, vo
        } while (0)
 #define BATsettrivprop(b)                                              \
        do {                                                            \
-               assert((b)->htype == TYPE_void);                        \
                assert((b)->hseqbase != oid_nil);                       \
                (b)->batDirtydesc = 1;  /* likely already set */        \
-               (b)->hrevsorted = (b)->batCount <= 1;                   \
                /* the other head properties should already be correct */ \
                COLsettrivprop((b), (b)->T);                            \
        } while (0)
@@ -2542,7 +2509,7 @@ BBPcheck(register bat x, register const 
        if (x && x != bat_nil) {
                assert(x > 0);
 
-               if (x >= getBBPsize() || BBP_logical(x) == NULL) {
+               if (x < 0 || x >= getBBPsize() || BBP_logical(x) == NULL) {
                        CHECKDEBUG fprintf(stderr,"#%s: range error %d\n", y, 
(int) x);
                } else {
                        return x;
@@ -2750,8 +2717,8 @@ gdk_export void VIEWbounds(BAT *b, BAT *
 gdk_export void ALIGNsetH(BAT *b1, BAT *b2);
 gdk_export void ALIGNsetT(BAT *b1, BAT *b2);
 
-#define ALIGNins(x,y,f,e)      do {if (!(f)) 
VIEWchk(x,y,BAT_READ,e);(x)->halign=(x)->talign=0; } while (0)
-#define ALIGNdel(x,y,f,e)      do {if (!(f)) 
VIEWchk(x,y,BAT_READ|BAT_APPEND,e);(x)->halign=(x)->talign=0; } while (0)
+#define ALIGNins(x,y,f,e)      do {if (!(f)) 
VIEWchk(x,y,BAT_READ,e);(x)->talign=0; } while (0)
+#define ALIGNdel(x,y,f,e)      do {if (!(f)) 
VIEWchk(x,y,BAT_READ|BAT_APPEND,e);(x)->talign=0; } while (0)
 #define ALIGNinp(x,y,f,e)      do {if (!(f)) 
VIEWchk(x,y,BAT_READ|BAT_APPEND,e);(x)->talign=0; } while (0)
 #define ALIGNapp(x,y,f,e)      do {if (!(f)) 
VIEWchk(x,y,BAT_READ,e);(x)->talign=0; } while (0)
 
@@ -2777,7 +2744,7 @@ gdk_export void ALIGNsetT(BAT *b1, BAT *
  * correct for the reversed view.
  */
 #define isVIEW(x)                                                      \
-       (assert((x)->batCacheid > 0 && (x)->htype == TYPE_void),        \
+       (assert((x)->batCacheid > 0),                                   \
         ((x)->T->heap.parentid ||                                      \
          ((x)->T->vheap && (x)->T->vheap->parentid != (x)->batCacheid)))
 
diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -70,16 +70,14 @@ BATgroupaggrinit(BAT *b, BAT *g, BAT *e,
        BUN start, end, cnt;
        const oid *cand = NULL, *candend = NULL;
 
-       if (b == NULL || !BAThdense(b))
-               return "b must be dense-headed";
+       if (b == NULL)
+               return "b must exist";
        if (g) {
-               if (!BAThdense(g) || BATcount(b) != BATcount(g) ||
+               if (BATcount(b) != BATcount(g) ||
                    (BATcount(b) != 0 && b->hseqbase != g->hseqbase))
                        return "b and g must be aligned";
                assert(BATttype(g) == TYPE_oid);
        }
-       if (e != NULL && !BAThdense(e))
-               return "e must be dense-headed";
        if (g == NULL) {
                min = 0;
                max = 0;
@@ -2285,8 +2283,6 @@ BATminmax(BAT *b, void *aggr,
        int needdecref = 0;
        BATiter bi;
 
-       if (!BAThdense(b))
-               return NULL;
        if ((VIEWtparent(b) == 0 ||
             BATcount(b) == BATcount(BBPdescriptor(-VIEWtparent(b)))) &&
            BATcheckimprints(b)) {
diff --git a/gdk/gdk_align.c b/gdk/gdk_align.c
--- a/gdk/gdk_align.c
+++ b/gdk/gdk_align.c
@@ -58,9 +58,8 @@
  * leftmost 4 bits are for the head, the rightmost 4 for the
  * tail. This has been done to make the zap ultra-cheap.
  *
- * Both head and tail column contain an OID in the @emph{halign} and
- * @emph{talign} fields respectively to mark their alignment
- * group. All BATs with the same OID in this field (and the
+ * Columns contain an OID in the @emph{talign} field to mark their
+ * alignment group. All BATs with the same OID in this field (and the
  * ALIGN_SYNCED bit on) are guaranteed by the system to have equal
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to