Changeset: 133a88ba41e2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=133a88ba41e2
Removed Files:
        
sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.single
Modified Files:
        gdk/gdk_batop.c
        gdk/gdk_private.h
        monetdb5/modules/kernel/aggr.mx
        monetdb5/modules/kernel/aggr_be_avg.mx
        monetdb5/modules/kernel/aggr_be_count.mx
        monetdb5/modules/kernel/aggr_be_minmax.mx
        monetdb5/modules/kernel/aggr_be_prod.mx
        monetdb5/modules/kernel/aggr_be_sum.mx
        monetdb5/modules/kernel/aggr_bge_avg.mx
        monetdb5/modules/kernel/aggr_bge_count.mx
        monetdb5/modules/kernel/aggr_bge_minmax.mx
        monetdb5/modules/kernel/aggr_bge_prod.mx
        monetdb5/modules/kernel/aggr_bge_sum.mx
        sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.sql
        sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
Branch: xid
Log Message:

Merge with default branch.


diffs (truncated from 369 to 300 lines):

diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -1033,10 +1033,10 @@ BATsetprop_wrd(BAT *b, int idx, wrd val)
        BATsetprop(b, idx, TYPE_wrd, &val);
 }
 
-BAT *
-BAT_select_(BAT *b, const void *tl, const void *th, bit li, bit hi, bit tail, 
bit anti, bit preserve_order)
+static BAT *
+BAT_select_(BAT *b, const void *tl, const void *th, bit li, bit hi, bit tail, 
bit anti)
 {
-       int hval, lval, equi, nequi = anti, t, ht, tt, lnil = 0;
+       int hval, lval, equi, t, ht, tt, lnil = 0;
        BUN offset, batcnt, estimate = 0;
        const void *nil;
        BAT *bn;
@@ -1065,7 +1065,7 @@ BAT_select_(BAT *b, const void *tl, cons
        } else {
                hval = ATOMcmp(t, th, nil) != 0;
        }
-       if (nequi) {
+       if (anti) {
                if (!lval != !hval) {
                        /* one of the end points is nil and the other
                         * isn't: swap sub-ranges */
@@ -1077,7 +1077,7 @@ BAT_select_(BAT *b, const void *tl, cons
                        tv = tl;
                        tl = th;
                        th = tv;
-                       nequi = 0;
+                       anti = 0;
                        equi = 0;
                } else if (!lval && !hval) {
                        /* antiselect for nil-nil range: all non-nil
@@ -1090,7 +1090,7 @@ BAT_select_(BAT *b, const void *tl, cons
                         * select for nil-nil range (i.e. everything
                         * but nil) */
                        equi = 0;
-                       nequi = 0;
+                       anti = 0;
                        lval = 0;
                        hval = 0;
                } else
@@ -1185,7 +1185,7 @@ BAT_select_(BAT *b, const void *tl, cons
                }
                ALGODEBUG THRprintf(GDKout, "#BAT_select_(b=%s): BATslice(v=%s, 
low=" BUNFMT ", high=" BUNFMT ");\n", BATgetId(b), BATgetId(v), low, high);
 
-               if (nequi) {
+               if (anti) {
                        BUN first = SORTfndlast(b, nil);
                        bn = BATslice2(v, first, low, high, BUNlast(b));
                } else {
@@ -1221,7 +1221,7 @@ BAT_select_(BAT *b, const void *tl, cons
                        BAT *tmp2;
                        ALGODEBUG THRprintf(GDKout, "#BAT_select_(b=%s): 
sampling: tmp2 = BAT_select_(tmp1=%s, tl, th, tail);\n", BATgetId(b), 
BATgetId(tmp1));
 
-                       tmp2 = BAT_select_(tmp1, tl, th, li, hi, tail, FALSE, 
FALSE);
+                       tmp2 = BAT_select_(tmp1, tl, th, li, hi, tail, FALSE);
                        if (tmp2) {
                                /* reserve 105% of what has been estimated */
                                estimate = (BUN) ((((lng) BATcount(tmp2)) * 
(lng) batcnt) / LL_CONSTANT(100));
@@ -1242,12 +1242,11 @@ BAT_select_(BAT *b, const void *tl, cons
        if (bn) {
                int nocheck = (estimate >= batcnt);
 
-               if (!preserve_order && equi && b->T->hash) {
+               if (equi && b->T->hash) {
                        ALGODEBUG THRprintf(GDKout, "#BAT_select_(b=%s): 
BAT_hashselect(b=%s, bn=%s, tl); (using existing hash-table)\n", BATgetId(b), 
BATgetId(b), BATgetId(bn));
 
                        bn = BAT_hashselect(b, bn, tl);
-               } else if (!preserve_order
-                               && equi
+               } else if (equi
                                && b->batPersistence == PERSISTENT
                                && (size_t) ATOMsize(b->ttype) > sizeof(BUN) / 4
                                && estimate < batcnt / 100
@@ -1260,9 +1259,9 @@ BAT_select_(BAT *b, const void *tl, cons
 
                        bn = BAT_hashselect(b, bn, tl);
                } else {
-                       ALGODEBUG THRprintf(GDKout, "#BAT_select_(b=%s): 
BAT_scanselect(b=%s, bn=%s, tl, th, equi=%d, nequi=%d, lval=%d, hval=%d, 
nocheck=%d);\n", BATgetId(b), BATgetId(b), BATgetId(bn), equi, nequi, lval, 
hval, nocheck);
+                       ALGODEBUG THRprintf(GDKout, "#BAT_select_(b=%s): 
BAT_scanselect(b=%s, bn=%s, tl, th, equi=%d, nequi=%d, lval=%d, hval=%d, 
nocheck=%d);\n", BATgetId(b), BATgetId(b), BATgetId(bn), equi, anti, lval, 
hval, nocheck);
 
-                       bn = BAT_scanselect(b, bn, tl, th, li, hi, equi, nequi, 
lval, hval, nocheck);
+                       bn = BAT_scanselect(b, bn, tl, th, li, hi, equi, anti, 
lval, hval, nocheck);
                }
        }
        if (bn == NULL) {
@@ -1325,31 +1324,31 @@ BAT_select_(BAT *b, const void *tl, cons
 BAT *
 BATselect_(BAT *b, const void *h, const void *t, bit li, bit hi)
 {
-       return BAT_select_(b, h, t, li, hi, TRUE, FALSE, FALSE);
+       return BAT_select_(b, h, t, li, hi, TRUE, FALSE);
 }
 
 BAT *
 BATuselect_(BAT *b, const void *h, const void *t, bit li, bit hi)
 {
-       return BAT_select_(b, h, t, li, hi, FALSE, FALSE, FALSE);
+       return BAT_select_(b, h, t, li, hi, FALSE, FALSE);
 }
 
 BAT *
 BATantiuselect_(BAT *b, const void *h, const void *t, bit li, bit hi)
 {
-       return BAT_select_(b, h, t, li, hi, FALSE, TRUE, FALSE);
+       return BAT_select_(b, h, t, li, hi, FALSE, TRUE);
 }
 
 BAT *
 BATselect(BAT *b, const void *h, const void *t)
 {
-       return BAT_select_(b, h, t, TRUE, TRUE, TRUE, FALSE, FALSE);
+       return BAT_select_(b, h, t, TRUE, TRUE, TRUE, FALSE);
 }
 
 BAT *
 BATuselect(BAT *b, const void *h, const void *t)
 {
-       return BAT_select_(b, h, t, TRUE, TRUE, FALSE, FALSE, FALSE);
+       return BAT_select_(b, h, t, TRUE, TRUE, FALSE, FALSE);
 }
 
 /*
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -27,7 +27,6 @@ int ATOMunknown_add(str nme);
 int ATOMunknown_del(int a);
 int ATOMunknown_find(str nme);
 str ATOMunknown_name(int a);
-BAT *BAT_select_(BAT *b, const void *tl, const void *th, bit li, bit hi, bit 
tail, bit anti, bit preserve_order);
 BUN BATbuncount(BAT *b);
 int BATcheckmodes(BAT *b, int persistent);
 BAT *BATclone(BAT *b, BUN capacity);
diff --git a/monetdb5/modules/kernel/aggr.mx b/monetdb5/modules/kernel/aggr.mx
--- a/monetdb5/modules/kernel/aggr.mx
+++ b/monetdb5/modules/kernel/aggr.mx
@@ -264,7 +264,6 @@ address AX3count_no_nil3;
 #include "monetdb_config.h"
 @(
 #include <gdk.h>
-#include <gdk_scanselect.h>    /* for type-specific 
HT_bunfastins_nocheck_noinc(), until they're moved to gdk.mx */
 @)
 
 #include "mal.h"
diff --git a/monetdb5/modules/kernel/aggr_be_avg.mx 
b/monetdb5/modules/kernel/aggr_be_avg.mx
--- a/monetdb5/modules/kernel/aggr_be_avg.mx
+++ b/monetdb5/modules/kernel/aggr_be_avg.mx
@@ -32,7 +32,6 @@ All Rights Reserved.
  */
 #include "monetdb_config.h"
 #include <gdk.h>
-#include <gdk_scanselect.h>    /* for type-specific 
HT_bunfastins_nocheck_noinc(), until they're moved to gdk.mx */
 #include "aggr.h"
 #include "aggr_be_avg.h"
 
diff --git a/monetdb5/modules/kernel/aggr_be_count.mx 
b/monetdb5/modules/kernel/aggr_be_count.mx
--- a/monetdb5/modules/kernel/aggr_be_count.mx
+++ b/monetdb5/modules/kernel/aggr_be_count.mx
@@ -32,7 +32,6 @@ All Rights Reserved.
  */
 #include "monetdb_config.h"
 #include <gdk.h>
-#include <gdk_scanselect.h>    /* for type-specific 
HT_bunfastins_nocheck_noinc(), until they're moved to gdk.mx */
 #include "aggr.h"
 #include "aggr_be_count.h"
 
diff --git a/monetdb5/modules/kernel/aggr_be_minmax.mx 
b/monetdb5/modules/kernel/aggr_be_minmax.mx
--- a/monetdb5/modules/kernel/aggr_be_minmax.mx
+++ b/monetdb5/modules/kernel/aggr_be_minmax.mx
@@ -32,7 +32,6 @@ All Rights Reserved.
  */
 #include "monetdb_config.h"
 #include <gdk.h>
-#include <gdk_scanselect.h>    /* for type-specific 
HT_bunfastins_nocheck_noinc(), until they're moved to gdk.mx */
 #include "aggr.h"
 #include "aggr_be_minmax.h"
 
diff --git a/monetdb5/modules/kernel/aggr_be_prod.mx 
b/monetdb5/modules/kernel/aggr_be_prod.mx
--- a/monetdb5/modules/kernel/aggr_be_prod.mx
+++ b/monetdb5/modules/kernel/aggr_be_prod.mx
@@ -32,7 +32,6 @@ All Rights Reserved.
  */
 #include "monetdb_config.h"
 #include <gdk.h>
-#include <gdk_scanselect.h>    /* for type-specific 
HT_bunfastins_nocheck_noinc(), until they're moved to gdk.mx */
 #include "aggr.h"
 #include "aggr_be_prod.h"
 
diff --git a/monetdb5/modules/kernel/aggr_be_sum.mx 
b/monetdb5/modules/kernel/aggr_be_sum.mx
--- a/monetdb5/modules/kernel/aggr_be_sum.mx
+++ b/monetdb5/modules/kernel/aggr_be_sum.mx
@@ -32,7 +32,6 @@ All Rights Reserved.
  */
 #include "monetdb_config.h"
 #include <gdk.h>
-#include <gdk_scanselect.h>    /* for type-specific 
HT_bunfastins_nocheck_noinc(), until they're moved to gdk.mx */
 #include "aggr.h"
 #include "aggr_be_sum.h"
 
diff --git a/monetdb5/modules/kernel/aggr_bge_avg.mx 
b/monetdb5/modules/kernel/aggr_bge_avg.mx
--- a/monetdb5/modules/kernel/aggr_bge_avg.mx
+++ b/monetdb5/modules/kernel/aggr_bge_avg.mx
@@ -32,7 +32,6 @@ All Rights Reserved.
  */
 #include "monetdb_config.h"
 #include <gdk.h>
-#include <gdk_scanselect.h>    /* for type-specific 
HT_bunfastins_nocheck_noinc(), until they're moved to gdk.mx */
 #include "aggr.h"
 #include "aggr_bge_avg.h"
 #include "aggr_be_avg.h"
diff --git a/monetdb5/modules/kernel/aggr_bge_count.mx 
b/monetdb5/modules/kernel/aggr_bge_count.mx
--- a/monetdb5/modules/kernel/aggr_bge_count.mx
+++ b/monetdb5/modules/kernel/aggr_bge_count.mx
@@ -32,7 +32,6 @@ All Rights Reserved.
  */
 #include "monetdb_config.h"
 #include <gdk.h>
-#include <gdk_scanselect.h>    /* for type-specific 
HT_bunfastins_nocheck_noinc(), until they're moved to gdk.mx */
 #include "aggr.h"
 #include "aggr_bge_count.h"
 #include "aggr_be_count.h"
diff --git a/monetdb5/modules/kernel/aggr_bge_minmax.mx 
b/monetdb5/modules/kernel/aggr_bge_minmax.mx
--- a/monetdb5/modules/kernel/aggr_bge_minmax.mx
+++ b/monetdb5/modules/kernel/aggr_bge_minmax.mx
@@ -32,7 +32,6 @@ All Rights Reserved.
  */
 #include "monetdb_config.h"
 #include <gdk.h>
-#include <gdk_scanselect.h>    /* for type-specific 
HT_bunfastins_nocheck_noinc(), until they're moved to gdk.mx */
 #include "aggr.h"
 #include "aggr_bge_minmax.h"
 #include "aggr_be_minmax.h"
diff --git a/monetdb5/modules/kernel/aggr_bge_prod.mx 
b/monetdb5/modules/kernel/aggr_bge_prod.mx
--- a/monetdb5/modules/kernel/aggr_bge_prod.mx
+++ b/monetdb5/modules/kernel/aggr_bge_prod.mx
@@ -32,7 +32,6 @@ All Rights Reserved.
  */
 #include "monetdb_config.h"
 #include <gdk.h>
-#include <gdk_scanselect.h>    /* for type-specific 
HT_bunfastins_nocheck_noinc(), until they're moved to gdk.mx */
 #include "aggr.h"
 #include "aggr_bge_prod.h"
 #include "aggr_be_prod.h"
diff --git a/monetdb5/modules/kernel/aggr_bge_sum.mx 
b/monetdb5/modules/kernel/aggr_bge_sum.mx
--- a/monetdb5/modules/kernel/aggr_bge_sum.mx
+++ b/monetdb5/modules/kernel/aggr_bge_sum.mx
@@ -32,7 +32,6 @@ All Rights Reserved.
  */
 #include "monetdb_config.h"
 #include <gdk.h>
-#include <gdk_scanselect.h>    /* for type-specific 
HT_bunfastins_nocheck_noinc(), until they're moved to gdk.mx */
 #include "aggr.h"
 #include "aggr_bge_sum.h"
 #include "aggr_be_sum.h"
diff --git a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.sql 
b/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.sql
--- a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.sql
+++ b/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.sql
@@ -1,3 +1,5 @@
+-- use sequential optimizer pipeline to ensure deterministic output also on 
multi-core systems
+set optimizer='sequential_pipe';
 create table tab_2826 (d double);
 insert into tab_2826 values (1.0),(2.0),(3.0),(4.0),(5.0);
 create function func_2826(f real) returns real begin return log10(f); end;
diff --git 
a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out 
b/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
--- a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
+++ b/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
@@ -35,8 +35,6 @@ Ready.
 % clob # type
 % 66 # length
 function user.s1_1{autoCommit=true}(A0:flt):void;
-    X_24 := nil:bat[:oid,:dbl];
-barrier X_57 := language.dataflow();
     X_3 := sql.mvc();
     X_4:bat[:oid,:dbl]  := sql.bind(X_3,"sys","tab_2826","d",0);
     X_9:bat[:oid,:dbl]  := sql.bind(X_3,"sys","tab_2826","d",2);
@@ -48,12 +46,11 @@ barrier X_57 := language.dataflow();
     X_17 := bat.reverse(X_16);
     X_18 := algebra.kdifference(X_15,X_17);
     X_19 := batcalc.flt(X_18);
-    X_44 := batmmath.log10(X_19);
-    X_20 := algebra.thetauselect(X_44,A0,">");
+    X_43 := batmmath.log10(X_19);
+    X_20 := algebra.thetauselect(X_43,A0,">");
     X_22 := algebra.markT(X_20,0@0:oid);
     X_23 := bat.reverse(X_22);
     X_24 := algebra.leftjoin(X_23,X_18);
-exit X_57;
     X_25 := sql.resultSet(1,1,X_24);
     sql.rsColumn(X_25,"sys.tab_2826","d","double",53,0,X_24);
     X_32 := io.stdout();
diff --git 
a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.single 
b/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.single
deleted file mode 100644
--- 
a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.single
+++ /dev/null
@@ -1,70 +0,0 @@
-stdout of test 'func_iter_vs_bulk.Bug-2826` in directory 
'test/BugTracker-2011` itself:
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to