未验证 提交 4152c90c 编写于 作者: A Ashuka Xue 提交者: GitHub

Bump ORCA version to 3.53.0 (#7995)

ICG changes for Create LAS Correlated Apply on in filter context
上级 e995ae86
...@@ -19,4 +19,4 @@ params: ...@@ -19,4 +19,4 @@ params:
BLD_TARGETS: BLD_TARGETS:
OUTPUT_ARTIFACT_DIR: gpdb_artifacts OUTPUT_ARTIFACT_DIR: gpdb_artifacts
CONFIGURE_FLAGS: CONFIGURE_FLAGS:
ORCA_TAG: v3.52.0 ORCA_TAG: v3.53.0
...@@ -40,10 +40,10 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([[ ...@@ -40,10 +40,10 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([[
#include <string.h> #include <string.h>
]], ]],
[ [
return strncmp("3.52.", GPORCA_VERSION_STRING, 5); return strncmp("3.53.", GPORCA_VERSION_STRING, 5);
])], ])],
[AC_MSG_RESULT([[ok]])], [AC_MSG_RESULT([[ok]])],
[AC_MSG_ERROR([Your ORCA version is expected to be 3.52.XXX])] [AC_MSG_ERROR([Your ORCA version is expected to be 3.53.XXX])]
) )
AC_LANG_POP([C++]) AC_LANG_POP([C++])
])# PGAC_CHECK_ORCA_VERSION ])# PGAC_CHECK_ORCA_VERSION
......
...@@ -13982,7 +13982,7 @@ int ...@@ -13982,7 +13982,7 @@ int
main () main ()
{ {
return strncmp("3.52.", GPORCA_VERSION_STRING, 5); return strncmp("3.53.", GPORCA_VERSION_STRING, 5);
; ;
return 0; return 0;
...@@ -13992,7 +13992,7 @@ if ac_fn_cxx_try_run "$LINENO"; then : ...@@ -13992,7 +13992,7 @@ if ac_fn_cxx_try_run "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; } $as_echo "ok" >&6; }
else else
as_fn_error $? "Your ORCA version is expected to be 3.52.XXX" "$LINENO" 5 as_fn_error $? "Your ORCA version is expected to be 3.53.XXX" "$LINENO" 5
fi fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
......
[requires] [requires]
orca/v3.52.0@gpdb/stable orca/v3.53.0@gpdb/stable
[imports] [imports]
include, * -> build/include include, * -> build/include
......
...@@ -1315,5 +1315,34 @@ with test as (select * from (select * from append_rel) p where att1 in (select a ...@@ -1315,5 +1315,34 @@ with test as (select * from (select * from append_rel) p where att1 in (select a
20 20
(1 row) (1 row)
-- Check correct results for subqueries in the target list
begin;
drop table if exists temp_a, temp_b, temp_c;
NOTICE: table "temp_a" does not exist, skipping
NOTICE: table "temp_b" does not exist, skipping
NOTICE: table "temp_c" does not exist, skipping
create table temp_a (a int ,b int);
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'a' as the Greenplum Database data distribution key for this table.
HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
create table temp_b (b int ,c int);
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'b' as the Greenplum Database data distribution key for this table.
HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
create table temp_c (c int, d int);
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'c' as the Greenplum Database data distribution key for this table.
HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
insert into temp_a values (1,2), (2,3), (3,4), (4,7), (5,19), (6,13), (7,23), (7,17);
insert into temp_b values (1,2), (2,2), (3,2), (4,2), (5,3), (6,3), (7,3), (8,3), (10,4);
insert into temp_c values (NULL, 2), (2, 2), (4, NULL), (NULL, 3), (1, 3), (8, NULL), (7, 2), (NULL, NULL);
commit;
select sum(case when b in (select b from temp_b where t.a>c) then 1 else 0 end),sum(case when not( b in (select b from temp_b where t.a>c)) then 1 else 0 end) from temp_a t;
sum | sum
-----+-----
2 | 6
(1 row)
select sum(case when b in (select b from temp_b where EXISTS (select sum(d) from temp_c where t.a > d)) then 1 else 0 end),sum(case when not( b in (select b from temp_b where t.a>c)) then 1 else 0 end) from temp_a t;
ERROR: correlated subquery with skip-level correlations is not supported
select sum(case when b in (select b from temp_b where EXISTS (select sum(d) from temp_c where t.a > d or t.a > temp_b.c)) then 1 else 0 end),sum(case when not( b in (select b from temp_b, temp_c where t.a>temp_b.c or t.a > temp_c.d)) then 1 else 0 end) from temp_a t;
ERROR: correlated subquery with skip-level correlations is not supported
set client_min_messages='warning'; set client_min_messages='warning';
drop schema qp_subquery cascade; drop schema qp_subquery cascade;
...@@ -1318,5 +1318,42 @@ with test as (select * from (select * from append_rel) p where att1 in (select a ...@@ -1318,5 +1318,42 @@ with test as (select * from (select * from append_rel) p where att1 in (select a
20 20
(1 row) (1 row)
-- Check correct results for subqueries in the target list
begin;
drop table if exists temp_a, temp_b, temp_c;
NOTICE: table "temp_a" does not exist, skipping
NOTICE: table "temp_b" does not exist, skipping
NOTICE: table "temp_c" does not exist, skipping
create table temp_a (a int ,b int);
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'a' as the Greenplum Database data distribution key for this table.
HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
create table temp_b (b int ,c int);
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'b' as the Greenplum Database data distribution key for this table.
HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
create table temp_c (c int, d int);
NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'c' as the Greenplum Database data distribution key for this table.
HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
insert into temp_a values (1,2), (2,3), (3,4), (4,7), (5,19), (6,13), (7,23), (7,17);
insert into temp_b values (1,2), (2,2), (3,2), (4,2), (5,3), (6,3), (7,3), (8,3), (10,4);
insert into temp_c values (NULL, 2), (2, 2), (4, NULL), (NULL, 3), (1, 3), (8, NULL), (7, 2), (NULL, NULL);
commit;
select sum(case when b in (select b from temp_b where t.a>c) then 1 else 0 end),sum(case when not( b in (select b from temp_b where t.a>c)) then 1 else 0 end) from temp_a t;
sum | sum
-----+-----
2 | 6
(1 row)
select sum(case when b in (select b from temp_b where EXISTS (select sum(d) from temp_c where t.a > d)) then 1 else 0 end),sum(case when not( b in (select b from temp_b where t.a>c)) then 1 else 0 end) from temp_a t;
sum | sum
-----+-----
4 | 6
(1 row)
select sum(case when b in (select b from temp_b where EXISTS (select sum(d) from temp_c where t.a > d or t.a > temp_b.c)) then 1 else 0 end),sum(case when not( b in (select b from temp_b, temp_c where t.a>temp_b.c or t.a > temp_c.d)) then 1 else 0 end) from temp_a t;
sum | sum
-----+-----
4 | 6
(1 row)
set client_min_messages='warning'; set client_min_messages='warning';
drop schema qp_subquery cascade; drop schema qp_subquery cascade;
...@@ -582,5 +582,21 @@ insert into append_rel values(1,10),(2,20),(3,30); ...@@ -582,5 +582,21 @@ insert into append_rel values(1,10),(2,20),(3,30);
explain with test as (select * from (select * from append_rel) p where att1 in (select att1 from append_rel where att2 >= 19) ) select att2 from append_rel where att1 in (select att1 from test where att2 <= 21); explain with test as (select * from (select * from append_rel) p where att1 in (select att1 from append_rel where att2 >= 19) ) select att2 from append_rel where att1 in (select att1 from test where att2 <= 21);
with test as (select * from (select * from append_rel) p where att1 in (select att1 from append_rel where att2 >= 19) ) select att2 from append_rel where att1 in (select att1 from test where att2 <= 21); with test as (select * from (select * from append_rel) p where att1 in (select att1 from append_rel where att2 >= 19) ) select att2 from append_rel where att1 in (select att1 from test where att2 <= 21);
-- Check correct results for subqueries in the target list
begin;
drop table if exists temp_a, temp_b, temp_c;
create table temp_a (a int ,b int);
create table temp_b (b int ,c int);
create table temp_c (c int, d int);
insert into temp_a values (1,2), (2,3), (3,4), (4,7), (5,19), (6,13), (7,23), (7,17);
insert into temp_b values (1,2), (2,2), (3,2), (4,2), (5,3), (6,3), (7,3), (8,3), (10,4);
insert into temp_c values (NULL, 2), (2, 2), (4, NULL), (NULL, 3), (1, 3), (8, NULL), (7, 2), (NULL, NULL);
commit;
select sum(case when b in (select b from temp_b where t.a>c) then 1 else 0 end),sum(case when not( b in (select b from temp_b where t.a>c)) then 1 else 0 end) from temp_a t;
select sum(case when b in (select b from temp_b where EXISTS (select sum(d) from temp_c where t.a > d)) then 1 else 0 end),sum(case when not( b in (select b from temp_b where t.a>c)) then 1 else 0 end) from temp_a t;
select sum(case when b in (select b from temp_b where EXISTS (select sum(d) from temp_c where t.a > d or t.a > temp_b.c)) then 1 else 0 end),sum(case when not( b in (select b from temp_b, temp_c where t.a>temp_b.c or t.a > temp_c.d)) then 1 else 0 end) from temp_a t;
set client_min_messages='warning'; set client_min_messages='warning';
drop schema qp_subquery cascade; drop schema qp_subquery cascade;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册