提交 c4a1dafd 编写于 作者: C Chris Hajas

Bump ORCA to v3.63.0

ICG changes for commit "Add 4 xforms for LOJ index apply on dynamic table
scan"

These transforms existed for non-partition tables, but not for partition
tables.
Authored-by: NChris Hajas <chajas@pivotal.io>
上级 828cafa1
......@@ -19,4 +19,4 @@ params:
BLD_TARGETS:
OUTPUT_ARTIFACT_DIR: gpdb_artifacts
CONFIGURE_FLAGS:
ORCA_TAG: v3.62.0
ORCA_TAG: v3.63.0
......@@ -40,10 +40,10 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([[
#include <string.h>
]],
[
return strncmp("3.62.", GPORCA_VERSION_STRING, 5);
return strncmp("3.63.", GPORCA_VERSION_STRING, 5);
])],
[AC_MSG_RESULT([[ok]])],
[AC_MSG_ERROR([Your ORCA version is expected to be 3.62.XXX])]
[AC_MSG_ERROR([Your ORCA version is expected to be 3.63.XXX])]
)
AC_LANG_POP([C++])
])# PGAC_CHECK_ORCA_VERSION
......
......@@ -13982,7 +13982,7 @@ int
main ()
{
return strncmp("3.62.", GPORCA_VERSION_STRING, 5);
return strncmp("3.63.", GPORCA_VERSION_STRING, 5);
;
return 0;
......@@ -13992,7 +13992,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 3.62.XXX" "$LINENO" 5
as_fn_error $? "Your ORCA version is expected to be 3.63.XXX" "$LINENO" 5
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
......
[requires]
orca/v3.62.0@gpdb/stable
orca/v3.63.0@gpdb/stable
[imports]
include, * -> build/include
......
......@@ -11199,3 +11199,79 @@ SELECT d FROM ffoo FULL OUTER JOIN fbar ON a = c WHERE b BETWEEN 5 and 9;
45
(3 rows)
-- test index left outer joins on bitmap and btree indexes on partitioned tables with and without select clause
DROP TABLE IF EXISTS touter, tinner;
NOTICE: table "touter" does not exist, skipping
NOTICE: table "tinner" does not exist, skipping
CREATE TABLE touter(a int, b int) DISTRIBUTED BY (a);
CREATE TABLE tinnerbitmap(a int, b int) DISTRIBUTED BY (a) PARTITION BY range(b) (start (0) end (6) every (3));
NOTICE: CREATE TABLE will create partition "tinnerbitmap_1_prt_1" for table "tinnerbitmap"
NOTICE: CREATE TABLE will create partition "tinnerbitmap_1_prt_2" for table "tinnerbitmap"
CREATE TABLE tinnerbtree(a int, b int) DISTRIBUTED BY (a) PARTITION BY range(b) (start (0) end (6) every (3));
NOTICE: CREATE TABLE will create partition "tinnerbtree_1_prt_1" for table "tinnerbtree"
NOTICE: CREATE TABLE will create partition "tinnerbtree_1_prt_2" for table "tinnerbtree"
INSERT INTO touter SELECT i, i%6 FROM generate_series(1,10) i;
INSERT INTO tinnerbitmap select i, i%6 FROM generate_series(1,1000) i;
INSERT INTO tinnerbtree select i, i%6 FROM generate_series(1,1000) i;
CREATE INDEX tinnerbitmap_ix ON tinnerbitmap USING bitmap(a);
CREATE INDEX tinnerbtree_ix ON tinnerbtree USING btree(a);
SELECT * FROM touter LEFT JOIN tinnerbitmap ON touter.a = tinnerbitmap.a;
a | b | a | b
----+---+----+---
1 | 1 | 1 | 1
6 | 0 | 6 | 0
5 | 5 | 5 | 5
9 | 3 | 9 | 3
10 | 4 | 10 | 4
2 | 2 | 2 | 2
7 | 1 | 7 | 1
8 | 2 | 8 | 2
3 | 3 | 3 | 3
4 | 4 | 4 | 4
(10 rows)
SELECT * FROM touter LEFT JOIN tinnerbitmap ON touter.a = tinnerbitmap.a AND tinnerbitmap.b=10;
a | b | a | b
----+---+---+---
2 | 2 | |
3 | 3 | |
4 | 4 | |
7 | 1 | |
8 | 2 | |
1 | 1 | |
5 | 5 | |
6 | 0 | |
9 | 3 | |
10 | 4 | |
(10 rows)
SELECT * FROM touter LEFT JOIN tinnerbtree ON touter.a = tinnerbtree.a;
a | b | a | b
----+---+----+---
1 | 1 | 1 | 1
6 | 0 | 6 | 0
5 | 5 | 5 | 5
9 | 3 | 9 | 3
10 | 4 | 10 | 4
2 | 2 | 2 | 2
7 | 1 | 7 | 1
8 | 2 | 8 | 2
3 | 3 | 3 | 3
4 | 4 | 4 | 4
(10 rows)
SELECT * FROM touter LEFT JOIN tinnerbtree ON touter.a = tinnerbtree.a AND tinnerbtree.b=10;
a | b | a | b
----+---+---+---
1 | 1 | |
5 | 5 | |
6 | 0 | |
9 | 3 | |
10 | 4 | |
2 | 2 | |
3 | 3 | |
4 | 4 | |
7 | 1 | |
8 | 2 | |
(10 rows)
......@@ -11319,6 +11319,82 @@ SELECT d FROM ffoo FULL OUTER JOIN fbar ON a = c WHERE b BETWEEN 5 and 9;
45
(3 rows)
-- test index left outer joins on bitmap and btree indexes on partitioned tables with and without select clause
DROP TABLE IF EXISTS touter, tinner;
NOTICE: table "touter" does not exist, skipping
NOTICE: table "tinner" does not exist, skipping
CREATE TABLE touter(a int, b int) DISTRIBUTED BY (a);
CREATE TABLE tinnerbitmap(a int, b int) DISTRIBUTED BY (a) PARTITION BY range(b) (start (0) end (6) every (3));
NOTICE: CREATE TABLE will create partition "tinnerbitmap_1_prt_1" for table "tinnerbitmap"
NOTICE: CREATE TABLE will create partition "tinnerbitmap_1_prt_2" for table "tinnerbitmap"
CREATE TABLE tinnerbtree(a int, b int) DISTRIBUTED BY (a) PARTITION BY range(b) (start (0) end (6) every (3));
NOTICE: CREATE TABLE will create partition "tinnerbtree_1_prt_1" for table "tinnerbtree"
NOTICE: CREATE TABLE will create partition "tinnerbtree_1_prt_2" for table "tinnerbtree"
INSERT INTO touter SELECT i, i%6 FROM generate_series(1,10) i;
INSERT INTO tinnerbitmap select i, i%6 FROM generate_series(1,1000) i;
INSERT INTO tinnerbtree select i, i%6 FROM generate_series(1,1000) i;
CREATE INDEX tinnerbitmap_ix ON tinnerbitmap USING bitmap(a);
CREATE INDEX tinnerbtree_ix ON tinnerbtree USING btree(a);
SELECT * FROM touter LEFT JOIN tinnerbitmap ON touter.a = tinnerbitmap.a;
a | b | a | b
----+---+----+---
1 | 1 | 1 | 1
6 | 0 | 6 | 0
5 | 5 | 5 | 5
9 | 3 | 9 | 3
10 | 4 | 10 | 4
2 | 2 | 2 | 2
7 | 1 | 7 | 1
8 | 2 | 8 | 2
3 | 3 | 3 | 3
4 | 4 | 4 | 4
(10 rows)
SELECT * FROM touter LEFT JOIN tinnerbitmap ON touter.a = tinnerbitmap.a AND tinnerbitmap.b=10;
a | b | a | b
----+---+---+---
2 | 2 | |
3 | 3 | |
4 | 4 | |
7 | 1 | |
8 | 2 | |
1 | 1 | |
5 | 5 | |
6 | 0 | |
9 | 3 | |
10 | 4 | |
(10 rows)
SELECT * FROM touter LEFT JOIN tinnerbtree ON touter.a = tinnerbtree.a;
a | b | a | b
----+---+----+---
1 | 1 | 1 | 1
6 | 0 | 6 | 0
5 | 5 | 5 | 5
9 | 3 | 9 | 3
10 | 4 | 10 | 4
2 | 2 | 2 | 2
7 | 1 | 7 | 1
8 | 2 | 8 | 2
3 | 3 | 3 | 3
4 | 4 | 4 | 4
(10 rows)
SELECT * FROM touter LEFT JOIN tinnerbtree ON touter.a = tinnerbtree.a AND tinnerbtree.b=10;
a | b | a | b
----+---+---+---
1 | 1 | |
5 | 5 | |
6 | 0 | |
9 | 3 | |
10 | 4 | |
2 | 2 | |
3 | 3 | |
4 | 4 | |
7 | 1 | |
8 | 2 | |
(10 rows)
-- start_ignore
DROP SCHEMA orca CASCADE;
NOTICE: drop cascades to 92 other objects
......
......@@ -2128,6 +2128,24 @@ CREATE TABLE fbar (c, d) AS (VALUES (1, 42), (2, 43), (4, 45), (5, 46)) DISTRIBU
SELECT d FROM ffoo FULL OUTER JOIN fbar ON a = c WHERE b BETWEEN 5 and 9;
-- test index left outer joins on bitmap and btree indexes on partitioned tables with and without select clause
DROP TABLE IF EXISTS touter, tinner;
CREATE TABLE touter(a int, b int) DISTRIBUTED BY (a);
CREATE TABLE tinnerbitmap(a int, b int) DISTRIBUTED BY (a) PARTITION BY range(b) (start (0) end (6) every (3));
CREATE TABLE tinnerbtree(a int, b int) DISTRIBUTED BY (a) PARTITION BY range(b) (start (0) end (6) every (3));
INSERT INTO touter SELECT i, i%6 FROM generate_series(1,10) i;
INSERT INTO tinnerbitmap select i, i%6 FROM generate_series(1,1000) i;
INSERT INTO tinnerbtree select i, i%6 FROM generate_series(1,1000) i;
CREATE INDEX tinnerbitmap_ix ON tinnerbitmap USING bitmap(a);
CREATE INDEX tinnerbtree_ix ON tinnerbtree USING btree(a);
SELECT * FROM touter LEFT JOIN tinnerbitmap ON touter.a = tinnerbitmap.a;
SELECT * FROM touter LEFT JOIN tinnerbitmap ON touter.a = tinnerbitmap.a AND tinnerbitmap.b=10;
SELECT * FROM touter LEFT JOIN tinnerbtree ON touter.a = tinnerbtree.a;
SELECT * FROM touter LEFT JOIN tinnerbtree ON touter.a = tinnerbtree.a AND tinnerbtree.b=10;
-- start_ignore
DROP SCHEMA orca CASCADE;
-- end_ignore
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册