Maksim Zhuravkov created IGNITE-28201:
-----------------------------------------
Summary: Sql. Partition Pruning. Arbitrary projections in INSERT
FROM SELECT
Key: IGNITE-28201
URL: https://issues.apache.org/jira/browse/IGNITE-28201
Project: Ignite
Issue Type: Improvement
Components: sql ai3
Reporter: Maksim Zhuravkov
Current partition pruning metadata collection algorithm for INSERT operations
has the following limitations:
- it can extract metadata only from column-order preserving projections in the
SELECT ... part of a INSERT INTO SELECT statement.
- it does not collect metadata when INSERT INTO ... SELECT .. reference
different tables.
Examples that can potentially benefit from partition pruning but the algorithm
does not handle them:
{noformat}
CREATE TABLE t1 (c1 INT, c2 INT, c3 INT, PRIMARY KEY (c1, c2));
CREATE TABLE t2 (id INT, val INT PRIMARY KEY (c1, c2));
--- Same table
--- PP metadata t1(INSERT)={id=99}, t1 (SELECT)={id=42}
INSERT INTO t2 SELECT 99, val FROM t1 WHERE id = 42
--- Different tables
--- t1.c1 and t1.c2 are constant
--- PP metadata t1={c1=1, c2=2}, t2={id=42}
INSERT INTO t1 SELECT 1, 2, val FROM t2 WHERE id = 42
--- t1.c1 = t2.id
--- PP metadata t1={c1=42, c2=2}, t2={id=42}
INSERT INTO t1 SELECT id, 2, val FROM t2 WHERE id = 42
{noformat}
We need to update the algorithm to support extracting metadata for such cases.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)