Changeset: a39d2f6509ee for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a39d2f6509ee
Removed Files:
        
sql/test/BugTracker-2010/Tests/crash-with-huge-query.Bug-2647.stable.out.int128
        
sql/test/BugTracker-2010/Tests/rank-over-crash.SF-2926454.stable.out.int128
        
sql/test/BugTracker-2011/Tests/non-stable-select-bug.Bug-2894.stable.out.int128
        
sql/test/BugTracker-2011/Tests/subquery_in_from_clause.Bug-2812.stable.out.int128
        
sql/test/BugTracker-2012/Tests/aggregate_incorrect_precision_scale.Bug-3182.stable.out.int128
        sql/test/BugTracker-2012/Tests/power_priority.Bug-2291.stable.out.int128
        
sql/test/BugTracker-2013/Tests/aggregates-typing-issues.Bug-3277.stable.out.int128
        sql/test/BugTracker-2013/Tests/case-orderby.Bug-3388.stable.out.int128
        sql/test/BugTracker-2014/Tests/groupby.Bug-3421.stable.out.int128
        sql/test/BugTracker-2014/Tests/ifthenelse.Bug-3546.stable.out.int128
        
sql/test/BugTracker-2014/Tests/union_with_subqueries.Bug-3518.stable.out.int128
        sql/test/BugTracker-2015/Tests/ambiguous.Bug-3803.stable.out.int128
        
sql/test/BugTracker-2015/Tests/crash_in_reduce_groupby.Bug-3818.stable.out.int128
        sql/test/BugTracker-2015/Tests/nil_cast.Bug-3787.stable.out.int128
Modified Files:
        MonetDB.spec
        clients/Tests/exports.stable.out
        common/utils/matomic.h
        debian/rules
        gdk/gdk_posix.c
        gdk/gdk_private.h
        gdk/gdk_select.c
        gdk/gdk_system.c
        monetdb5/mal/mal.h
        monetdb5/mal/mal_atom.c
        monetdb5/mal/mal_authorize.c
        monetdb5/mal/mal_builder.c
        monetdb5/mal/mal_client.c
        monetdb5/mal/mal_client.h
        monetdb5/mal/mal_debugger.c
        monetdb5/mal/mal_import.c
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_instruction.h
        monetdb5/mal/mal_interpreter.c
        monetdb5/mal/mal_listing.c
        monetdb5/mal/mal_namespace.h
        monetdb5/mal/mal_parser.c
        monetdb5/mal/mal_resolve.c
        monetdb5/mal/mal_scenario.c
        monetdb5/mal/mal_scenario.h
        monetdb5/mal/mal_stack.h
        monetdb5/mal/mal_type.c
        monetdb5/mal/mal_type.h
        monetdb5/modules/mal/mal_mapi.c
        monetdb5/modules/mal/pcre.c
        monetdb5/optimizer/opt_remap.c
        monetdb5/optimizer/opt_remoteQueries.c
        monetdb5/optimizer/opt_wlc.c
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_statement.c
        sql/include/sql_catalog.h
        sql/include/sql_relation.h
        sql/rel.txt
        sql/server/rel_distribute.c
        sql/server/rel_dump.c
        sql/server/rel_optimizer.c
        sql/server/rel_propagate.c
        sql/server/rel_psm.c
        sql/server/rel_rel.c
        sql/server/rel_rel.h
        sql/server/rel_schema.c
        sql/server/rel_semantic.c
        sql/server/rel_sequence.c
        sql/server/rel_trans.c
        sql/server/rel_updates.c
        sql/server/sql_scan.c
        sql/server/sql_scan.h
        sql/server/sql_semantic.c
        sql/storage/sql_catalog.c
        sql/test/BugTracker-2009/Tests/count_bug.SF-2604583.sql
        sql/test/BugTracker-2009/Tests/count_bug.SF-2604583.stable.out
        sql/test/BugTracker-2010/Tests/crash-with-huge-query.Bug-2647.sql
        sql/test/BugTracker-2010/Tests/crash-with-huge-query.Bug-2647.stable.out
        sql/test/BugTracker-2010/Tests/rank-over-crash.SF-2926454.sql
        sql/test/BugTracker-2010/Tests/rank-over-crash.SF-2926454.stable.out
        sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.sql
        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-2011/Tests/non-stable-select-bug.Bug-2894.sql
        sql/test/BugTracker-2011/Tests/non-stable-select-bug.Bug-2894.stable.out
        sql/test/BugTracker-2011/Tests/subquery_in_from_clause.Bug-2812.sql
        
