diff --git a/config/orca.m4 b/config/orca.m4 index 8cd7b26c8b340538e162647925baa1419884e4a4..66dbbfd92ce84d68c8b4ac3e5be55c41e8146d9c 100644 --- a/config/orca.m4 +++ b/config/orca.m4 @@ -53,10 +53,10 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include ]], [ -return strncmp("2.35.", GPORCA_VERSION_STRING, 5); +return strncmp("2.36.", GPORCA_VERSION_STRING, 5); ])], [AC_MSG_RESULT([[ok]])], -[AC_MSG_ERROR([Your ORCA version is expected to be 2.35.XXX])] +[AC_MSG_ERROR([Your ORCA version is expected to be 2.36.XXX])] ) AC_LANG_POP([C++]) ])# PGAC_CHECK_ORCA_VERSION diff --git a/configure b/configure index 1f2ed22d17a5bef40d5c820e1862573f57b780cc..fd1651376810248e6226d655ccc0ecee09a091fd 100755 --- a/configure +++ b/configure @@ -12427,7 +12427,7 @@ int main () { -return strncmp("2.35.", GPORCA_VERSION_STRING, 5); +return strncmp("2.36.", GPORCA_VERSION_STRING, 5); ; return 0; @@ -12437,7 +12437,7 @@ if ac_fn_cxx_try_run "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else - as_fn_error $? "Your ORCA version is expected to be 2.35.XXX" "$LINENO" 5 + as_fn_error $? "Your ORCA version is expected to be 2.36.XXX" "$LINENO" 5 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ diff --git a/gpAux/releng/releng.mk b/gpAux/releng/releng.mk index 39ad703f86b907bec3c476f22e47163e915a45c8..3f91386f952408268036ad9e35e8a19c169b12c8 100644 --- a/gpAux/releng/releng.mk +++ b/gpAux/releng/releng.mk @@ -120,7 +120,7 @@ sync_tools: opt_write_test /opt/releng/apache-ant -Divyrepo.user=$(IVYREPO_USER) -Divyrepo.passwd="$(IVYREPO_PASSWD)" resolve); @echo "Resolve finished"; - LD_LIBRARY_PATH='' wget -O - https://github.com/greenplum-db/gporca/releases/download/v2.35.1/bin_orca_centos5_release.tar.gz | tar zxf - -C $(BLD_TOP)/ext/$(BLD_ARCH) + LD_LIBRARY_PATH='' wget -O - https://github.com/greenplum-db/gporca/releases/download/v2.36.0/bin_orca_centos5_release.tar.gz | tar zxf - -C $(BLD_TOP)/ext/$(BLD_ARCH) clean_tools: opt_write_test @cd releng/make/dependencies; \ diff --git a/src/test/regress/expected/notin_optimizer.out b/src/test/regress/expected/notin_optimizer.out index cd52d54c8e5ba5f8fa118b4a759ca98dd8a75ee0..b33dfc7416e8de7ce63e8aa07abbfe2d5ed97144 100644 --- a/src/test/regress/expected/notin_optimizer.out +++ b/src/test/regress/expected/notin_optimizer.out @@ -1104,9 +1104,9 @@ select c1 from t1 where not exists (select c2 from t2 where c2 not in (select c3 --q40 -- explain select c1 from t1 where not exists (select c2 from t2 where exists (select c3 from t3) and c2 <>all (select c3 from t3) and c2 = c1); - QUERY PLAN ---------------------------------------------------------------------------------------------------------------------- - Gather Motion 3:1 (slice3; segments: 3) (cost=0.00..1324894.16 rows=4 width=4) + QUERY PLAN +------------------------------------------------------------------------------------------------------------------------------ + Gather Motion 3:1 (slice4; segments: 3) (cost=0.00..1324894.16 rows=4 width=4) -> Hash Left Anti Semi Join (cost=0.00..1324894.16 rows=2 width=4) Hash Cond: t1.c1 = t2.c2 -> Table Scan on t1 (cost=0.00..431.00 rows=4 width=4) @@ -1116,15 +1116,17 @@ explain select c1 from t1 where not exists (select c2 from t2 where exists (sele -> Nested Loop EXISTS Join (cost=0.00..1324032.16 rows=2 width=4) Join Filter: true -> Table Scan on t2 (cost=0.00..431.00 rows=2 width=4) - -> Materialize (cost=0.00..431.00 rows=3 width=1) - -> Broadcast Motion 3:3 (slice1; segments: 3) (cost=0.00..431.00 rows=3 width=1) - -> Table Scan on t3 (cost=0.00..431.00 rows=1 width=1) + -> Materialize (cost=0.00..431.00 rows=1 width=1) + -> Broadcast Motion 1:3 (slice2) (cost=0.00..431.00 rows=3 width=1) + -> Limit (cost=0.00..431.00 rows=1 width=1) + -> Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..431.00 rows=1 width=1) + -> Limit (cost=0.00..431.00 rows=1 width=1) + -> Table Scan on t3 (cost=0.00..431.00 rows=1 width=1) -> Hash (cost=431.00..431.00 rows=3 width=4) - -> Broadcast Motion 3:3 (slice2; segments: 3) (cost=0.00..431.00 rows=3 width=4) + -> Broadcast Motion 3:3 (slice3; segments: 3) (cost=0.00..431.00 rows=3 width=4) -> Table Scan on t3 (cost=0.00..431.00 rows=1 width=4) - Settings: optimizer=on - Optimizer status: PQO version 2.34.0 -(18 rows) + Optimizer status: PQO version 2.35.1 +(20 rows) select c1 from t1 where not exists (select c2 from t2 where exists (select c3 from t3) and c2 <>all (select c3 from t3) and c2 = c1); c1 diff --git a/src/test/regress/expected/subselect_gp_optimizer.out b/src/test/regress/expected/subselect_gp_optimizer.out index ff8b6ed3a809c30100c23d290962368ed2bcd46b..2b9878be7082bfb0a5047c5c29fb32e73fb2f852 100644 --- a/src/test/regress/expected/subselect_gp_optimizer.out +++ b/src/test/regress/expected/subselect_gp_optimizer.out @@ -134,19 +134,21 @@ NOTICE: table "mrs_t1" does not exist, skipping create table mrs_t1(x int) distributed by (x); insert into mrs_t1 select generate_series(1,20); explain select * from mrs_t1 where exists (select x from mrs_t1 where x < -1); - QUERY PLAN ---------------------------------------------------------------------------------------------------- - Gather Motion 2:1 (slice2; segments: 2) (cost=0.00..1293.00 rows=20 width=4) - -> Nested Loop EXISTS Join (cost=0.00..1293.00 rows=10 width=4) + QUERY PLAN +------------------------------------------------------------------------------------------------------------ + Gather Motion 3:1 (slice3; segments: 3) (cost=0.00..1293.00 rows=20 width=4) + -> Nested Loop EXISTS Join (cost=0.00..1293.00 rows=7 width=4) Join Filter: true - -> Table Scan on mrs_t1 (cost=0.00..431.00 rows=10 width=4) - -> Materialize (cost=0.00..431.00 rows=2 width=1) - -> Broadcast Motion 2:2 (slice1; segments: 2) (cost=0.00..431.00 rows=2 width=1) - -> Table Scan on mrs_t1 (cost=0.00..431.00 rows=1 width=1) - Filter: x < (-1) - Settings: optimizer=on; optimizer_segments=3 - Optimizer status: PQO version 1.621 -(10 rows) + -> Table Scan on mrs_t1 (cost=0.00..431.00 rows=7 width=4) + -> Materialize (cost=0.00..431.00 rows=1 width=1) + -> Broadcast Motion 1:3 (slice2) (cost=0.00..431.00 rows=3 width=1) + -> Limit (cost=0.00..431.00 rows=1 width=1) + -> Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..431.00 rows=1 width=1) + -> Table Scan on mrs_t1 (cost=0.00..431.00 rows=1 width=1) + Filter: x < (-1) + Settings: optimizer_nestloop_factor=1; optimizer_segments=3 + Optimizer status: PQO version 2.35.1 +(12 rows) select * from mrs_t1 where exists (select x from mrs_t1 where x < -1) order by 1; x @@ -154,19 +156,21 @@ select * from mrs_t1 where exists (select x from mrs_t1 where x < -1) order by 1 (0 rows) explain select * from mrs_t1 where exists (select x from mrs_t1 where x = 1); - QUERY PLAN ---------------------------------------------------------------------------------------------------- - Gather Motion 2:1 (slice2; segments: 2) (cost=0.00..1293.00 rows=20 width=4) - -> Nested Loop EXISTS Join (cost=0.00..1293.00 rows=10 width=4) + QUERY PLAN +------------------------------------------------------------------------------------------------------------ + Gather Motion 3:1 (slice3; segments: 3) (cost=0.00..1293.00 rows=20 width=4) + -> Nested Loop EXISTS Join (cost=0.00..1293.00 rows=7 width=4) Join Filter: true - -> Table Scan on mrs_t1 (cost=0.00..431.00 rows=10 width=4) - -> Materialize (cost=0.00..431.00 rows=2 width=1) - -> Broadcast Motion 2:2 (slice1; segments: 2) (cost=0.00..431.00 rows=2 width=1) - -> Table Scan on mrs_t1 (cost=0.00..431.00 rows=1 width=1) - Filter: x = 1 - Settings: optimizer=on; optimizer_segments=3 - Optimizer status: PQO version 1.621 -(10 rows) + -> Table Scan on mrs_t1 (cost=0.00..431.00 rows=7 width=4) + -> Materialize (cost=0.00..431.00 rows=1 width=1) + -> Broadcast Motion 1:3 (slice2) (cost=0.00..431.00 rows=3 width=1) + -> Limit (cost=0.00..431.00 rows=1 width=1) + -> Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..431.00 rows=2 width=1) + -> Table Scan on mrs_t1 (cost=0.00..431.00 rows=1 width=1) + Filter: x = 1 + Settings: optimizer_nestloop_factor=1; optimizer_segments=3 + Optimizer status: PQO version 2.35.1 +(12 rows) select * from mrs_t1 where exists (select x from mrs_t1 where x = 1) order by 1; x