Maksim Zhuravkov created IGNITE-22953:
-----------------------------------------
Summary: Sql. Incorrect query plan for INSERT INTO t SELECT ..
UNION SELECT ..
Key: IGNITE-22953
URL: https://issues.apache.org/jira/browse/IGNITE-22953
Project: Ignite
Issue Type: Improvement
Components: sql
Reporter: Maksim Zhuravkov
{noformat}
@Test
public void test() {
sql("CREATE TABLE t(a INT PRIMARY KEY, b INT)");
sql("INSERT INTO t (a, b) SELECT 1, 1 UNION SELECT 1, 1");
}
{noformat}
Expected result: Constrain violation, no rows inserted.
Actual result: a table with a single record.
Query plan:
ColocatedHashAggregate on top of UnionAll removes duplicate records produced
its input. This aggregate should not be present in a plan.
{noformat}
Project(ROWCOUNT=[CAST($0):BIGINT NOT NULL]): rowcount = 2.0, cumulative cost =
IgniteCost [rowCount=16.0, cpu=22.0, memory=28.0, io=2.0, network=10.0], id =
130
ColocatedHashAggregate(group=[{}], agg#0=[$SUM0($0)]): rowcount = 2.0,
cumulative cost = IgniteCost [rowCount=13.0, cpu=19.0, memory=27.0, io=1.0,
network=9.0], id = 129
Exchange(distribution=[single]): rowcount = 2.0, cumulative cost =
IgniteCost [rowCount=11.0, cpu=17.0, memory=17.0, io=1.0, network=9.0], id = 128
TableModify(table=[[PUBLIC, T]], operation=[INSERT], flattened=[false],
tableId=[11]): rowcount = 2.0, cumulative cost = IgniteCost [rowCount=9.0,
cpu=15.0, memory=17.0, io=1.0, network=1.0], id = 127
TrimExchange(distribution=[affinity[tableId=11, zoneId=11][0]]):
rowcount = 2.0, cumulative cost = IgniteCost [rowCount=8.0, cpu=14.0,
memory=16.0, io=0.0, network=0.0], id = 126
ColocatedHashAggregate(group=[{0, 1}]): rowcount = 2.0, cumulative
cost = IgniteCost [rowCount=6.0, cpu=6.0, memory=16.0, io=0.0, network=0.0], id
= 125
UnionAll(all=[true]): rowcount = 2.0, cumulative cost = IgniteCost
[rowCount=4.0, cpu=4.0, memory=0.0, io=0.0, network=0.0], id = 124
Values(tuples=[[{ 1, 1 }]]): rowcount = 1.0, cumulative cost =
IgniteCost [rowCount=1.0, cpu=1.0, memory=0.0, io=0.0, network=0.0], id = 122
Values(tuples=[[{ 1, 1 }]]): rowcount = 1.0, cumulative cost =
IgniteCost [rowCount=1.0, cpu=1.0, memory=0.0, io=0.0, network=0.0], id = 123
{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)