sql/test/BugTracker-2011/Tests/subquery_in_from_clause.Bug-2812.stable.out
        
sql/test/BugTracker-2012/Tests/aggregate_incorrect_precision_scale.Bug-3182.sql
        
sql/test/BugTracker-2012/Tests/aggregate_incorrect_precision_scale.Bug-3182.stable.out
        sql/test/BugTracker-2012/Tests/scalar_subquery_with_alias.Bug-3093.sql
        
sql/test/BugTracker-2012/Tests/scalar_subquery_with_alias.Bug-3093.stable.out
        sql/test/BugTracker-2013/Tests/All
        sql/test/BugTracker-2013/Tests/aggregates-typing-issues.Bug-3277.sql
        
sql/test/BugTracker-2013/Tests/aggregates-typing-issues.Bug-3277.stable.out
        sql/test/BugTracker-2013/Tests/case-orderby.Bug-3388.sql
        sql/test/BugTracker-2013/Tests/case-orderby.Bug-3388.stable.out
        sql/test/BugTracker-2013/Tests/hashed_exp.Bug-3313.sql
        sql/test/BugTracker-2013/Tests/prepare-smallint.Bug-3297.sql
        sql/test/BugTracker-2013/Tests/prepare-smallint.Bug-3297.stable.out
        
sql/test/BugTracker-2013/Tests/prepare-smallint.Bug-3297.stable.out.int128
        sql/test/BugTracker-2014/Tests/groupby.Bug-3421.sql
        sql/test/BugTracker-2014/Tests/groupby.Bug-3421.stable.out
        sql/test/BugTracker-2014/Tests/ifthenelse.Bug-3546.sql
        sql/test/BugTracker-2014/Tests/ifthenelse.Bug-3546.stable.out
        sql/test/BugTracker-2014/Tests/union_with_subqueries.Bug-3518.sql
        sql/test/BugTracker-2014/Tests/union_with_subqueries.Bug-3518.stable.out
        sql/test/BugTracker-2015/Tests/ambiguous.Bug-3803.sql
        sql/test/BugTracker-2015/Tests/ambiguous.Bug-3803.stable.out
        sql/test/BugTracker-2015/Tests/crash_in_reduce_groupby.Bug-3818.sql
        
sql/test/BugTracker-2015/Tests/crash_in_reduce_groupby.Bug-3818.stable.out
        
sql/test/BugTracker-2015/Tests/crash_timestamp_convert.Bug-3816.stable.err.Windows
        sql/test/BugTracker-2015/Tests/incorrect_result_type.Bug-3687.sql
        sql/test/BugTracker-2015/Tests/incorrect_result_type.Bug-3687.stable.out
        
sql/test/BugTracker-2015/Tests/incorrect_result_type.Bug-3687.stable.out.int128
        sql/test/BugTracker-2015/Tests/nil_cast.Bug-3787.sql
        sql/test/BugTracker-2015/Tests/nil_cast.Bug-3787.stable.out
        sql/test/SQLite_regress/sqllogictest/Tests/select1.test.stable.out
        sql/test/SQLite_regress/sqllogictest/Tests/select2.test.stable.out
        sql/test/SQLite_regress/sqllogictest/Tests/select3.test.timeout
        sql/test/Tests/trace.sql
        sql/test/Tests/trace.stable.out
Branch: context
Log Message:

merged with default


