Changeset: 93d869a8f5bf for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=93d869a8f5bf
Added Files:
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-coalesce-division-by-zero.Bug-6556.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-coalesce-division-by-zero.Bug-6556.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-having-in-cast.Bug-6561.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-having-in-cast.Bug-6561.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-having-in-cast.Bug-6561.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-having-in.Bug-6560.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-having-in.Bug-6560.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-having-in.Bug-6560.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-having-not-null-not-in.Bug-6562.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-having-not-null-not-in.Bug-6562.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-having-not-null-not-in.Bug-6562.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.stable.out
        sql/test/BugTracker-2018/Tests/truncate_tmp_tables.Bug-6543.reqtests
        sql/test/BugTracker-2018/Tests/truncate_tmp_tables.Bug-6543.sql
        sql/test/BugTracker-2018/Tests/truncate_tmp_tables.Bug-6543.stable.err
        sql/test/BugTracker-2018/Tests/truncate_tmp_tables.Bug-6543.stable.out
Removed Files:
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64
Modified Files:
        .hgtags
        MonetDB.spec
        NT/monetdb_config.h.in
        NT/rules.msc
        clients/mapiclient/mclient.c
        clients/mapilib/mapi.rc
        clients/odbc/driver/driver.rc
        clients/odbc/winsetup/setup.rc
        configure.ag
        debian/changelog
        gdk/ChangeLog
        gdk/gdk.h
        gdk/gdk_align.c
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_bbp.c
        gdk/gdk_calc.c
        gdk/gdk_cand.h
        gdk/gdk_cross.c
        gdk/gdk_firstn.c
        gdk/gdk_group.c
        gdk/gdk_join.c
        gdk/gdk_logger.c
        gdk/gdk_orderidx.c
        gdk/gdk_project.c
        gdk/gdk_sample.c
        gdk/gdk_select.c
        gdk/libbat.rc
        libversions
        monetdb5/extras/rapi/converters.c.h
        monetdb5/extras/rapi/rapi.c
        monetdb5/mal/mal.h
        monetdb5/mal/mal_authorize.c
        monetdb5/mal/mal_listing.c
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_session.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/microbenchmark.c
        monetdb5/modules/mal/clients.c
        monetdb5/modules/mal/language.c
        monetdb5/modules/mal/mal_mapi.c
        monetdb5/modules/mal/pcre.c
        monetdb5/modules/mal/remote.c
        monetdb5/modules/mal/tablet.c
        monetdb5/modules/mal/wlc.c
        monetdb5/tools/libmonetdb5.rc
        sql/ChangeLog-Archive
        sql/ChangeLog.Mar2018
        sql/backends/monet5/UDF/capi/capi.c
        sql/backends/monet5/UDF/pyapi/emit.c
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_fround_impl.h
        sql/backends/monet5/sql_round_impl.h
        sql/backends/monet5/sql_statistics.c
        sql/backends/monet5/vaults/bam/Tests/mergetable.stable.out
        sql/backends/monet5/vaults/fits/fits.c
        sql/rel.txt
        sql/server/rel_optimizer.c
        sql/server/rel_psm.c
        sql/server/rel_rel.c
        sql/server/rel_rel.h
        sql/server/rel_select.c
        sql/server/rel_updates.c
        sql/server/sql_privileges.c
        
sql/test/BugTracker-2009/Tests/segfault_when_quitting_debugger.SF-2538837.stable.out
        sql/test/BugTracker-2010/Tests/prepare_stmt.Bug-2533.Bug-2534.stable.out
        sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
        sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
        sql/test/BugTracker-2015/Tests/crash.Bug-3736.stable.out
        
sql/test/BugTracker-2015/Tests/quantile_function_resolution.Bug-3773.stable.out
        sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out
        sql/test/BugTracker-2016/Tests/rename_exps.Bug-3974.stable.out
        sql/test/BugTracker-2017/Tests/caching_stats_bug.6374.stable.out
        sql/test/BugTracker-2017/Tests/cleanup_statistics.Bug-6439.stable.out
        
