Changeset: 4d5dfc1a4dfc for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4d5dfc1a4dfc Branch: octbugs Log Message:
Merge with Oct2020 branch. diffs (60 lines): diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c --- a/gdk/gdk_join.c +++ b/gdk/gdk_join.c @@ -102,6 +102,9 @@ joinparamcheck(BAT *l, BAT *r1, BAT *r2, return GDK_SUCCEED; } +#define INCRSIZELOG (8 + (SIZEOF_OID / 2)) +#define INCRSIZE (1 << INCRSIZELOG) + /* Create the result bats for a join, returns the absolute maximum * number of outputs that could possibly be generated. */ static BUN @@ -153,8 +156,8 @@ joininitresults(BAT **r1p, BAT **r2p, BU maxsize = BUN_MAX; } size = estimate == BUN_NONE ? lcnt < rcnt ? lcnt : rcnt : estimate; - if (size < 1024) - size = 1024; + if (size < INCRSIZE) + size = INCRSIZE; if (size > maxsize) size = maxsize; if ((rkey | semi | only_misses) & nil_on_miss) { @@ -221,14 +224,17 @@ maybeextend(BAT *restrict r1, BAT *restr BUN cnt, BUN lcur, BUN lcnt, BUN maxsize) { if (BATcount(r1) + cnt > BATcapacity(r1)) { - /* make some extra space by extrapolating how much - * more we need (fraction of l we've seen so far is - * used to estimate a new size but with a shallow - * slope so that a skewed join doesn't overwhelm) */ + /* make some extra space by extrapolating how much more + * we need (fraction of l we've seen so far is used to + * estimate a new size but with a shallow slope so that + * a skewed join doesn't overwhelm, whilst making sure + * there is somewhat significant progress) */ BUN newcap = (BUN) (lcnt / (lcnt / 4.0 + lcur * .75) * (BATcount(r1) + cnt)); + newcap = (newcap + INCRSIZE - 1) & ~(((BUN) 1 << INCRSIZELOG) - 1); if (newcap < cnt + BATcount(r1)) - newcap = cnt + BATcount(r1) + 1024; - if (newcap > maxsize) + newcap = cnt + BATcount(r1) + INCRSIZE; + /* if close to maxsize, then just use maxsize */ + if (newcap + INCRSIZE > maxsize) newcap = maxsize; /* make sure heap.free is set properly before * extending */ diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt --- a/testing/CMakeLists.txt +++ b/testing/CMakeLists.txt @@ -74,7 +74,7 @@ endif(HAVE_LIBZ) if (HAVE_NETCDF) set(HAVE_NETCDF_FALSE "#") endif(HAVE_NETCDF) -if (HAVE_ODBC) +if (ODBC_FOUND) set(HAVE_ODBC_FALSE "#") endif(HAVE_ODBC) if (HAVE_PROJ) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list