Changeset: 5e64ddaa1026 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5e64ddaa1026 Modified Files: monetdb5/modules/mal/mat.c monetdb5/modules/mal/pqueue.c sql/test/BugTracker-2013/Tests/All Branch: mutation Log Message:
merge with default diffs (85 lines): diff --git a/monetdb5/modules/mal/mat.c b/monetdb5/modules/mal/mat.c --- a/monetdb5/modules/mal/mat.c +++ b/monetdb5/modules/mal/mat.c @@ -91,6 +91,8 @@ MATpackInternal(Client cntxt, MalBlkPtr BUN cap = 0; int tt = TYPE_any; int sorted =1, keyed=1, voidheaded=1; + (void) cntxt; + (void) mb; for (i = 1; i < p->argc; i++) { int bid = stk->stk[getArg(p,i)].val.ival; @@ -515,6 +517,7 @@ MATmergepack(Client cntxt, MalBlkPtr mb, } top--; } else{ + // resort priority queue onxt= *o_src[0]; for( j=1; j< top && onxt > *o_src[j]; j++){ oo = o_src[j]; o_src[j]= o_src[j-1]; o_src[j-1]= oo; @@ -525,13 +528,13 @@ MATmergepack(Client cntxt, MalBlkPtr mb, } for( i=0; i< top; i++) BBPunfix(bats[i]->batCacheid); + BATsetcount(bn, (BUN) (o - (oid *) Tloc(bn, BUNfirst(bn)))); + BATseqbase(bn, 0); BATsettrivprop(bn); GDKfree(bats); GDKfree(o_src); GDKfree(o_end); /* properties */ - BATsetcount(bn, (BUN) (o - (oid *) Tloc(bn, BUNfirst(bn)))); - BATseqbase(bn, 0); bn->trevsorted = 0; bn->tsorted = 1; bn->tkey = 1; diff --git a/monetdb5/modules/mal/pqueue.c b/monetdb5/modules/mal/pqueue.c --- a/monetdb5/modules/mal/pqueue.c +++ b/monetdb5/modules/mal/pqueue.c @@ -1067,11 +1067,12 @@ PQinit(int *ret, int *bid, wrd *maxsize) } static void -PQtopn_sorted_min( BAT **bn, BAT *b, wrd N ) +PQtopn_sorted_min( BAT **bn, BAT *b, wrd _N ) { - ssize_t cnt = BATcount(b); + BUN cnt = BATcount(b), N = (BUN) _N; + assert(_N >= 0); if (b->tsorted) { - b = BATslice(b, (cnt-N)<0?0:cnt-N, cnt); + b = BATslice(b, N>=cnt?0:cnt-N, cnt); *bn = BATsort_rev(b); BBPreleaseref(b->batCacheid); } else @@ -1079,13 +1080,14 @@ PQtopn_sorted_min( BAT **bn, BAT *b, wrd } static void -PQtopn_sorted_max( BAT **bn, BAT *b, wrd N ) +PQtopn_sorted_max( BAT **bn, BAT *b, wrd _N ) { - ssize_t cnt = BATcount(b); + BUN cnt = BATcount(b), N = (BUN) _N; + assert(_N >= 0); if (b->tsorted) *bn = BATslice(b, 0, N>=cnt?cnt:N); else { - b = BATslice(b, (cnt-N)<0?0:cnt-N, cnt); + b = BATslice(b, N>=cnt?0:cnt-N, cnt); *bn = BATsort_rev(b); BBPreleaseref(b->batCacheid); } diff --git a/sql/test/BugTracker-2013/Tests/All b/sql/test/BugTracker-2013/Tests/All --- a/sql/test/BugTracker-2013/Tests/All +++ b/sql/test/BugTracker-2013/Tests/All @@ -26,7 +26,7 @@ add_boolean.Bug-3289 prepare-smallint.Bug-3297 psm_functions_and_accessrights.Bug-3300 decimal-cast.Bug-3310 -hashed_exp.Bug-3313 +HAVE_GEOM?hashed_exp.Bug-3313 mitosis-floor.Bug-3330 avg_needs_abort_on_error.Bug-3329 unique_constraint_on_declared_table.Bug-3319 _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list