sql/test/BugTracker-2017/Tests/cleanup_statistics.Bug-6439.stable.out.FreeBSD
        
sql/test/BugTracker-2017/Tests/cleanup_statistics.Bug-6439.stable.out.Windows
        sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out
        sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out.single
        
sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.stable.err
        sql/test/BugTracker-2018/Tests/All
        
sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-case-coalesce.Bug-6550.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-case-coalesce.Bug-6550.stable.out
        sql/test/BugTracker-2018/Tests/sqlitelogictest-count-not-in.Bug-6518.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-count-not-in.Bug-6518.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-aggregation-count.Bug-6510.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-aggregation-count.Bug-6510.stable.out
        sql/test/BugTracker-2018/Tests/truncate_sys_tables.Bug-6543.sql
        sql/test/BugTracker-2018/Tests/truncate_sys_tables.Bug-6543.stable.out
        sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-0join-query.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-0join-view.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-1join-query.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-1join-view.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-2join-query.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-2join-view.stable.out
        sql/test/Skyserver/Tests/Skyserver.stable.out
        sql/test/VOC/Tests/VOC.stable.out
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64.int128
        sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
        sql/test/pg_regress/Tests/alter_table.stable.err
        sql/test/pg_regress/Tests/alter_table.stable.out
        sql/test/pg_regress/Tests/random.stable.out
        sql/test/sys-schema/Tests/check_AlternateKey_uniqueness.stable.out
        sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.sql
        
sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.stable.out
        sql/test/sys-schema/Tests/check_PrimaryKey_uniqueness.sql
        sql/test/sys-schema/Tests/check_PrimaryKey_uniqueness.stable.out
        sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/dump.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/dump.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
        testing/Mtest.py.in
        tools/merovingian/daemon/forkmserver.c
        tools/merovingian/daemon/merovingian.c
        tools/merovingian/utils/properties.c
        vertoo.data
Branch: delete_in_vlist
Log Message:

Merge with default.