diffs (truncated from 19036 to 300 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -955,7 +955,6 @@ fi
 export CFLAGS
 %{configure} \
        --enable-assert=no \
-       --enable-console=yes \
        --enable-debug=no \
        --enable-developer=no \
        --enable-embedded=no \
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
@@ -2191,7 +2191,7 @@ str generatorRef;
 MALfcn getAddress(str fcnname);
 str getArgDefault(MalBlkPtr mb, InstrPtr p, int idx);
 ptr getArgReference(MalStkPtr stk, InstrPtr pci, int k);
-int getAtomIndex(const char *nme, int len, int deftpe);
+int getAtomIndex(const char *nme, size_t len, int deftpe);
 lng getBatSpace(BAT *b);
 int getBitConstant(MalBlkPtr mb, bit val);
 int getBlockBegin(MalBlkPtr mb, int pc);
diff --git a/common/utils/matomic.h b/common/utils/matomic.h
--- a/common/utils/matomic.h
+++ b/common/utils/matomic.h
@@ -279,6 +279,8 @@ typedef volatile char ATOMIC_FLAG;
 
 /* emulate using mutexes */
 
+#include <pthread.h> /* required for pthread_mutex_t */
+
 typedef size_t ATOMIC_BASE_TYPE;
 typedef struct {
        ATOMIC_BASE_TYPE val;
diff --git a/debian/rules b/debian/rules
--- a/debian/rules
+++ b/debian/rules
@@ -14,7 +14,6 @@ DH_VERBOSE=1
 override_dh_auto_configure:
        dh_auto_configure -- \
        --enable-assert=no \
-       --enable-console=yes \
        --enable-debug=no \
        --enable-developer=no \
        --enable-embedded=no \
diff --git a/gdk/gdk_posix.c b/gdk/gdk_posix.c
--- a/gdk/gdk_posix.c
+++ b/gdk/gdk_posix.c
@@ -347,7 +347,6 @@ MT_getrss(void)
        return 0;
 }
 
-
 void *
 MT_mmap(const char *path, int mode, size_t len)
 {
@@ -629,12 +628,13 @@ MT_mremap(const char *path, int mode, vo
 #endif
 #endif
                                                ) {
-                                               int err = errno;
+                                               int err = errno, other;
                                                /* extending failed:
                                                 * free any disk space
                                                 * allocated in the
                                                 * process */
-                                               (void) ftruncate(fd, (off_t) 
old_size);
+                                               other = ftruncate(fd, (off_t) 
old_size);
+                                               (void) other; /* silence 
compiler warning for ignoring result of ftruncate */
                                                errno = err; /* restore for 
error message */
                                                GDKsyserror("MT_mremap: growing 
file failed\n");
                                                close(fd);
@@ -744,11 +744,9 @@ MT_init_posix(void)
 size_t
 MT_getrss(void)
 {
-#ifdef _WIN64
        PROCESS_MEMORY_COUNTERS ctr;
        if (GetProcessMemoryInfo(GetCurrentProcess(), &ctr, sizeof(ctr)))
                return ctr.WorkingSetSize;
-#endif
        return 0;
 }
 
@@ -902,7 +900,6 @@ MT_path_absolute(const char *pathname)
                (pathname[0] == '\\' && pathname[1] == '\\'));
 }
 
-
 #ifndef HAVE_GETTIMEOFDAY
 static int nodays[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
 
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -257,9 +257,10 @@ stpconcat(char *restrict dst, const char
        __attribute__((__visibility__("hidden")));
 
 /* some macros to help print info about BATs when using ALGODEBUG */
-#define ALGOBATFMT     "%s#" BUNFMT "[%s]%s%s%s%s%s%s%s%s%s"
+#define ALGOBATFMT     "%s#" BUNFMT "@" OIDFMT "[%s]%s%s%s%s%s%s%s%s%s"
 #define ALGOBATPAR(b)  BATgetId(b),                    \
                        BATcount(b),                    \
+                       b->hseqbase,                    \
                        ATOMname(b->ttype),             \
                        !b->batTransient ? "P" : isVIEW(b) ? "V" : "T", \
                        BATtdense(b) ? "D" : "",        \
@@ -271,11 +272,13 @@ stpconcat(char *restrict dst, const char
                        b->torderidx ? "O" : "",        \
                        b->timprints ? "I" : b->theap.parentid && 
BBP_cache(b->theap.parentid)->timprints ? "(I)" : ""
 /* use ALGOOPTBAT* when BAT is optional (can be NULL) */
-#define ALGOOPTBATFMT  "%s%s" BUNFMT "%s%s%s%s%s%s%s%s%s%s%s%s"
+#define ALGOOPTBATFMT  "%s%s" BUNFMT "%s" OIDFMT "%s%s%s%s%s%s%s%s%s%s%s%s"
 #define ALGOOPTBATPAR(b)                               \
                        b ? BATgetId(b) : "",           \
                        b ? "#" : "",                   \
                        b ? BATcount(b) : 0,            \
+                       b ? "@" : "",                   \
+                       b ? b->hseqbase : 0,            \
                        b ? "[" : "",                   \
                        b ? ATOMname(b->ttype) : "",    \
                        b ? "]" : "",                   \
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -1216,6 +1216,7 @@ BATselect(BAT *b, BAT *s, const void *tl
        BAT *bn, *tmp;
        BUN estimate = BUN_NONE, maximum = BUN_NONE;
        oid vwl = 0, vwh = 0;
+       lng vwo = 0;
        bool use_orderidx = false;
        union {
                bte v_bte;
@@ -1250,11 +1251,14 @@ BATselect(BAT *b, BAT *s, const void *tl
                    (s->tseqbase >= b->hseqbase + BATcount(b) ||
                     s->tseqbase + BATcount(s) <= b->hseqbase))))) {
                /* trivially empty result */
+               bn = BATdense(0, 0, 0);
                ALGODEBUG fprintf(stderr, "#BATselect(b=" ALGOBATFMT
-                                 ",s=" ALGOOPTBATFMT ",anti=%d): "
+                                 ",s=" ALGOOPTBATFMT ",anti=%d)=" ALGOOPTBATFMT
+                                 " (" LLFMT " usec): "
                                  "trivially empty\n",
-                                 ALGOBATPAR(b), ALGOOPTBATPAR(s), anti);
-               return BATdense(0, 0, 0);
+                                 ALGOBATPAR(b), ALGOOPTBATPAR(s), anti,
+                                 ALGOOPTBATPAR(bn), GDKusec() - t0);
+               return bn;
        }
 
        t = b->ttype;
@@ -1267,12 +1271,14 @@ BATselect(BAT *b, BAT *s, const void *tl
                /* upper and lower bound of range are equal and we
                 * want an interval that's open on at least one
                 * side */
+               bn = BATdense(0, 0, 0);
                ALGODEBUG fprintf(stderr, "#BATselect(b=" ALGOBATFMT
-                                 ",s=" ALGOOPTBATFMT ",li=%d,hi=%d,anti=%d): "
+                                 ",s=" ALGOOPTBATFMT ",li=%d,hi=%d,anti=%d)=" 
ALGOOPTBATFMT
+                                 " (" LLFMT " usec): "
                                  "empty interval\n",
                                  ALGOBATPAR(b), ALGOOPTBATPAR(s),
-                                 li, hi, anti);
-               return BATdense(0, 0, 0);
+                                 li, hi, anti, ALGOOPTBATPAR(bn), GDKusec() - 
t0);
+               return bn;
        }
 
        lval = !lnil || th == NULL;      /* low value used for comparison */
@@ -1313,12 +1319,14 @@ BATselect(BAT *b, BAT *s, const void *tl
                        /* antiselect for nil-nil range: all non-nil
                         * values are in range; we must return all
                         * other non-nil values, i.e. nothing */
+                       bn = BATdense(0, 0, 0);
                        ALGODEBUG fprintf(stderr, "#BATselect(b=" ALGOBATFMT
-                                         ",s=" ALGOOPTBATFMT ",anti=%d): "
+                                         ",s=" ALGOOPTBATFMT ",anti=%d)=" 
ALGOOPTBATFMT
+                                         " (" LLFMT " usec): "
                                          "anti: nil-nil range, nonil\n",
                                          ALGOBATPAR(b), ALGOOPTBATPAR(s),
-                                         anti);
-                       return BATdense(0, 0, 0);
+                                         anti, ALGOOPTBATPAR(bn), GDKusec() - 
t0);
+                       return bn;
                } else if (equi && lnil) {
                        /* antiselect for nil value: turn into range
                         * select for nil-nil range (i.e. everything
@@ -1366,36 +1374,45 @@ BATselect(BAT *b, BAT *s, const void *tl
 
        if (hval && ((equi && !(li && hi)) || ATOMcmp(t, tl, th) > 0)) {
                /* empty range */
+               bn = BATdense(0, 0, 0);
                ALGODEBUG fprintf(stderr, "#BATselect(b=" ALGOBATFMT
-                                 ",s=" ALGOOPTBATFMT ",anti=%d): "
+                                 ",s=" ALGOOPTBATFMT ",anti=%d)=" ALGOOPTBATFMT
+                                 " (" LLFMT " usec): "
                                  "empty range\n",
-                                 ALGOBATPAR(b), ALGOOPTBATPAR(s), anti);
-               return BATdense(0, 0, 0);
+                                 ALGOBATPAR(b), ALGOOPTBATPAR(s), anti,
+                                 ALGOOPTBATPAR(bn), GDKusec() - t0);
+               return bn;
        }
        if (equi && lnil && b->tnonil) {
                /* return all nils, but there aren't any */
+               bn = BATdense(0, 0, 0);
                ALGODEBUG fprintf(stderr, "#BATselect(b=" ALGOBATFMT
-                                 ",s=" ALGOOPTBATFMT ",anti=%d): "
+                                 ",s=" ALGOOPTBATFMT ",anti=%d)=" ALGOOPTBATFMT
+                                 " (" LLFMT " usec): "
                                  "equi-nil, nonil\n",
-                                 ALGOBATPAR(b), ALGOOPTBATPAR(s), anti);
-               return BATdense(0, 0, 0);
+                                 ALGOBATPAR(b), ALGOOPTBATPAR(s), anti,
+                                 ALGOOPTBATPAR(bn), GDKusec() - t0);
+               return bn;
        }
 
        if (!equi && !lval && !hval && lnil && b->tnonil) {
                /* return all non-nils from a BAT that doesn't have
                 * any: i.e. return everything */
-               ALGODEBUG fprintf(stderr, "#BATselect(b=" ALGOBATFMT
-                                 ",s=" ALGOOPTBATFMT ",anti=%d): "
-                                 "everything, nonil\n",
-                                 ALGOBATPAR(b), ALGOOPTBATPAR(s), anti);
                if (s) {
                        oid o = b->hseqbase + BATcount(b);
                        BUN q = SORTfndfirst(s, &o);
                        BUN p = SORTfndfirst(s, &b->hseqbase);
-                       return BATslice(s, p, q);
+                       bn = BATslice(s, p, q);
                } else {
-                       return BATdense(0, b->hseqbase, BATcount(b));
+                       bn = BATdense(0, b->hseqbase, BATcount(b));
                }
+               ALGODEBUG fprintf(stderr, "#BATselect(b=" ALGOBATFMT
+                                 ",s=" ALGOOPTBATFMT ",anti=%d)=" ALGOOPTBATFMT
+                                 " (" LLFMT " usec): "
+                                 "everything, nonil\n",
+                                 ALGOBATPAR(b), ALGOOPTBATPAR(s), anti,
+                                 ALGOOPTBATPAR(bn), GDKusec() - t0);
+               return bn;
        }
 
        if (anti) {
@@ -1414,11 +1431,13 @@ BATselect(BAT *b, BAT *s, const void *tl
                                                 * BAT, so nothing
                                                 * left over for
                                                 * anti */
+                                               bn = BATdense(0, 0, 0);
                                                ALGODEBUG fprintf(stderr, 
"#BATselect(b=" ALGOBATFMT
-                                                                 ",s=" 
ALGOOPTBATFMT ",anti=%d): "
+                                                                 ",s=" 
ALGOOPTBATFMT ",anti=%d)=" ALGOOPTBATFMT
+                                                                 " (" LLFMT " 
usec): "
                                                                  "nothing, out 
of range\n",
-                                                                 
ALGOBATPAR(b), ALGOOPTBATPAR(s), anti);
-                                               return BATdense(0, 0, 0);
+                                                                 
ALGOBATPAR(b), ALGOOPTBATPAR(s), anti, ALGOOPTBATPAR(bn), GDKusec() - t0);
+                                               return bn;
                                        }
                                }
                        }
