Repository: incubator-hawq Updated Branches: refs/heads/master 808038750 -> 165ccac9c
Bump GPOPT version to 1.617 and handle NULL pointer with partition elimination over full outer join queries. Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/165ccac9 Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/165ccac9 Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/165ccac9 Branch: refs/heads/master Commit: 165ccac9c1614790129461e500786c05e3fcb936 Parents: 8080387 Author: Xin Zhang <[email protected]> Authored: Mon Jan 11 11:33:05 2016 -0800 Committer: Xin Zhang <[email protected]> Committed: Wed Jan 13 14:08:31 2016 -0800 ---------------------------------------------------------------------- src/backend/gpopt/ivy.xml | 2 +- .../expected/partition_full_outer_join.out | 34 ++++++++++++++++++++ .../regress/sql/partition_full_outer_join.sql | 28 ++++++++++++++++ 3 files changed, 63 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/165ccac9/src/backend/gpopt/ivy.xml ---------------------------------------------------------------------- diff --git a/src/backend/gpopt/ivy.xml b/src/backend/gpopt/ivy.xml index 03eb923..db5c89f 100644 --- a/src/backend/gpopt/ivy.xml +++ b/src/backend/gpopt/ivy.xml @@ -38,7 +38,7 @@ under the License. </configurations> <dependencies> - <dependency org="emc" name="optimizer" rev="1.616" conf="osx106_x86->osx106_x86_32;osx106_x86_32->osx106_x86_32;rhel5_x86_64->rhel5_x86_64;suse10_x86_64->suse10_x86_64" /> + <dependency org="emc" name="optimizer" rev="1.617" conf="osx106_x86->osx106_x86_32;osx106_x86_32->osx106_x86_32;rhel5_x86_64->rhel5_x86_64;suse10_x86_64->suse10_x86_64" /> <dependency org="emc" name="libgpos" rev="1.133" conf="osx106_x86->osx106_x86_32;osx106_x86_32->osx106_x86_32;rhel5_x86_64->rhel5_x86_64;suse10_x86_64->suse10_x86_64" /> <dependency org="xerces" name="xerces-c" rev="3.1.1-p1" conf="osx106_x86->osx106_x86_32;osx106_x86_32->osx106_x86_32;rhel5_x86_64->rhel5_x86_64;suse10_x86_64->suse10_x86_64" /> </dependencies> http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/165ccac9/src/test/regress/expected/partition_full_outer_join.out ---------------------------------------------------------------------- diff --git a/src/test/regress/expected/partition_full_outer_join.out b/src/test/regress/expected/partition_full_outer_join.out new file mode 100644 index 0000000..151821e --- /dev/null +++ b/src/test/regress/expected/partition_full_outer_join.out @@ -0,0 +1,34 @@ +-- start_ignore +drop table if exists s1; +NOTICE: table "s1" does not exist, skipping +drop table if exists s2; +NOTICE: table "s2" does not exist, skipping +-- setup two partitioned tables s1 and s2 +create table s1 (d1 int, p1 int) +distributed by (d1) +partition by list (p1) +( + values (0), + values (1)); +NOTICE: CREATE TABLE will create partition "s1_1_prt_1" for table "s1" +NOTICE: CREATE TABLE will create partition "s1_1_prt_2" for table "s1" +create table s2 (d2 int, p2 int) +distributed by (d2) +partition by list (p2) +( + values (0), + values (1)); +NOTICE: CREATE TABLE will create partition "s2_1_prt_1" for table "s2" +NOTICE: CREATE TABLE will create partition "s2_1_prt_2" for table "s2" +-- end_ignore +-- expect GPOPT fall back to legacy query optimizer +-- since we don't support partition elimination through full outer joins +select * from s1 full outer join s2 on s1.d1 = s2.d2 and s1.p1 = s2.p2 where s1.p1 = 1; + d1 | p1 | d2 | p2 +----+----+----+---- +(0 rows) + +-- start_ignore +drop table if exists s1; +drop table if exists s2; +-- end_ignore http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/165ccac9/src/test/regress/sql/partition_full_outer_join.sql ---------------------------------------------------------------------- diff --git a/src/test/regress/sql/partition_full_outer_join.sql b/src/test/regress/sql/partition_full_outer_join.sql new file mode 100644 index 0000000..8450905 --- /dev/null +++ b/src/test/regress/sql/partition_full_outer_join.sql @@ -0,0 +1,28 @@ +-- start_ignore +drop table if exists s1; +drop table if exists s2; + +-- setup two partitioned tables s1 and s2 +create table s1 (d1 int, p1 int) +distributed by (d1) +partition by list (p1) +( + values (0), + values (1)); + +create table s2 (d2 int, p2 int) +distributed by (d2) +partition by list (p2) +( + values (0), + values (1)); +-- end_ignore + +-- expect GPOPT fall back to legacy query optimizer +-- since we don't support partition elimination through full outer joins +select * from s1 full outer join s2 on s1.d1 = s2.d2 and s1.p1 = s2.p2 where s1.p1 = 1; + +-- start_ignore +drop table if exists s1; +drop table if exists s2; +-- end_ignore