diffs (truncated from 129365 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -692,3 +692,6 @@ 4fd4a5c7b66747468a2b41930d1b987a4b0efff4
 a294cafd5cac3397e148032bee9d8efc89f5c82a Mar2018_root
 28edc063ceb6a3726af887911a3e4ac4a33c504f Mar2018_1
 28edc063ceb6a3726af887911a3e4ac4a33c504f Mar2018_release
+f34a57f73307a09909b3669ce5cfd9aad490f317 Mar2018_3
+28edc063ceb6a3726af887911a3e4ac4a33c504f Mar2018_release
+f34a57f73307a09909b3669ce5cfd9aad490f317 Mar2018_release
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -1046,6 +1046,21 @@ done
 %postun -p /sbin/ldconfig
 
 %changelog
+* Tue Mar 27 2018 Sjoerd Mullender <sjo...@acm.org> - 11.29.3-20180327
+- Rebuilt.
+- BZ#3824: Created table not visible from ODBC
+- BZ#6556: Sqlitelogictest division by zero on COALESCE call
+- BZ#6557: Sqlitelogictest crash on aggregation query with not in
+- BZ#6559: rows in sys.statistics are not removed when a temporary table
+  is dropped.
+- BZ#6560: Sqlitelogictest crash on group by query with having in
+- BZ#6561: Sqlitelogictest crash on group by query with having not
+  in clause
+
+* Thu Mar 15 2018 Sjoerd Mullender <sjo...@acm.org> - 11.29.3-20180327
+- sql: Extended support to use CREATE ORDERED INDEX on columns of type: char,
+  varchar, clob, blob, url, json, inet and uuid.
+
 * Thu Mar 15 2018 Sjoerd Mullender <sjo...@acm.org> - 11.29.1-20180315
 - Rebuilt.
 - BZ#3574: Add support for: create OR REPLACE view ...
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -269,7 +269,7 @@ timerHuman(int64_t sqloptimizer, int64_t
 
        /*
         * report only the times we do actually measure:
-        * - client-measured wall-clock time per query only when executing 
indivual queries,
+        * - client-measured wall-clock time per query only when executing 
individual queries,
         *   otherwise only the total wall-clock time at the end of a batch;
         * - server-measured detailed performance measures only per query.
         */
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,24 @@
+monetdb (11.29.3) unstable; urgency=low
+
+  * Rebuilt.
+  * BZ#3824: Created table not visible from ODBC
+  * BZ#6556: Sqlitelogictest division by zero on COALESCE call
+  * BZ#6557: Sqlitelogictest crash on aggregation query with not in
+  * BZ#6559: rows in sys.statistics are not removed when a temporary table
+    is dropped.
+  * BZ#6560: Sqlitelogictest crash on group by query with having in
+  * BZ#6561: Sqlitelogictest crash on group by query with having not
+    in clause
+
+ -- Sjoerd Mullender <sjo...@acm.org>  Tue, 27 Mar 2018 14:27:04 +0200
+
+monetdb (11.29.3) unstable; urgency=low
+
+  * sql: Extended support to use CREATE ORDERED INDEX on columns of type: char,
+    varchar, clob, blob, url, json, inet and uuid.
+
+ -- Sjoerd Mullender <sjo...@acm.org>  Thu, 15 Mar 2018 14:27:04 +0200
+
 monetdb (11.29.1) unstable; urgency=low
 
   * Rebuilt.
diff --git a/gdk/ChangeLog b/gdk/ChangeLog
--- a/gdk/ChangeLog
+++ b/gdk/ChangeLog
@@ -1,3 +1,7 @@
 # ChangeLog file for MonetDB
 # This file is updated with Maddlog
 
+* Tue Mar 20 2018 Sjoerd Mullender <sjo...@acm.org>
+- Removed the tdense property: it's function is completely replaced by
+  whether or not tseqbase is equal to oid_nil.
+
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -345,23 +345,14 @@
 #define GDKisalnum(c)  isalnum((unsigned char) (c))
 #define GDKisdigit(c)  isdigit((unsigned char) (c))
 
-#define TEMPDIR_NAME "TEMP_DATA"
+#define BATDIR         "bat"
+#define TEMPDIR_NAME   "TEMP_DATA"
 
-#ifndef NATIVE_WIN32
-#define BATDIR         "bat"
-#define DELDIR         "bat/DELETE_ME"
-#define BAKDIR         "bat/BACKUP"
-#define SUBDIR         "bat/BACKUP/SUBCOMMIT"
-#define LEFTDIR                "bat/LEFTOVERS"
-#define TEMPDIR     "bat/"TEMPDIR_NAME
-#else
-#define BATDIR         "bat"
-#define DELDIR         "bat\\DELETE_ME"
-#define BAKDIR         "bat\\BACKUP"
-#define SUBDIR         "bat\\BACKUP\\SUBCOMMIT"
-#define LEFTDIR                "bat\\LEFTOVERS"
-#define TEMPDIR     "bat\\"TEMPDIR_NAME
-#endif
+#define DELDIR         BATDIR DIR_SEP_STR "DELETE_ME"
+#define BAKDIR         BATDIR DIR_SEP_STR "BACKUP"
+#define SUBDIR         BAKDIR DIR_SEP_STR "SUBCOMMIT" /* note K, not T */
+#define LEFTDIR                BATDIR DIR_SEP_STR "LEFTOVERS"
+#define TEMPDIR                BATDIR DIR_SEP_STR TEMPDIR_NAME
 
 /*
    See `man mserver5` or tools/mserver/mserver5.1
@@ -751,7 +742,7 @@ typedef struct {
         restricted:2,          /* access privileges */
         persistence:1,         /* should the BAT persist on disk? */
         role:8,                /* role of the bat */
-        unused:15;             /* value=0 for now (sneakily used by mat.c) */
+        unused:17;             /* value=0 for now (sneakily used by mat.c) */
        int sharecnt;           /* incoming view count */
 
        /* delta status administration */
@@ -765,15 +756,14 @@ typedef struct PROPrec PROPrec;
 /* see also comment near BATassertProps() for more information about
  * the properties */
 typedef struct {
-       str id;                 /* label for head/tail column */
+       str id;                 /* label for column */
 
        unsigned short width;   /* byte-width of the atom array */
        bte type;               /* type id. */
        bte shift;              /* log2 of bun width */
-       bool varsized:1,        /* varsized (1) or fixedsized (0) */
+       bool varsized:1,        /* varsized/void (true) or fixedsized (false) */
                key:1,          /* no duplicate values present */
                unique:1,       /* no duplicate values allowed */
-               dense:1,        /* OID only: only consecutive values */
                nonil:1,        /* there are no nils in the column */
                nil:1,          /* there is a nil in the column */
                sorted:1,       /* column is sorted in ascending order */
@@ -781,7 +771,7 @@ typedef struct {
        BUN nokey[2];           /* positions that prove key==FALSE */
        BUN nosorted;           /* position that proves sorted==FALSE */
        BUN norevsorted;        /* position that proves revsorted==FALSE */
-       oid seq;                /* start of dense head sequence */
+       oid seq;                /* start of dense sequence */
 
        Heap heap;              /* space for the column. */
        Heap *vheap;            /* space for the varsized data. */
@@ -841,7 +831,6 @@ typedef struct BATiter {
 #define tseqbase       T.seq
 #define tsorted                T.sorted
 #define trevsorted     T.revsorted
-#define tdense         T.dense
 #define tident         T.id
 #define torderidx      T.orderidx
 #define twidth         T.width
@@ -1055,7 +1044,7 @@ gdk_export bte ATOMelmshift(int sz);
                } else {                                                \
                        ATOMputFIX((b)->ttype, (p), v);                 \
                }                                                       \
-       } while (0)
+       } while (false)
 #define Treplacevalue(b, p, v)                                         \
        do {                                                            \
                if ((b)->tvarsized && (b)->ttype) {                     \
@@ -1080,7 +1069,7 @@ gdk_export bte ATOMelmshift(int sz);
                        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), _d, 0, 
(b)->batRestricted == BAT_READ) != GDK_SUCCEED) \
+                               if (GDKupgradevarheap((b), _d, false, 
(b)->batRestricted == BAT_READ) != GDK_SUCCEED) \
                                        goto bunins_failed;             \
                        }                                               \
                        _ptr = (p);                                     \
