Changeset: b76d01a2549b for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b76d01a2549b Modified Files: Branch: default Log Message:
Merge with Jun2010 branch. diffs (144 lines): diff -r 0434c1df9af2 -r b76d01a2549b MonetDB5/src/modules/kernel/aggr.mx --- a/MonetDB5/src/modules/kernel/aggr.mx Mon Jul 05 10:42:47 2010 +0200 +++ b/MonetDB5/src/modules/kernel/aggr.mx Mon Jul 05 10:45:11 2010 +0200 @@ -196,11 +196,15 @@ @- In case the head of the group extend (e) is sorted, we assume that also the -the tail of group map (g) "almost" sorted --- or at least clustered such -that group IDs in cluster i are smaller than those in cluster i+1; this is -the case if the first grouping attribute (column/BAT) is sorted --- and -resorted to "local scanning" rather than (inherently random and expensive) -hash-lookups. +the tail of the group map (g) is "almost" sorted or "mostly ascending" --- +or at least clustered such that group IDs in cluster i are smaller than +those in cluster i+1; this is the case if the first grouping attribute +(column/BAT) is sorted --- and resorted to "local scanning" rather than +(inherently random and expensive) hash-lookups. +Lacking a suitable and efficient way to detect that the tail of the group +map (g) is "almost sorted" or "mostly ascending", we require that the tail +of the group map (g) is sorted --- the "local scanning" performs much worse +than hash-lookups in case the tail of the group map (g) is in random order. @h #define MERGE_aggr_init \ BUN _i = 0, _j = BATcount(bn), _r = BUNfirst(bn); \ diff -r 0434c1df9af2 -r b76d01a2549b MonetDB5/src/modules/kernel/aggr_be_avg.mx --- a/MonetDB5/src/modules/kernel/aggr_be_avg.mx Mon Jul 05 10:42:47 2010 +0200 +++ b/MonetDB5/src/modules/kernel/aggr_be_avg.mx Mon Jul 05 10:45:11 2010 +0200 @@ -236,7 +236,7 @@ } else { @:aggrX3_avg(0,0,SCANfndOID,loc,BUNhloc(bi,p),@1,@2,b...@2(bni,r),r-off)@ } - } else if (BAThordered(e)&1) { + } else if (BATtordered(b)&BAThordered(e)&1) { /* merge lookup */ MERGE_aggr_init; if (BAThdense(b)) { diff -r 0434c1df9af2 -r b76d01a2549b MonetDB5/src/modules/kernel/aggr_be_count.mx --- a/MonetDB5/src/modules/kernel/aggr_be_count.mx Mon Jul 05 10:42:47 2010 +0200 +++ b/MonetDB5/src/modules/kernel/aggr_be_count.mx Mon Jul 05 10:45:11 2010 +0200 @@ -232,7 +232,7 @@ } else { @:aggrX3_count(0,0,SCANfndOID,loc,BUNhloc(bi,p),BUNtloc(bni,r))@ } - } else if (BAThordered(e)&1) { + } else if (BATtordered(b)&BAThordered(e)&1) { /* merge lookup */ MERGE_aggr_init; if (BAThdense(b)) { diff -r 0434c1df9af2 -r b76d01a2549b MonetDB5/src/modules/kernel/aggr_be_minmax.mx --- a/MonetDB5/src/modules/kernel/aggr_be_minmax.mx Mon Jul 05 10:42:47 2010 +0200 +++ b/MonetDB5/src/modules/kernel/aggr_be_minmax.mx Mon Jul 05 10:45:11 2010 +0200 @@ -293,7 +293,7 @@ } else { @:aggrx3_minm...@5(@2,0,SCANfndOID,loc,BUNhloc(bi,p),@3,@4,r-off,@6)@ } - } else if (BAThordered(e)&1) { + } else if (BATtordered(b)&BAThordered(e)&1) { /* merge lookup */ MERGE_aggr_init; if (BAThdense(b)) { diff -r 0434c1df9af2 -r b76d01a2549b MonetDB5/src/modules/kernel/aggr_be_prod.mx --- a/MonetDB5/src/modules/kernel/aggr_be_prod.mx Mon Jul 05 10:42:47 2010 +0200 +++ b/MonetDB5/src/modules/kernel/aggr_be_prod.mx Mon Jul 05 10:45:11 2010 +0200 @@ -234,7 +234,7 @@ } else { @:aggrX3_prod(0,0,SCANfndOID,loc,BUNhloc(bi,p),@1,@2,b...@2(bni,r),@3,r-off)@ } - } else if (BAThordered(e)&1) { + } else if (BATtordered(b)&BAThordered(e)&1) { /* merge lookup */ MERGE_aggr_init; if (BAThdense(b)) { diff -r 0434c1df9af2 -r b76d01a2549b MonetDB5/src/modules/kernel/aggr_be_sum.mx --- a/MonetDB5/src/modules/kernel/aggr_be_sum.mx Mon Jul 05 10:42:47 2010 +0200 +++ b/MonetDB5/src/modules/kernel/aggr_be_sum.mx Mon Jul 05 10:45:11 2010 +0200 @@ -232,7 +232,7 @@ } else { @:aggrX3_sum(0,0,SCANfndOID,loc,BUNhloc(bi,p),@1,@2,b...@2(bni,r),@3,r-off)@ } - } else if (BAThordered(e)&1) { + } else if (BATtordered(b)&BAThordered(e)&1) { /* merge lookup */ MERGE_aggr_init; if (BAThdense(b)) { diff -r 0434c1df9af2 -r b76d01a2549b MonetDB5/src/modules/kernel/aggr_bge_avg.mx --- a/MonetDB5/src/modules/kernel/aggr_bge_avg.mx Mon Jul 05 10:42:47 2010 +0200 +++ b/MonetDB5/src/modules/kernel/aggr_bge_avg.mx Mon Jul 05 10:45:11 2010 +0200 @@ -279,7 +279,7 @@ } else { @:aggrX3_avg3(0,0,SCANfndOID,loc,BUNhloc(bi,p),@1,@2,b...@2(bni,r),r-off)@ } - } else if (BAThordered(e)&1) { + } else if (BATtordered(g)&BAThordered(e)&1) { /* merge lookup */ MERGE_aggr_init; if (BAThdense(b)) { diff -r 0434c1df9af2 -r b76d01a2549b MonetDB5/src/modules/kernel/aggr_bge_count.mx --- a/MonetDB5/src/modules/kernel/aggr_bge_count.mx Mon Jul 05 10:42:47 2010 +0200 +++ b/MonetDB5/src/modules/kernel/aggr_bge_count.mx Mon Jul 05 10:45:11 2010 +0200 @@ -268,7 +268,7 @@ } else { @:aggrX3_count3(0,0,SCANfndOID,loc,BUNhloc(bi,p),BUNtloc(bni,r))@ } - } else if (BAThordered(e)&1) { + } else if (BATtordered(g)&BAThordered(e)&1) { /* merge lookup */ MERGE_aggr_init; if (BAThdense(b)) { diff -r 0434c1df9af2 -r b76d01a2549b MonetDB5/src/modules/kernel/aggr_bge_minmax.mx --- a/MonetDB5/src/modules/kernel/aggr_bge_minmax.mx Mon Jul 05 10:42:47 2010 +0200 +++ b/MonetDB5/src/modules/kernel/aggr_bge_minmax.mx Mon Jul 05 10:45:11 2010 +0200 @@ -361,7 +361,7 @@ } else { @:aggrx3_minma...@5(@2,0,SCANfndOID,loc,BUNhloc(bi,p),@3,@4,r-off,@6)@ } - } else if (BAThordered(e)&1) { + } else if (BATtordered(g)&BAThordered(e)&1) { /* merge lookup */ MERGE_aggr_init; if (BAThdense(b)) { diff -r 0434c1df9af2 -r b76d01a2549b MonetDB5/src/modules/kernel/aggr_bge_prod.mx --- a/MonetDB5/src/modules/kernel/aggr_bge_prod.mx Mon Jul 05 10:42:47 2010 +0200 +++ b/MonetDB5/src/modules/kernel/aggr_bge_prod.mx Mon Jul 05 10:45:11 2010 +0200 @@ -320,7 +320,7 @@ } else { @:aggrX3_prod3(0,0,SCANfndOID,loc,BUNhloc(bi,p),@1,BUNtloc(bni,r),if (w >= base && w < end),@2,r-off)@ } - } else if (BAThordered(e)&1) { + } else if (BATtordered(g)&BAThordered(e)&1) { /* merge lookup */ MERGE_aggr_init; if (BAThdense(b)) { diff -r 0434c1df9af2 -r b76d01a2549b MonetDB5/src/modules/kernel/aggr_bge_sum.mx --- a/MonetDB5/src/modules/kernel/aggr_bge_sum.mx Mon Jul 05 10:42:47 2010 +0200 +++ b/MonetDB5/src/modules/kernel/aggr_bge_sum.mx Mon Jul 05 10:45:11 2010 +0200 @@ -316,7 +316,7 @@ } else { @:aggrX3_sum3(0,0,SCANfndOID,loc,BUNhloc(bi,p),@1,BUNtloc(bni,r),if (w >= base && w < end),@2,r-off)@ } - } else if (BAThordered(e)&1) { + } else if (BATtordered(g)&BAThordered(e)&1) { /* merge lookup */ MERGE_aggr_init; if (BAThdense(b)) { _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list