@@ -1432,13 +1451,16 @@ BATselect(BAT *b, BAT *s, const void *tl
                        if (c < 0 || (!hi && c == 0)) {
                                /* smallest value in BAT larger than
                                 * what we're looking for */
+                               bn = BATdense(0, 0, 0);
                                ALGODEBUG fprintf(stderr, "#BATselect(b="
                                                  ALGOBATFMT ",s="
-                                                 ALGOOPTBATFMT ",anti=%d): "
+                                                 ALGOOPTBATFMT ",anti=%d)=" 
ALGOOPTBATFMT
+                                                 " (" LLFMT " usec): "
                                                  "nothing, out of range\n",
                                                  ALGOBATPAR(b),
-                                                 ALGOOPTBATPAR(s), anti);
-                               return BATdense(0, 0, 0);
+                                                 ALGOOPTBATPAR(s), anti,
+                                                 ALGOOPTBATPAR(bn), GDKusec() 
- t0);
+                               return bn;
                        }
                }
                if (lval && (prop = BATgetprop(b, GDK_MAX_VALUE)) != NULL) {
@@ -1446,13 +1468,16 @@ BATselect(BAT *b, BAT *s, const void *tl
                        if (c > 0 || (!li && c == 0)) {
                                /* largest value in BAT smaller than
                                 * what we're looking for */
+                               bn = BATdense(0, 0, 0);
                                ALGODEBUG fprintf(stderr, "#BATselect(b="
                                                  ALGOBATFMT ",s="
-                                                 ALGOOPTBATFMT ",anti=%d): "
+                                                 ALGOOPTBATFMT ",anti=%d)=" 
ALGOOPTBATFMT
+                                                 " (" LLFMT " usec): "
                                                  "nothing, out of range\n",
                                                  ALGOBATPAR(b),
-                                                 ALGOOPTBATPAR(s), anti);
-                               return BATdense(0, 0, 0);
+                                                 ALGOOPTBATPAR(s), anti,
+                                                 ALGOOPTBATPAR(bn), GDKusec() 
- t0);
+                               return bn;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to