@@ -1101,7 +1090,7 @@ gdk_export bte ATOMelmshift(int sz);
                } else {                                                \
                        ATOMreplaceFIX((b)->ttype, (p), v);             \
                }                                                       \
-       } while (0)
+       } while (false)
 #else
 #define Tputvalue(b, p, v, copyall)                                    \
        do {                                                            \
@@ -1130,7 +1119,7 @@ gdk_export bte ATOMelmshift(int sz);
                } else {                                                \
                        ATOMputFIX((b)->ttype, (p), v);                 \
                }                                                       \
-       } while (0)
+       } while (false)
 #define Treplacevalue(b, p, v)                                         \
        do {                                                            \
                if ((b)->tvarsized && (b)->ttype) {                     \
@@ -1152,7 +1141,7 @@ gdk_export bte ATOMelmshift(int sz);
                        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), _d, 0, 
(b)->batRestricted == BAT_READ) != GDK_SUCCEED) \
+                               if (GDKupgradevarheap((b), _d, false, 
(b)->batRestricted == BAT_READ) != GDK_SUCCEED) \
                                        goto bunins_failed;             \
                        }                                               \
                        _ptr = (p);                                     \
@@ -1170,26 +1159,26 @@ gdk_export bte ATOMelmshift(int sz);
                } else {                                                \
                        ATOMreplaceFIX((b)->ttype, (p), v);             \
                }                                                       \
-       } while (0)
+       } while (false)
 #endif
 #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)
