Changeset: d8b4df3757a2 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d8b4df3757a2 Added Files: clients/python2/test/run.cmd clients/python3/test/run.cmd sql/test/BugTracker-2013/Tests/aggregates-typing-issues.Bug-3277.csv sql/test/BugTracker-2013/Tests/aggregates-typing-issues.Bug-3277.sql.in sql/test/BugTracker-2013/Tests/aggregates-typing-issues.Bug-3277.stable.err sql/test/BugTracker-2013/Tests/aggregates-typing-issues.Bug-3277.stable.out Removed Files: sql/Changelog.Feb2013 Modified Files: .hgtags MonetDB.spec NT/installer32/MonetDB-ODBC-Installer.vdproj NT/installer32/MonetDB5-Geom-Module.vdproj NT/installer32/MonetDB5-SQL-Installer.vdproj NT/installer64/MonetDB-ODBC-Installer.vdproj NT/installer64/MonetDB5-Geom-Module.vdproj NT/installer64/MonetDB5-SQL-Installer.vdproj NT/monetdb_config.h.in NT/rules.msc clients/Tests/exports.stable.out clients/mapilib/mapi.rc clients/odbc/driver/driver.rc clients/odbc/winsetup/setup.rc clients/python2/setup.py clients/python3/setup.py configure.ag debian/changelog debian/rules gdk/gdk_bat.c gdk/gdk_join.c gdk/libbat.rc libversions monetdb5/mal/mal_client.h monetdb5/mal/mal_instruction.h monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_profiler.c monetdb5/mal/mal_profiler.h monetdb5/mal/mal_recycle.c monetdb5/mal/mal_runtime.c monetdb5/mal/mal_stack.h monetdb5/modules/mal/batExtensions.c monetdb5/modules/mal/profiler.c monetdb5/modules/mal/profiler.mal monetdb5/modules/mal/recycle.c monetdb5/optimizer/Tests/cst01.mal monetdb5/optimizer/Tests/cst01.stable.out monetdb5/optimizer/opt_centipede.c monetdb5/optimizer/opt_evaluate.c monetdb5/optimizer/opt_prelude.c monetdb5/optimizer/opt_prelude.h monetdb5/optimizer/opt_pushselect.c monetdb5/tools/libmonetdb5.rc sql/ChangeLog-Archive sql/ChangeLog.Feb2013 sql/backends/monet5/sql.mx sql/backends/monet5/sql_gencode.c sql/storage/bat/bat_storage.c sql/storage/bat/bat_utils.c sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out sql/test/BugTracker-2013/Tests/All sql/test/BugTracker/Tests/explain.SF-1739353.stable.out sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out sql/test/mserver5-sql-readonly/Tests/mserver5-sql-readonly-table.stable.err testing/Mtest.py.in vertoo.data Branch: default Log Message:
merge diffs (truncated from 3105 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -520,3 +520,6 @@ fc0c9b319d2275215c283a7ece1d389e55b43217 0ee398b5025f7bc3c0320d70eb5c0a3707b69c67 mutation_root 7daa66a6db1c0404dbf7ed935437b59b7bf54d4b Feb2013_5 df2cbb7845660d94dc484bab860b6893344be92a Feb2013_SP2_release +cb55e859a50e0d06a50cc9e4f6e377ddea7cc3aa Feb2013_7 +df2cbb7845660d94dc484bab860b6893344be92a Feb2013_SP2_release +e0139450d66e4fc02c7f5d1d9e6f92fc22d862df Feb2013_SP2_release diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -722,6 +722,13 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libmonet rm -fr $RPM_BUILD_ROOT %changelog +* Fri Apr 26 2013 Sjoerd Mullender <sjo...@acm.org> - 11.15.7-20130426 +- Rebuilt. + +* Sat Apr 13 2013 Niels Nes <ni...@cwi.nl> - 11.15.7-20130426 +- sql: Added TEMPORARY to the non-reserved keywords, ie no need for double + quotes when used as identifier. + * Fri Apr 12 2013 Sjoerd Mullender <sjo...@acm.org> - 11.15.5-20130412 - Rebuilt. 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 @@ -2592,6 +2592,7 @@ str getName(str nme, size_t len); int getPC(MalBlkPtr mb, InstrPtr p); str getPipeCatalog(int *nme, int *def, int *stat); str getPipeDefinition(str name); +int getProfileCounter(int idx); stream *getProfilerStream(void); str getRef; str getRefName(MalBlkPtr mb, int i); @@ -2789,6 +2790,7 @@ str mergecandRef; aggrFun minAggr; str minRef; str min_no_nilRef; +str minusRef; str mirrorRef; str mitosisRef; str mkeyRef; @@ -3079,7 +3081,6 @@ str sqlRef; int sqlblob_fromstr(char *instr, int *l, blob **val); int sqlblob_tostr(str *tostr, int *l, blob *p); int sqlfunctionProp; -str sqlplusRef; str srvpoolRef; int stableProp; str startProfiling(void); diff --git a/clients/python2/test/run.cmd b/clients/python2/test/run.cmd new file mode 100644 --- /dev/null +++ b/clients/python2/test/run.cmd @@ -0,0 +1,8 @@ +set TSTDB=demo +set TSTHOSTNAME=localhost +set TSTUSERNAME=monetdb +set TSTPASSWORD=monetdb +set TSTDEBUG=no + +nosetests ./runtests.py +nosetests ./test_control.py diff --git a/clients/python3/test/run.cmd b/clients/python3/test/run.cmd new file mode 100644 --- /dev/null +++ b/clients/python3/test/run.cmd @@ -0,0 +1,8 @@ +set TSTDB=demo +set TSTHOSTNAME=localhost +set TSTUSERNAME=monetdb +set TSTPASSWORD=monetdb +set TSTDEBUG=no + +nosetests ./runtests.py +nosetests ./test_control.py diff --git a/debian/changelog b/debian/changelog --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,16 @@ +monetdb (11.15.7-20130426) unstable; urgency=low + + * Rebuilt. + + -- Sjoerd Mullender <sjo...@acm.org> Fri, 26 Apr 2013 13:09:55 +0200 + +monetdb (11.15.7-20130426) unstable; urgency=low + + * sql: Added TEMPORARY to the non-reserved keywords, ie no need for double + quotes when used as identifier. + + -- Niels Nes <ni...@cwi.nl> Sat, 13 Apr 2013 13:09:54 +0200 + monetdb (11.15.5-20130412) unstable; urgency=low * Rebuilt. diff --git a/debian/rules b/debian/rules --- a/debian/rules +++ b/debian/rules @@ -48,13 +48,13 @@ override_dh_auto_configure: # currently the test suite fails override_dh_auto_test: -override_dh_auto_install: - dh_auto_install - cd clients/python2 && python setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb - cd clients/python3 && python3 setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb - override_dh_clean: dh_clean cd clients/python2 && python setup.py clean cd clients/python3 && python3 setup.py clean +override_dh_python2: + dh_python2 clients/python2 + +override_dh_python3: + dh_python3 clients/python3 diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c --- a/gdk/gdk_bat.c +++ b/gdk/gdk_bat.c @@ -2812,6 +2812,7 @@ BATassertHeadProps(BAT *b) q = BUNlast(b); assert(b->H->heap.size <= b->H->heap.maxsize); + assert(b->H->heap.free >= headsize(b, BUNlast(b))); if (b->htype != TYPE_void) { assert(b->batCount <= b->batCapacity); assert(b->H->heap.size >= b->H->heap.free); diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c --- a/gdk/gdk_join.c +++ b/gdk/gdk_join.c @@ -84,11 +84,13 @@ joininitresults(BAT **r1p, BAT **r2p, BU r1->tkey = 1; r1->tsorted = 1; r1->trevsorted = 1; + r1->tdense = 1; r2->T->nil = 0; r2->T->nonil = 1; r2->tkey = 1; r2->tsorted = 1; r2->trevsorted = 1; + r2->tdense = 1; *r1p = r1; *r2p = r2; return GDK_SUCCEED; @@ -102,38 +104,64 @@ joininitresults(BAT **r1p, BAT **r2p, BU * (lo inclusive, hi not inclusive) in rvals/rvars. * If last is set, return the index of the first value > v; if last is * not set, return the index of the first value >= v. - * If reverse is -1, the values are sorted in reverse order and hence + * If ordering is -1, the values are sorted in reverse order and hence * all comparisons are reversed. */ static BUN binsearch(const oid *rcand, oid offset, const char *rvals, const char *rvars, int rwidth, BUN lo, BUN hi, const char *v, - int (*cmp)(const void *, const void *), int reverse, int last) + int (*cmp)(const void *, const void *), int ordering, int last) { BUN mid; int c; - assert(reverse == 1 || reverse == -1); + assert(ordering == 1 || ordering == -1); assert(lo < hi); --hi; /* now hi is inclusive */ - if ((c = reverse * cmp(VALUE(r, rcand ? rcand[lo] - offset : lo), v)) > 0 || + if ((c = ordering * cmp(VALUE(r, rcand ? rcand[lo] - offset : lo), v)) > 0 || (!last && c == 0)) return lo; - if ((c = reverse * cmp(VALUE(r, rcand ? rcand[hi] - offset : hi), v)) < 0 || + if ((c = ordering * cmp(VALUE(r, rcand ? rcand[hi] - offset : hi), v)) < 0 || (last && c == 0)) return hi + 1; +/* the two versions here are equivalent, the first is disabled because + * it does more work in the inner loop */ +#if 0 /* loop invariant: * last ? value@lo <= v < value@hi : value@lo < v <= value@hi */ while (hi - lo > 1) { mid = (hi + lo) / 2; - if ((c = reverse * cmp(VALUE(r, rcand ? rcand[mid] - offset : mid), v)) > 0 || + if ((c = ordering * cmp(VALUE(r, rcand ? rcand[mid] - offset : mid), v)) > 0 || (!last && c == 0)) hi = mid; else lo = mid; } +#else + if (last) { + /* loop invariant: + * value@lo <= v < value@hi */ + while (hi - lo > 1) { + mid = (hi + lo) / 2; + if (ordering * cmp(VALUE(r, rcand ? rcand[mid] - offset : mid), v) > 0) + hi = mid; + else + lo = mid; + } + } else { + /* loop invariant: + * value@lo < v <= value@hi */ + while (hi - lo > 1) { + mid = (hi + lo) / 2; + if (ordering * cmp(VALUE(r, rcand ? rcand[mid] - offset : mid), v) >= 0) + hi = mid; + else + lo = mid; + } + } +#endif return hi; } @@ -160,10 +188,18 @@ mergejoin(BAT *r1, BAT *r2, BAT *l, BAT const char *v, *prev = NULL; BUN nl, nr; int insert_nil; + /* equal_order is set if we can scan both BATs in the same + * order, so when both are sorted or both are reverse sorted + * -- important to know in order to skip over values; if l is + * not sorted, this must be set to 1 and we will always do a + * binary search on all of r */ int equal_order; - int lreverse, rreverse; + /* [lr]ordering is either 1 or -1 depending on the order of + * l/r: it determines the comparison function used */ + int lordering, rordering; oid lv; BUN i; + int lskipped = 0; /* whether we skipped values in l */ ALGODEBUG fprintf(stderr, "#mergejoin(l=%s#" BUNFMT "[%s]%s%s," "r=%s#" BUNFMT "[%s]%s%s,sl=%s#" BUNFMT "%s%s," @@ -219,30 +255,26 @@ mergejoin(BAT *r1, BAT *r2, BAT *l, BAT if (l->tsorted || l->trevsorted) { /* determine opportunistic scan window for l */ - for (nl = lcand ? (BUN) (lcandend - lcand) : lend - lstart, lscan = 4; + for (nl = lcand ? (BUN) (lcandend - lcand) : lend - lstart, + lscan = 4; nl > 0; lscan++) nl >>= 1; - - /* equal_order is set if we can scan both BATs in the - * same order, so when both are sorted or both are - * reverse sorted */ - equal_order = l->tsorted == r->tsorted || l->trevsorted == r->trevsorted; - /* [lr]reverse is either 1 or -1 depending on the - * order of l/r: it determines the comparison function - * used */ - lreverse = l->tsorted ? 1 : -1; + equal_order = l->tsorted == r->tsorted || + l->trevsorted == r->trevsorted; + lordering = l->tsorted && (r->tsorted|| !equal_order) ? 1 : -1; + rordering = equal_order ? lordering : -lordering; } else { /* if l not sorted, we will always use binary search * on r */ lscan = 0; equal_order = 1; - lreverse = 1; + lordering = 1; + rordering = r->tsorted ? 1 : -1; /* if l not sorted, we only know for sure that r2 is * key if l is, and that r1 is key if r is */ r2->tkey = l->tkey != 0; r1->tkey = r->tkey != 0; - } /* determine opportunistic scan window for r; if l is not * sorted this is only used to find range of equal values */ @@ -250,7 +282,6 @@ mergejoin(BAT *r1, BAT *r2, BAT *l, BAT nl > 0; rscan++) nl >>= 1; - rreverse = r->tsorted ? 1 : -1; while (lcand ? lcand < lcandend : lstart < lend) { if (!nil_on_miss && lscan > 0) { @@ -258,16 +289,40 @@ mergejoin(BAT *r1, BAT *r2, BAT *l, BAT * lscan from current position in l), use * binary search on l to skip over * non-matching values */ + if (equal_order) { + /* next value to match is first in r */ + v = VALUE(r, rcand ? rcand[0] - r->hseqbase : rstart); + } else { + /* next value to match is last in r */ + v = VALUE(r, rcand ? rcandend[-1] - r->hseqbase : rend - 1); + } if (lcand) { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list