Changeset: b7e225391bcd for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b7e225391bcd Modified Files: gdk/gdk_bbp.mx monetdb5/modules/kernel/algebra.mx Branch: default Log Message:
Merge with Dec2011 branch. diffs (truncated from 349 to 300 lines): diff --git a/gdk/gdk_bbp.mx b/gdk/gdk_bbp.mx --- a/gdk/gdk_bbp.mx +++ b/gdk/gdk_bbp.mx @@ -2491,6 +2491,10 @@ BBPkeepref(bat i) i = -i; if (BBPcheck(i, "BBPkeepref")) { int lock = locked_by ? BBP_getpid() != locked_by : 1; + BAT *b; + + if ((b = BBPdescriptor(i)) != NULL) + BATsettrivprop(b); incref(i, TRUE, lock); assert(BBP_refs(i)); diff --git a/monetdb5/modules/kernel/algebra.mx b/monetdb5/modules/kernel/algebra.mx --- a/monetdb5/modules/kernel/algebra.mx +++ b/monetdb5/modules/kernel/algebra.mx @@ -1526,12 +1526,6 @@ CMDfragment(BAT **result, BAT *b, ptr hl } static int -CMDthetajoin(BAT **result, BAT *left, BAT *right, int *mode, lng *estimate) -{ - return (*result = BATthetajoin(left, right, *mode, *estimate == lng_nil || *estimate < 0 ? BUN_NONE : (*estimate >= (lng) BUN_MAX ? BUN_MAX : (BUN) *estimate))) ? GDK_SUCCEED : GDK_FAIL; -} - -static int CMDbandjoin(BAT **result, BAT *left, BAT *right, ptr minus, ptr plus, bit *li, bit *hi) { return (*result = BATbandjoin(left, right, minus, plus, *li, *hi)) ? GDK_SUCCEED : GDK_FAIL; @@ -2606,8 +2600,8 @@ ALGthetajoinEstimate(int *result, int *l BBPreleaseref(left->batCacheid); BBPreleaseref(right->batCacheid); throw(MAL, "algebra.thetajoin", ILLEGAL_ARGUMENT " Theta comparison <> not yet supported"); - } - CMDthetajoin(&bn, left, right, opc, estimate); + } + bn = BATthetajoin(left, right, *opc, *estimate == lng_nil || *estimate < 0 ? BUN_NONE : (*estimate >= (lng) BUN_MAX ? BUN_MAX : (BUN) *estimate)); if (bn) { if (!(bn->batDirty&2)) bn = BATsetaccess(bn, BAT_READ); *result = bn->batCacheid; diff --git a/monetdb5/modules/kernel/kprelude.mx b/monetdb5/modules/kernel/kprelude.mx --- a/monetdb5/modules/kernel/kprelude.mx +++ b/monetdb5/modules/kernel/kprelude.mx @@ -21,48 +21,48 @@ All Rights Reserved. The Mx macros below are used in many places throughout the code base. @= getBATdescriptor - if( (@2= BATdescriptor(*@1)) == NULL ){ @4; - throw(MAL, @3, RUNTIME_OBJECT_MISSING); - } + if ((@2 = BATdescriptor(*@1)) == NULL) { + @4; + throw(MAL, @3, RUNTIME_OBJECT_MISSING); + } @= tstBAT -if( bn== NULL) {*ret= 0; - throw(MAL, @1, MAL_MALLOC_FAIL);} + if (bn == NULL) { + *ret = 0; + throw(MAL, @1, MAL_MALLOC_FAIL); + } @= resBAT - bn = BATnew(ATOMtype(b->htype), TYPE_@1, BATcount(b)); - if ( bn== NULL) { - @3 + bn = BATnew(ATOMtype(b->htype), TYPE_@1, BATcount(b)); + if (bn == NULL) { throw(MAL, @2, MAL_MALLOC_FAIL); - } - bn->hsorted = b->hsorted; - bn->tsorted = b->tsorted; - bn->H->nonil = b->H->nonil; - bn->T->nonil = b->T->nonil; - BATkey(bn, BAThkey(b)); + } + bn->hsorted = b->hsorted; + bn->tsorted = b->tsorted; + bn->H->nonil = b->H->nonil; + bn->T->nonil = b->T->nonil; + BATkey(bn, BAThkey(b)); @= resultBAT - if (BAThvoid(b)) { - bn = BATnew(TYPE_void, TYPE_@1, BATcount(b)); - BATseqbase(bn, b->hseqbase); - } else { - bn = BATnew(b->htype, TYPE_@1, BATcount(b)); - } - if ( bn== NULL) { - @3 + if (BAThvoid(b)) { + bn = BATnew(TYPE_void, TYPE_@1, BATcount(b)); + BATseqbase(bn, b->hseqbase); + } else { + bn = BATnew(b->htype, TYPE_@1, BATcount(b)); + } + if (bn == NULL) { throw(MAL, @2, MAL_MALLOC_FAIL); - } - bn->hsorted = b->hsorted; - bn->tsorted = b->tsorted; - if (!BAThvoid(b)) - bn->H->nonil = b->H->nonil; - bn->T->nonil = b->T->nonil; - BATkey(bn, BAThkey(b)); + } + bn->hsorted = b->hsorted; + bn->tsorted = b->tsorted; + if (!BAThvoid(b)) + bn->H->nonil = b->H->nonil; + bn->T->nonil = b->T->nonil; + BATkey(bn, BAThkey(b)); @= voidresultBAT bn = BATnew(TYPE_void, @1, BATcount(b)); BATseqbase(bn, b->hseqbase); if (bn == NULL) { - @3 throw(MAL, @2, MAL_MALLOC_FAIL); } bn->hsorted = b->hsorted; @@ -73,10 +73,8 @@ if( bn== NULL) {*ret= 0; @= Pseudo if (BBPindex("view_@1_@2") <= 0) BATname(b, "@2"); - BATroles(b,"@1","@2"); - BATmode(b,TRANSIENT); + BATroles(b, "@1", "@2"); + BATmode(b, TRANSIENT); BBPkeepref(b->batCacheid); BATfakeCommit(b); *ret = b->batCacheid; - - diff --git a/monetdb5/tests/BugTracker/Tests/All b/monetdb5/tests/BugTracker/Tests/All --- a/monetdb5/tests/BugTracker/Tests/All +++ b/monetdb5/tests/BugTracker/Tests/All @@ -9,4 +9,5 @@ parser.SF-2051309 mal_var_persistent_over_sessions.SF-2581675 merge-join_properties.SF-2952191 joinpath-loop.Bug-2965 +thetajoin-properties.Bug-2974 algebra_project.Bug-3045 diff --git a/monetdb5/tests/BugTracker/Tests/thetajoin-properties.Bug-2974.mal b/monetdb5/tests/BugTracker/Tests/thetajoin-properties.Bug-2974.mal new file mode 100644 --- /dev/null +++ b/monetdb5/tests/BugTracker/Tests/thetajoin-properties.Bug-2974.mal @@ -0,0 +1,19 @@ +l := bat.new(:oid, :int); +r := bat.new(:oid, :int); + +l := bat.insert(l, 2@0, 1); +l := bat.insert(l, 6@0, 2); + +r := bat.insert(r, 3@0, 1); +r := bat.insert(r, 7@0, 2); + +rr := bat.reverse(r); + +t := algebra.thetajoin(l, rr, 1); # gt + +io.print(t); # returns 6@0 3@0 (2 is greater than 1?) + +b := bat.new(:oid, :oid); +b := bat.insert(b, t); # BUG: ERROR: BATkey: dense column must be unique. + +io.print(b); diff --git a/monetdb5/tests/BugTracker/Tests/thetajoin-properties.Bug-2974.stable.err b/monetdb5/tests/BugTracker/Tests/thetajoin-properties.Bug-2974.stable.err new file mode 100644 --- /dev/null +++ b/monetdb5/tests/BugTracker/Tests/thetajoin-properties.Bug-2974.stable.err @@ -0,0 +1,31 @@ +stderr of test 'thetajoin-properties.Bug-2974` in directory 'tests/BugTracker` itself: + + +# 16:24:34 > +# 16:24:34 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "gdk_dbfarm=/ufs/sjoerd/Monet-stable/var/MonetDB" "--set" "mapi_open=true" "--set" "mapi_port=37407" "--set" "monet_prompt=" "--trace" "--forcemito" "--set" "mal_listing=2" "--dbname=mTests_tests_BugTracker" "thetajoin-properties.Bug-2974.mal" +# 16:24:34 > + +# builtin opt gdk_dbname = demo +# builtin opt gdk_dbfarm = /ufs/sjoerd/Monet-stable/var/monetdb5/dbfarm +# builtin opt gdk_debug = 0 +# builtin opt gdk_alloc_map = no +# builtin opt gdk_vmtrim = yes +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 50000 +# builtin opt mapi_open = false +# builtin opt mapi_autosense = false +# builtin opt sql_optimizer = default_pipe +# builtin opt sql_debug = 0 +# cmdline opt gdk_nr_threads = 0 +# cmdline opt gdk_dbfarm = /ufs/sjoerd/Monet-stable/var/MonetDB +# cmdline opt mapi_open = true +# cmdline opt mapi_port = 37407 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbname = mTests_tests_BugTracker + +# 16:24:34 > +# 16:24:34 > "Done." +# 16:24:34 > + diff --git a/monetdb5/tests/BugTracker/Tests/thetajoin-properties.Bug-2974.stable.out b/monetdb5/tests/BugTracker/Tests/thetajoin-properties.Bug-2974.stable.out new file mode 100644 --- /dev/null +++ b/monetdb5/tests/BugTracker/Tests/thetajoin-properties.Bug-2974.stable.out @@ -0,0 +1,50 @@ +stdout of test 'thetajoin-properties.Bug-2974` in directory 'tests/BugTracker` itself: + + +# 16:24:34 > +# 16:24:34 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "gdk_dbfarm=/ufs/sjoerd/Monet-stable/var/MonetDB" "--set" "mapi_open=true" "--set" "mapi_port=37407" "--set" "monet_prompt=" "--trace" "--forcemito" "--set" "mal_listing=2" "--dbname=mTests_tests_BugTracker" "thetajoin-properties.Bug-2974.mal" +# 16:24:34 > + +# MonetDB 5 server v11.7.8 (hg id: b7fc08d320ae+) +# This is an unreleased version +# Serving database 'mTests_tests_BugTracker', using 8 threads +# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically linked +# Found 15.629 GiB available main-memory. +# Copyright (c) 1993-July 2008 CWI. +# Copyright (c) August 2008-2012 MonetDB B.V., all rights reserved +# Visit http://www.monetdb.org/ for further information +# Listening for connection requests on mapi:monetdb://madrid.ins.cwi.nl:37407/ +# MonetDB/GIS module loaded +# MonetDB/SQL module loaded +function user.main():void; + l := bat.new(:oid,:int); + r := bat.new(:oid,:int); + l := bat.insert(l,2@0,1); + l := bat.insert(l,6@0,2); + r := bat.insert(r,3@0,1); + r := bat.insert(r,7@0,2); + rr := bat.reverse(r); + t := algebra.thetajoin(l,rr,1); +# gt + io.print(t); +# returns 6@0 3@0 (2 is greater than 1?) + b := bat.new(:oid,:oid); + b := bat.insert(b,t); +# BUG: ERROR: BATkey: dense column must be unique. + io.print(b); +end main; +#-----------------# +# h t # name +# oid oid # type +#-----------------# +[ 6@0, 3@0 ] +#-----------------# +# h t # name +# void oid # type +#-----------------# +[ 6@0, 3@0 ] + +# 16:24:34 > +# 16:24:34 > "Done." +# 16:24:34 > + diff --git a/sql/test/BugTracker-2012/Tests/date_script_test.Bug-2973.stable.err.Windows b/sql/test/BugTracker-2012/Tests/date_script_test.Bug-2973.stable.err.Windows new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2012/Tests/date_script_test.Bug-2973.stable.err.Windows @@ -0,0 +1,49 @@ +stderr of test 'date_script_test.Bug-2973` in directory 'test/BugTracker-2012` itself: + + +# 14:12:34 > +# 14:12:34 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "gdk_dbfarm=/ufs/manegold/_/Monet/HG/Dec2011/prefix/--disable-debug_--enable-optimize_--disable-assert/var/MonetDB" "--set" "mapi_open=true" "--set" "mapi_port=36122" "--set" "monet_prompt=" "--trace" "--forcemito" "--set" "mal_listing=2" "--dbname=mTests_test_BugTracker-2012" "--set" "mal_listing=0" +# 14:12:34 > + +# builtin opt gdk_dbname = demo +# builtin opt gdk_dbfarm = /ufs/manegold/_/Monet/HG/Dec2011/prefix/--disable-debug_--enable-optimize_--disable-assert/var/monetdb5/dbfarm +# builtin opt gdk_debug = 0 +# builtin opt gdk_alloc_map = no +# builtin opt gdk_vmtrim = yes +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 50000 +# builtin opt mapi_open = false +# builtin opt mapi_autosense = false +# builtin opt sql_optimizer = default_pipe +# builtin opt sql_debug = 0 +# cmdline opt gdk_nr_threads = 0 +# cmdline opt gdk_dbfarm = /ufs/manegold/_/Monet/HG/Dec2011/prefix/--disable-debug_--enable-optimize_--disable-assert/var/MonetDB +# cmdline opt mapi_open = true +# cmdline opt mapi_port = 36122 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbname = mTests_test_BugTracker-2012 +# cmdline opt mal_listing = 0 + +# 14:12:34 > +# 14:12:34 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=rome" "--port=36122" +# 14:12:34 > + +MAPI = monetdb@LAB03:39057 +QUERY = select str_to_date('12-01-01','%y-%m-%d'); +ERROR = !strptime support missing _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list