+       } while (false)
 
 #define bunfastapp_nocheck(b, p, t, ts)                \
        do {                                    \
                tfastins_nocheck(b, p, t, ts);  \
                (b)->batCount++;                \
-       } while (0)
+       } while (false)
 
 #define bunfastapp_nocheck_inc(b, p, t)                        \
        do {                                            \
                bunfastapp_nocheck(b, p, t, Tsize(b));  \
                p++;                                    \
-       } while (0)
+       } while (false)
 
 #define bunfastapp(b, t)                                               \
        do {                                                            \
@@ -1203,7 +1192,7 @@ gdk_export bte ATOMelmshift(int sz);
                                goto bunins_failed;                     \
                }                                                       \
                bunfastapp_nocheck(b, _p, t, Tsize(b));                 \
-       } while (0)
+       } while (false)
 
 gdk_export gdk_return GDKupgradevarheap(BAT *b, var_t v, int copyall, int 
mayshare)
        __attribute__ ((__warn_unused_result__));
@@ -1241,8 +1230,7 @@ gdk_export BUN BUNfnd(BAT *b, const void
         BUN_NONE :                                                     \
         (BUN) (*(const oid*)(v) - (b)->tseqbase))
 
-#define BATttype(b)    ((b)->ttype == TYPE_void && !is_oid_nil((b)->tseqbase) 
? \
-                        TYPE_oid : (b)->ttype)
+#define BATttype(b)    (BATtdense(b) ? TYPE_oid : (b)->ttype)
 #define Tbase(b)       ((b)->tvheap->base)
 
 #define Tsize(b)       ((b)->twidth)
@@ -1350,10 +1338,10 @@ gdk_export gdk_return BATsetaccess(BAT *
 gdk_export int BATgetaccess(BAT *b);
 
 
-#define BATdirty(b)    ((b)->batCopiedtodisk == 0 || (b)->batDirty ||  \
+#define BATdirty(b)    (!(b)->batCopiedtodisk || (b)->batDirty ||      \
                         (b)->batDirtydesc ||                           \
                         (b)->theap.dirty ||                            \
-                        ((b)->tvheap?(b)->tvheap->dirty:0))
+                        ((b)->tvheap?(b)->tvheap->dirty:false))
 
 #define PERSISTENT             0
 #define TRANSIENT              1
@@ -1467,66 +1455,64 @@ gdk_export gdk_return BATsort(BAT **sort
 gdk_export void GDKqsort(void *restrict h, void *restrict t, const void 
*restrict base, size_t n, int hs, int ts, int tpe);
 gdk_export void GDKqsort_rev(void *restrict h, void *restrict t, const void 
*restrict base, size_t n, int hs, int ts, int tpe);
 
-#define BATtordered(b) ((b)->ttype == TYPE_void || (b)->tsorted)
-#define BATtrevordered(b) (((b)->ttype == TYPE_void && 
is_oid_nil((b)->tseqbase)) || (b)->trevsorted)
-#define BATtdense(b)   (BATtvoid(b) && !is_oid_nil((b)->tseqbase))
-#define BATtvoid(b)    (((b)->tdense && (b)->tsorted) || (b)->ttype==TYPE_void)
-#define BATtkey(b)     (b->tkey != FALSE || BATtdense(b))
+#define BATtordered(b) ((b)->tsorted)
+#define BATtrevordered(b) ((b)->trevsorted)
+/* BAT is dense (i.e., BATtvoid() is true and tseqbase is not NIL) */
+#define BATtdense(b)   (!is_oid_nil((b)->tseqbase))
+/* BATtvoid: BAT can be (or actually is) represented by TYPE_void */
+#define BATtvoid(b)    (BATtdense(b) || (b)->ttype==TYPE_void)
+#define BATtkey(b)     ((b)->tkey || BATtdense(b))
 
 /* set some properties that are trivial to deduce */
 #define BATsettrivprop(b)                                              \
        do {                                                            \
                assert(!is_oid_nil((b)->hseqbase));                     \
-               (b)->batDirtydesc = 1;  /* likely already set */        \
-               /* the other head properties should already be correct */ \
+               (b)->batDirtydesc = true; /* likely already set */      \
+               assert(is_oid_nil((b)->tseqbase) ||                     \
+                      ATOMtype((b)->ttype) == TYPE_oid);               \
                if ((b)->ttype == TYPE_void) {                          \
                        if (is_oid_nil((b)->tseqbase)) {                \
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to