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