This is an automated email from the ASF dual-hosted git repository.
jooger pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new d90255b5bbe ignite-27446 Extended string and literals in union (#7297)
d90255b5bbe is described below
commit d90255b5bbe47c336e81e0bb93987dafa6c4bdf2
Author: ygerzhedovich <[email protected]>
AuthorDate: Mon Dec 29 16:37:52 2025 +0200
ignite-27446 Extended string and literals in union (#7297)
---
RELEASE.md | 7 +-
.../aggregate/group/test_group_by_distinct.test | 16 +-
.../sql/group1/function/generic/test_coalesce.test | 15 +
.../function/generic/test_coalesce.test_ignore | 15 -
.../sql/group1/function/generic/test_decode.test | 8 +-
.../function/generic/test_decode.test_ignore | 20 -
.../sql/group1/set/test_basic_union.test | 12 +
.../internal/sql/engine/type/IgniteTypeSystem.java | 5 +
.../planner/AbstractTpcQueryPlannerTest.java | 80 +++-
.../sql/engine/planner/TpcdsQueryPlannerTest.java | 59 +--
.../sql/engine/planner/TpchQueryPlannerTest.java | 28 +-
.../src/test/resources/tpcds/plan/q13.plan | 6 +-
.../src/test/resources/tpcds/plan/q14.plan | 441 +++++++++++----------
.../src/test/resources/tpcds/plan/q34.plan | 2 +-
.../src/test/resources/tpcds/plan/q41.plan | 2 +-
.../src/test/resources/tpcds/plan/q5.plan | 99 ++---
.../src/test/resources/tpcds/plan/q71.plan | 2 +-
.../src/test/resources/tpcds/plan/q73.plan | 2 +-
.../src/test/resources/tpcds/plan/q76.plan | 53 +--
.../src/test/resources/tpcds/plan/q77.plan | 117 +++---
.../src/test/resources/tpcds/plan/q80.plan | 111 +++---
.../src/test/resources/tpcds/plan/q85.plan | 6 +-
.../src/test/resources/tpch/plan/q12.plan | 2 +-
.../src/test/resources/tpch/plan/q7.plan | 4 +-
.../src/test/resources/tpch/plan/variant_q12.plan | 2 +-
.../ignite/tests/docker/ItDockerConfigTest.java | 2 +-
26 files changed, 562 insertions(+), 554 deletions(-)
diff --git a/RELEASE.md b/RELEASE.md
index 333e6a37c2e..8aba2c359bf 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -103,15 +103,14 @@ For all the commands going forward:
```
cp packaging/build/release/* {dist.dev}/{version}-rc{rc}
```
-15. Check for ignite.version.full (TODO
[IGNITE-IGNITE-26834](https://issues.apache.org/jira/browse/IGNITE-26834)),
remove this step if it will be done automatically through gradle task.
-16. Commit ZIP and DEB\RPM packages:
+15. Commit ZIP and DEB\RPM packages:
```
cd {dist.dev}
svn add {version}-rc{rc}
svn commit -m “Apache Ignite {version} RC{rc}”
```
-17. Put the release on a vote on the developers mailing list.
-18. If vote is passed - send appropriate message for dev-list, otherwise apply
appropriate changes, don't forget to move `git tag` if there are code related
changes `git tag -d {version}-rc{rc}; git tag -a {version}-rc{rc} -m
'{version}-rc{rc}'; git push --tags`.
+16. Put the release on a vote on the developers mailing list.
+17. If vote is passed - send appropriate message for dev-list, otherwise apply
appropriate changes, don't forget to move `git tag` if there are code related
changes `git tag -d {version}-rc{rc}; git tag -a {version}-rc{rc} -m
'{version}-rc{rc}'; git push --tags`.
## Finalizing the Release
diff --git
a/modules/sql-engine/src/integrationTest/sql/group1/aggregate/group/test_group_by_distinct.test
b/modules/sql-engine/src/integrationTest/sql/group1/aggregate/group/test_group_by_distinct.test
index caf5146ee35..6c86c23f062 100644
---
a/modules/sql-engine/src/integrationTest/sql/group1/aggregate/group/test_group_by_distinct.test
+++
b/modules/sql-engine/src/integrationTest/sql/group1/aggregate/group/test_group_by_distinct.test
@@ -45,24 +45,24 @@ SELECT val FROM ( VALUES (1), (1.0::REAL), (2::DOUBLE),
(1.5::REAL), (2::DECIMAL
1.5
2.0
-# NOTE: Results include trailing whitespace
+# NOTE: Results don't include trailing whitespace
query I rowsort
SELECT val FROM ( VALUES ('abc'), ('ed'), ('f') ) t(val) GROUP BY DISTINCT
GROUPING SETS ((val), (val))
----
abc
-ed
-f
+ed
+f
-# NOTE: Results include trailing whitespace
+# NOTE: Results don't include trailing whitespace
query T rowsort
SELECT val FROM ( VALUES ('abc'), ('ed'), ('f') ) t(val) GROUP BY ALL GROUPING
SETS ((val), (val))
----
abc
abc
-ed
-ed
-f
-f
+ed
+ed
+f
+f
query IT rowsort
SELECT id, val FROM ( VALUES ('c4a0327c-44be-416d-ae90-75c05079789f'::UUID,
1), ('367fc6f1-40c3-4237-8545-3fd102d29134'::UUID, 2) ) t(val, id) GROUP BY ALL
GROUPING SETS ((val, id), (id, val))
diff --git
a/modules/sql-engine/src/integrationTest/sql/group1/function/generic/test_coalesce.test
b/modules/sql-engine/src/integrationTest/sql/group1/function/generic/test_coalesce.test
index 637aa8caa67..43bf10bee30 100644
---
a/modules/sql-engine/src/integrationTest/sql/group1/function/generic/test_coalesce.test
+++
b/modules/sql-engine/src/integrationTest/sql/group1/function/generic/test_coalesce.test
@@ -4,6 +4,21 @@
# COALESCE
+query T
+SELECT COALESCE(null, null, 'first', 'second', null)
+----
+first
+
+query T
+SELECT COALESCE(COALESCE(null::varchar, 'world'), 'blabla')
+----
+world
+
+query I
+SELECT COALESCE('a', 'aa')
+----
+a
+
query T
SELECT COALESCE(null, DATE '2021-07-08', DATE '2020-01-01')
----
diff --git
a/modules/sql-engine/src/integrationTest/sql/group1/function/generic/test_coalesce.test_ignore
b/modules/sql-engine/src/integrationTest/sql/group1/function/generic/test_coalesce.test_ignore
deleted file mode 100644
index ded9835e6d7..00000000000
---
a/modules/sql-engine/src/integrationTest/sql/group1/function/generic/test_coalesce.test_ignore
+++ /dev/null
@@ -1,15 +0,0 @@
-# name: test/sql/function/generic/test_coalesce.test
-# description: Test COALESCE function
-# group: [generic]
-# Ignored: https://issues.apache.org/jira/browse/IGNITE-15080
-
-# COALESCE
-query T
-SELECT COALESCE(null, null, 'first', 'second', null)
-----
-first
-
-query T
-SELECT COALESCE(COALESCE(null, 'world'), 'blabla')
-----
-world
diff --git
a/modules/sql-engine/src/integrationTest/sql/group1/function/generic/test_decode.test
b/modules/sql-engine/src/integrationTest/sql/group1/function/generic/test_decode.test
index 9da7f4c8822..ee1a7e95be9 100644
---
a/modules/sql-engine/src/integrationTest/sql/group1/function/generic/test_decode.test
+++
b/modules/sql-engine/src/integrationTest/sql/group1/function/generic/test_decode.test
@@ -4,21 +4,21 @@
query I
-SELECT DECODE(102, 101, 'IBM', 102, 'GRIDGAIN', 103, 'Hew','BALL')
+SELECT DECODE(102, 101, 'IBM', 102, 'GRIDGAIN', 103, 'Hewlett Packard','BALL')
----
GRIDGAIN
query T
-SELECT DECODE(108, 101, 'IBM', 102, 'GRI', 103, 'Hew','BALL')
+SELECT DECODE(108, 101, 'IBM', 102, 'GRIDGAIN', 103, 'Hewlett Packard','BALL')
----
BALL
query T
-SELECT DECODE(NULL, 101, 'IBM', 102, 'GRI', 103, 'Hew','BALL')
+SELECT DECODE(NULL, 101, 'IBM', 102, 'GRIDGAIN', 103, 'Hewlett Packard','BALL')
----
BALL
query T
-SELECT DECODE(108, 101, 'IBM', 102, 'GRI', 103, 'Hew')
+SELECT DECODE(108, 101, 'IBM', 102, 'GRIDGAIN', 103, 'Hewlett Packard')
----
NULL
diff --git
a/modules/sql-engine/src/integrationTest/sql/group1/function/generic/test_decode.test_ignore
b/modules/sql-engine/src/integrationTest/sql/group1/function/generic/test_decode.test_ignore
deleted file mode 100644
index d16866f1825..00000000000
---
a/modules/sql-engine/src/integrationTest/sql/group1/function/generic/test_decode.test_ignore
+++ /dev/null
@@ -1,20 +0,0 @@
-# name: test/sql/function/generic/test_decode.test
-# description: Test DECODE function
-# group: [generic]
-# Ignored: https://issues.apache.org/jira/browse/IGNITE-15080
-
-query I
-SELECT DECODE(102, 101, 'IBM', 102, 'GRIDGAIN', 103, 'Hewlett Packard','BALL')
-----
-GRIDGAIN
-
-query T
-SELECT DECODE(108, 101, 'IBM', 102, 'GRIDGAIN', 103, 'Hewlett Packard','BALL')
-----
-BALL
-
-query T
-SELECT DECODE(NULL, 101, 'IBM', 102, 'GRIDGAIN', 103, 'Hewlett Packard','BALL')
-----
-BALL
-
diff --git
a/modules/sql-engine/src/integrationTest/sql/group1/set/test_basic_union.test
b/modules/sql-engine/src/integrationTest/sql/group1/set/test_basic_union.test
index d97aa61f94d..aa4131edcc4 100644
---
a/modules/sql-engine/src/integrationTest/sql/group1/set/test_basic_union.test
+++
b/modules/sql-engine/src/integrationTest/sql/group1/set/test_basic_union.test
@@ -111,6 +111,18 @@ SELECT 1.1::FLOAT AS two UNION SELECT 2 UNION ALL SELECT
2.0::FLOAT ORDER BY 1;
2
2
+# Test Char to Varchar conversion
+query I
+SELECT 'aa' UNION ALL SELECT 'a'
+----
+aa
+a
+
+query II
+SELECT i, TYPEOF(i) FROM (SELECT 'a' i UNION ALL SELECT 'aa' i) t1 WHERE i='a'
+----
+a VARCHAR(2)
+
# Implicit type coercion for set operation should not happen
statement error: Type mismatch in column 1 of UNION
diff --git
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/type/IgniteTypeSystem.java
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/type/IgniteTypeSystem.java
index 3246adecbda..ecedf164489 100644
---
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/type/IgniteTypeSystem.java
+++
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/type/IgniteTypeSystem.java
@@ -275,4 +275,9 @@ public class IgniteTypeSystem extends RelDataTypeSystemImpl
{
return null;
}
+
+ /** {@inheritDoc} */
+ @Override public boolean shouldConvertRaggedUnionTypesToVarying() {
+ return true;
+ }
}
diff --git
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/AbstractTpcQueryPlannerTest.java
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/AbstractTpcQueryPlannerTest.java
index 345c36d24c2..c7c5b8a17b7 100644
---
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/AbstractTpcQueryPlannerTest.java
+++
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/AbstractTpcQueryPlannerTest.java
@@ -33,6 +33,8 @@ import java.lang.annotation.Target;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.function.BiConsumer;
@@ -62,7 +64,7 @@ abstract class AbstractTpcQueryPlannerTest extends
AbstractPlannerTest {
private static Function<String, String> queryLoader;
private static Function<String, String> planLoader;
- private static @Nullable BiConsumer<String, String> planUpdater;
+ private static @Nullable BiConsumer<String, String[]> planUpdater;
@BeforeAll
static void startCluster(TestInfo info) throws NoSuchMethodException {
@@ -78,7 +80,7 @@ abstract class AbstractTpcQueryPlannerTest extends
AbstractPlannerTest {
Method planLoaderMethod =
testClass.getDeclaredMethod(suiteInfo.planLoader(), String.class);
if (!nullOrBlank(suiteInfo.planUpdater())) {
- Method planUpdaterMethod =
testClass.getDeclaredMethod(suiteInfo.planUpdater(), String.class,
String.class);
+ Method planUpdaterMethod =
testClass.getDeclaredMethod(suiteInfo.planUpdater(), String.class,
String[].class);
planUpdater = (queryId, newPlan) -> invoke(planUpdaterMethod,
queryId, newPlan);
}
@@ -111,6 +113,12 @@ abstract class AbstractTpcQueryPlannerTest extends
AbstractPlannerTest {
TestNode node = CLUSTER.node("N1");
List<QueryPlan> plans = node.prepareScript(queryLoader.apply(queryId));
+ String[] actualPlans =
plans.stream().map(ExplainablePlan.class::cast).map(ExplainablePlan::explain).toArray(String[]::new);
+
+ if (planUpdater != null) {
+ planUpdater.accept(queryId, actualPlans);
+ return;
+ }
String[] expectedPlans =
planLoader.apply(queryId).split("----(\\r\\n|\\n|\\r)");
@@ -119,16 +127,7 @@ abstract class AbstractTpcQueryPlannerTest extends
AbstractPlannerTest {
int pos = 0;
- for (QueryPlan plan : plans) {
- ExplainablePlan plan0 = (ExplainablePlan) plan;
- String actualPlan = plan0.explain();
-
- if (planUpdater != null) {
- planUpdater.accept(queryId, actualPlan);
-
- return;
- }
-
+ for (String actualPlan : actualPlans) {
String expectedPlan = expectedPlans[pos++];
// Internally, costs are represented by double values and
conversion to exact numeric representation
@@ -163,6 +162,63 @@ abstract class AbstractTpcQueryPlannerTest extends
AbstractPlannerTest {
}
}
+ static void updateQueryPlan(String queryId, Path targetDirectory,
String... newPlans) {
+ // A targetDirectory must be specified by hand when expected plans are
generated.
+ if (targetDirectory == null) {
+ throw new RuntimeException("Please provide target directory to
where save generated plans."
+ + " Usually plans are kept in resource folder of tests
within the same module.");
+ }
+
+ // variant query ends with "v"
+ boolean variant = queryId.endsWith("v");
+ int numericId;
+
+ if (variant) {
+ String idString = queryId.substring(0, queryId.length() - 1);
+ numericId = Integer.parseInt(idString);
+ } else {
+ numericId = Integer.parseInt(queryId);
+ }
+
+ Path planLocation;
+ if (variant) {
+ planLocation =
targetDirectory.resolve(String.format("variant_q%d.plan", numericId));
+ } else {
+ planLocation = targetDirectory.resolve(String.format("q%s.plan",
numericId));
+ }
+
+ try {
+ Files.createDirectories(targetDirectory);
+
+ String plans = String.join("----" + System.lineSeparator(),
newPlans);
+ Files.writeString(planLocation, plans);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ @SuppressWarnings("unused") // used reflectively by
AbstractTpcQueryPlannerTest
+ static String getQueryPlan(String queryId, String testType) {
+ // variant query ends with "v"
+ boolean variant = queryId.endsWith("v");
+ int numericId;
+
+ if (variant) {
+ String idString = queryId.substring(0, queryId.length() - 1);
+ numericId = Integer.parseInt(idString);
+ } else {
+ numericId = Integer.parseInt(queryId);
+ }
+
+ if (variant) {
+ var variantQueryFile = String.format("%s/plan/variant_q%d.plan",
testType, numericId);
+ return loadFromResource(variantQueryFile);
+ } else {
+ var queryFile = String.format("%s/plan/q%s.plan", testType,
numericId);
+ return loadFromResource(queryFile);
+ }
+ }
+
@Target(TYPE)
@Retention(RUNTIME)
public @interface TpcSuiteInfo {
diff --git
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/TpcdsQueryPlannerTest.java
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/TpcdsQueryPlannerTest.java
index 47de8692ac8..8420730b8ee 100644
---
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/TpcdsQueryPlannerTest.java
+++
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/TpcdsQueryPlannerTest.java
@@ -20,7 +20,6 @@ package org.apache.ignite.internal.sql.engine.planner;
import static
org.apache.ignite.internal.sql.engine.planner.AbstractTpcQueryPlannerTest.TpcSuiteInfo;
import it.unimi.dsi.fastutil.ints.IntSet;
-import java.nio.file.Files;
import java.nio.file.Path;
import org.apache.ignite.internal.sql.engine.util.tpcds.TpcdsHelper;
import org.apache.ignite.internal.sql.engine.util.tpcds.TpcdsTables;
@@ -35,8 +34,10 @@ import org.junitpioneer.jupiter.params.IntRangeSource;
tables = TpcdsTables.class,
queryLoader = "getQueryString",
planLoader = "getQueryPlan"
+// , planUpdater = "updateQueryPlan" // uncomment the line to
regenerate plans
)
public class TpcdsQueryPlannerTest extends AbstractTpcQueryPlannerTest {
+ private static final String TEST_TYPE = "tpcds";
private static final IntSet UNSUPPORTED_TESTS = IntSet.of(
// TODO https://issues.apache.org/jira/browse/IGNITE-14642 Support
STDDEV_SAMP function and unmute tests.
@@ -60,60 +61,12 @@ public class TpcdsQueryPlannerTest extends
AbstractTpcQueryPlannerTest {
@SuppressWarnings("unused") // used reflectively by
AbstractTpcQueryPlannerTest
static String getQueryPlan(String queryId) {
- // variant query ends with "v"
- boolean variant = queryId.endsWith("v");
- int numericId;
-
- if (variant) {
- String idString = queryId.substring(0, queryId.length() - 1);
- numericId = Integer.parseInt(idString);
- } else {
- numericId = Integer.parseInt(queryId);
- }
-
- if (variant) {
- var variantQueryFile =
String.format("tpcds/plan/variant_q%d.plan", numericId);
- return loadFromResource(variantQueryFile);
- } else {
- var queryFile = String.format("tpcds/plan/q%s.plan", numericId);
-
- return loadFromResource(queryFile);
- }
+ return getQueryPlan(queryId, TEST_TYPE);
}
@SuppressWarnings("unused") // used reflectively by
AbstractTpcQueryPlannerTest
- static void updateQueryPlan(String queryId, String newPlan) {
- Path targetDirectory = null;
-
- // A targetDirectory must be specified by hand when expected plans are
generated.
- //noinspection ConstantValue
- if (targetDirectory == null) {
- throw new RuntimeException("Please provide target directory to
where save generated plans."
- + " Usually plans are kept in resource folder of tests
within the same module.");
- }
-
- // variant query ends with "v"
- boolean variant = queryId.endsWith("v");
- int numericId;
-
- if (variant) {
- String idString = queryId.substring(0, queryId.length() - 1);
- numericId = Integer.parseInt(idString);
- } else {
- numericId = Integer.parseInt(queryId);
- }
-
- Path planLocation;
- if (variant) {
- planLocation =
targetDirectory.resolve(String.format("variant_q%d.plan", numericId));
- } else {
- planLocation = targetDirectory.resolve(String.format("q%s.plan",
numericId));
- }
-
- try {
- Files.writeString(planLocation, newPlan);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
+ static void updateQueryPlan(String queryId, String... newPlans) {
+ Path targetDirectory = Path.of("./src/test/resources", TEST_TYPE,
"plan");
+ updateQueryPlan(queryId, targetDirectory, newPlans);
}
}
diff --git
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/TpchQueryPlannerTest.java
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/TpchQueryPlannerTest.java
index 90dd5ccd27f..45b178a5864 100644
---
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/TpchQueryPlannerTest.java
+++
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/TpchQueryPlannerTest.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.sql.engine.planner;
import static
org.apache.ignite.internal.sql.engine.planner.AbstractTpcQueryPlannerTest.TpcSuiteInfo;
+import java.nio.file.Path;
import org.apache.ignite.internal.sql.engine.util.tpch.TpchHelper;
import org.apache.ignite.internal.sql.engine.util.tpch.TpchTables;
import org.junit.jupiter.params.ParameterizedTest;
@@ -33,8 +34,11 @@ import org.junit.jupiter.params.provider.ValueSource;
tables = TpchTables.class,
queryLoader = "getQueryString",
planLoader = "getQueryPlan"
+// , planUpdater = "updateQueryPlan" // uncomment the line to
regenerate plans
)
public class TpchQueryPlannerTest extends AbstractTpcQueryPlannerTest {
+ private static final String TEST_TYPE = "tpch";
+
@ParameterizedTest
@ValueSource(strings = {
"1", "2", "3", "4", "5", "6", "7", "8", "8v", "9", "10", "11",
"12", "12v",
@@ -51,28 +55,12 @@ public class TpchQueryPlannerTest extends
AbstractTpcQueryPlannerTest {
@SuppressWarnings("unused") // used reflectively by
AbstractTpcQueryPlannerTest
static String getQueryPlan(String queryId) {
- // variant query ends with "v"
- boolean variant = queryId.endsWith("v");
- int numericId;
-
- if (variant) {
- String idString = queryId.substring(0, queryId.length() - 1);
- numericId = Integer.parseInt(idString);
- } else {
- numericId = Integer.parseInt(queryId);
- }
-
- if (variant) {
- var variantQueryFile = String.format("tpch/plan/variant_q%d.plan",
numericId);
- return loadFromResource(variantQueryFile);
- } else {
- var queryFile = String.format("tpch/plan/q%s.plan", numericId);
- return loadFromResource(queryFile);
- }
+ return getQueryPlan(queryId, TEST_TYPE);
}
@SuppressWarnings("unused") // used reflectively by
AbstractTpcQueryPlannerTest
- static void updateQueryPlan(String queryId, String newPlan) {
- TpcdsQueryPlannerTest.updateQueryPlan(queryId, newPlan);
+ static void updateQueryPlan(String queryId, String... newPlans) {
+ Path targetDirectory = Path.of("./src/test/resources", TEST_TYPE,
"plan");
+ updateQueryPlan(queryId, targetDirectory, newPlans);
}
}
diff --git a/modules/sql-engine/src/test/resources/tpcds/plan/q13.plan
b/modules/sql-engine/src/test/resources/tpcds/plan/q13.plan
index a36cb344a60..a35030cf0b5 100644
--- a/modules/sql-engine/src/test/resources/tpcds/plan/q13.plan
+++ b/modules/sql-engine/src/test/resources/tpcds/plan/q13.plan
@@ -12,7 +12,7 @@ ColocatedHashAggregate
type: inner
est: (rows=55)
HashJoin
- predicate: AND(=(SS_HDEMO_SK, HD_DEMO_SK), OR(=(SS_HDEMO_SK,
HD_DEMO_SK), =(CD_DEMO_SK, SS_CDEMO_SK)), OR(=(SS_HDEMO_SK, HD_DEMO_SK),
=(CD_MARITAL_STATUS, _UTF-8'D')), OR(=(SS_HDEMO_SK, HD_DEMO_SK),
=(CD_EDUCATION_STATUS, _UTF-8'Primary')), OR(=(SS_HDEMO_SK, HD_DEMO_SK),
SEARCH(SS_SALES_PRICE, Sarg[[150.00:DECIMAL(5, 2)..200.00:DECIMAL(5,
2)]]:DECIMAL(5, 2))), OR(=(SS_HDEMO_SK, HD_DEMO_SK), =(HD_DEP_COUNT, 1)),
OR(=(SS_HDEMO_SK, HD_DEMO_SK), =(CD_DEMO_SK, SS_CDEMO_SK), =(CD_MAR [...]
+ predicate: AND(=(SS_HDEMO_SK, HD_DEMO_SK), OR(=(SS_HDEMO_SK,
HD_DEMO_SK), =(CD_DEMO_SK, SS_CDEMO_SK)), OR(=(SS_HDEMO_SK, HD_DEMO_SK),
=(CD_MARITAL_STATUS, _UTF-8'D')), OR(=(SS_HDEMO_SK, HD_DEMO_SK),
=(CD_EDUCATION_STATUS, _UTF-8'Primary')), OR(=(SS_HDEMO_SK, HD_DEMO_SK),
SEARCH(SS_SALES_PRICE, Sarg[[150.00:DECIMAL(5, 2)..200.00:DECIMAL(5,
2)]]:DECIMAL(5, 2))), OR(=(SS_HDEMO_SK, HD_DEMO_SK), =(HD_DEP_COUNT, 1)),
OR(=(SS_HDEMO_SK, HD_DEMO_SK), =(CD_DEMO_SK, SS_CDEMO_SK), =(CD_MAR [...]
type: inner
est: (rows=55)
Exchange
@@ -48,7 +48,7 @@ ColocatedHashAggregate
fieldNames: [CA_ADDRESS_SK, CA_STATE, CA_COUNTRY]
est: (rows=12138)
HashJoin
- predicate: AND(=(CD_DEMO_SK, SS_CDEMO_SK), OR(=(CD_DEMO_SK,
SS_CDEMO_SK), =(CD_MARITAL_STATUS, _UTF-8'D')), OR(=(CD_DEMO_SK, SS_CDEMO_SK),
=(CD_EDUCATION_STATUS, _UTF-8'Primary')), OR(=(CD_DEMO_SK, SS_CDEMO_SK),
SEARCH(SS_SALES_PRICE, Sarg[[150.00:DECIMAL(5, 2)..200.00:DECIMAL(5,
2)]]:DECIMAL(5, 2))), OR(=(CD_DEMO_SK, SS_CDEMO_SK), =(CD_MARITAL_STATUS,
_UTF-8'W')), OR(=(CD_DEMO_SK, SS_CDEMO_SK), SEARCH(CD_MARITAL_STATUS,
Sarg[_UTF-8'D', _UTF-8'W']:CHAR(1) CHARACTER SET "U [...]
+ predicate: AND(=(CD_DEMO_SK, SS_CDEMO_SK), OR(=(CD_DEMO_SK,
SS_CDEMO_SK), =(CD_MARITAL_STATUS, _UTF-8'D')), OR(=(CD_DEMO_SK, SS_CDEMO_SK),
=(CD_EDUCATION_STATUS, _UTF-8'Primary')), OR(=(CD_DEMO_SK, SS_CDEMO_SK),
SEARCH(SS_SALES_PRICE, Sarg[[150.00:DECIMAL(5, 2)..200.00:DECIMAL(5,
2)]]:DECIMAL(5, 2))), OR(=(CD_DEMO_SK, SS_CDEMO_SK), =(CD_MARITAL_STATUS,
_UTF-8'W')), OR(=(CD_DEMO_SK, SS_CDEMO_SK), SEARCH(CD_MARITAL_STATUS,
Sarg[_UTF-8'D', _UTF-8'W']:CHAR(1) CHARACTER SET "U [...]
type: inner
est: (rows=2461)
Exchange
@@ -64,7 +64,7 @@ ColocatedHashAggregate
est: (rows=37512)
TableScan
table: PUBLIC.CUSTOMER_DEMOGRAPHICS
- predicate: AND(SEARCH(CD_MARITAL_STATUS, Sarg[_UTF-8'D',
_UTF-8'U', _UTF-8'W']:CHAR(1) CHARACTER SET "UTF-8"),
OR(SEARCH(CD_MARITAL_STATUS, Sarg[_UTF-8'U', _UTF-8'W']:CHAR(1) CHARACTER SET
"UTF-8"), =(CD_EDUCATION_STATUS, _UTF-8'Primary')),
OR(SEARCH(CD_MARITAL_STATUS, Sarg[_UTF-8'D', _UTF-8'U']:CHAR(1) CHARACTER SET
"UTF-8"), =(CD_EDUCATION_STATUS, _UTF-8'College')), OR(=(CD_MARITAL_STATUS,
_UTF-8'U'), SEARCH(CD_EDUCATION_STATUS, Sarg[_UTF-8'College', _UTF-8'Primary'
[...]
+ predicate: AND(SEARCH(CD_MARITAL_STATUS, Sarg[_UTF-8'D',
_UTF-8'U', _UTF-8'W']:CHAR(1) CHARACTER SET "UTF-8"),
OR(SEARCH(CD_MARITAL_STATUS, Sarg[_UTF-8'U', _UTF-8'W']:CHAR(1) CHARACTER SET
"UTF-8"), =(CD_EDUCATION_STATUS, _UTF-8'Primary')),
OR(SEARCH(CD_MARITAL_STATUS, Sarg[_UTF-8'D', _UTF-8'U']:CHAR(1) CHARACTER SET
"UTF-8"), =(CD_EDUCATION_STATUS, _UTF-8'College')), OR(=(CD_MARITAL_STATUS,
_UTF-8'U'), SEARCH(CD_EDUCATION_STATUS, Sarg[_UTF-8'College', _UTF-8'Primary'
[...]
fieldNames: [CD_DEMO_SK, CD_MARITAL_STATUS,
CD_EDUCATION_STATUS]
est: (rows=37512)
Exchange
diff --git a/modules/sql-engine/src/test/resources/tpcds/plan/q14.plan
b/modules/sql-engine/src/test/resources/tpcds/plan/q14.plan
index 091a5fca4cc..e3e03b08d40 100644
--- a/modules/sql-engine/src/test/resources/tpcds/plan/q14.plan
+++ b/modules/sql-engine/src/test/resources/tpcds/plan/q14.plan
@@ -11,7 +11,7 @@ Sort
UnionAll
est: (rows=136403)
Project
- projection: [CAST(CHANNEL):CHAR(7) CHARACTER SET "UTF-8" NOT NULL,
I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID, SALES, NUMBER_SALES]
+ projection: [CAST(CHANNEL):VARCHAR(7) CHARACTER SET "UTF-8" NOT
NULL, I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID, SALES, NUMBER_SALES]
est: (rows=77935)
Project
fieldNames: [CHANNEL, I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID,
SALES, NUMBER_SALES]
@@ -283,275 +283,278 @@ Sort
fieldNames: [D_DATE_SK, D_YEAR]
est: (rows=18262)
Project
- fieldNames: [CHANNEL, I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID, SALES,
NUMBER_SALES]
- projection: [_UTF-8'catalog', I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID,
SALES, NUMBER_SALES]
+ projection: [CAST(CHANNEL):VARCHAR(7) CHARACTER SET "UTF-8" NOT
NULL, I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID, SALES, NUMBER_SALES]
est: (rows=39004)
- NestedLoopJoin
- predicate: >(CAST(SALES):DECIMAL(48, 16),
CAST(AVERAGE_SALES):DECIMAL(48, 16))
- type: inner
+ Project
+ fieldNames: [CHANNEL, I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID,
SALES, NUMBER_SALES]
+ projection: [_UTF-8'catalog', I_BRAND_ID, I_CLASS_ID,
I_CATEGORY_ID, SALES, NUMBER_SALES]
est: (rows=39004)
- ColocatedHashAggregate
- fieldNames: [I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID, SALES,
NUMBER_SALES]
- group: [I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID]
- aggregation: [SUM($f3), COUNT()]
- est: (rows=78008)
- Project
- fieldNames: [I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID, $f3]
- projection: [I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID,
*(CS_QUANTITY, CS_LIST_PRICE)]
- est: (rows=159852)
- HashJoin
- predicate: =(CS_ITEM_SK, I_ITEM_SK)
- type: inner
+ NestedLoopJoin
+ predicate: >(CAST(SALES):DECIMAL(48, 16),
CAST(AVERAGE_SALES):DECIMAL(48, 16))
+ type: inner
+ est: (rows=39004)
+ ColocatedHashAggregate
+ fieldNames: [I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID, SALES,
NUMBER_SALES]
+ group: [I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID]
+ aggregation: [SUM($f3), COUNT()]
+ est: (rows=78008)
+ Project
+ fieldNames: [I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID, $f3]
+ projection: [I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID,
*(CS_QUANTITY, CS_LIST_PRICE)]
est: (rows=159852)
HashJoin
- predicate: =(CS_ITEM_SK, SS_ITEM_SK)
+ predicate: =(CS_ITEM_SK, I_ITEM_SK)
type: inner
est: (rows=159852)
HashJoin
- predicate: =(CS_SOLD_DATE_SK, D_DATE_SK)
+ predicate: =(CS_ITEM_SK, SS_ITEM_SK)
type: inner
est: (rows=159852)
- Exchange
- distribution: single
- est: (rows=1441548)
- TableScan
- table: PUBLIC.CATALOG_SALES
- fieldNames: [CS_SOLD_DATE_SK, CS_ITEM_SK,
CS_QUANTITY, CS_LIST_PRICE]
+ HashJoin
+ predicate: =(CS_SOLD_DATE_SK, D_DATE_SK)
+ type: inner
+ est: (rows=159852)
+ Exchange
+ distribution: single
est: (rows=1441548)
- Exchange
- distribution: single
- est: (rows=8100)
- TableScan
- table: PUBLIC.DATE_DIM
- predicate: AND(=(D_YEAR, 2002), =(D_MOY, 11))
- fieldNames: [D_DATE_SK, D_YEAR, D_MOY]
+ TableScan
+ table: PUBLIC.CATALOG_SALES
+ fieldNames: [CS_SOLD_DATE_SK, CS_ITEM_SK,
CS_QUANTITY, CS_LIST_PRICE]
+ est: (rows=1441548)
+ Exchange
+ distribution: single
est: (rows=8100)
- ColocatedSortAggregate
- collation: [SS_ITEM_SK ASC]
- group: [SS_ITEM_SK]
- aggregation: []
- est: (rows=1092564)
- Project
- fieldNames: [SS_ITEM_SK]
- projection: [I_ITEM_SK]
- est: (rows=5462822)
- HashJoin
- predicate: AND(=(I_BRAND_ID, BRAND_ID),
=(I_CLASS_ID, CLASS_ID), =(I_CATEGORY_ID, CATEGORY_ID))
- type: inner
+ TableScan
+ table: PUBLIC.DATE_DIM
+ predicate: AND(=(D_YEAR, 2002), =(D_MOY, 11))
+ fieldNames: [D_DATE_SK, D_YEAR, D_MOY]
+ est: (rows=8100)
+ ColocatedSortAggregate
+ collation: [SS_ITEM_SK ASC]
+ group: [SS_ITEM_SK]
+ aggregation: []
+ est: (rows=1092564)
+ Project
+ fieldNames: [SS_ITEM_SK]
+ projection: [I_ITEM_SK]
est: (rows=5462822)
- Exchange
- distribution: single
- est: (rows=18000)
- Sort
- collation: [I_ITEM_SK ASC]
+ HashJoin
+ predicate: AND(=(I_BRAND_ID, BRAND_ID),
=(I_CLASS_ID, CLASS_ID), =(I_CATEGORY_ID, CATEGORY_ID))
+ type: inner
+ est: (rows=5462822)
+ Exchange
+ distribution: single
est: (rows=18000)
- TableScan
- table: PUBLIC.ITEM
- fieldNames: [I_ITEM_SK, I_BRAND_ID,
I_CLASS_ID, I_CATEGORY_ID]
+ Sort
+ collation: [I_ITEM_SK ASC]
est: (rows=18000)
- ColocatedIntersect
- all: false
- est: (rows=89923)
- Project
- fieldNames: [BRAND_ID, CLASS_ID, CATEGORY_ID]
- projection: [I_BRAND_ID, I_CLASS_ID,
I_CATEGORY_ID]
- est: (rows=720101)
- HashJoin
- predicate: =(SS_ITEM_SK, I_ITEM_SK)
- type: inner
+ TableScan
+ table: PUBLIC.ITEM
+ fieldNames: [I_ITEM_SK, I_BRAND_ID,
I_CLASS_ID, I_CATEGORY_ID]
+ est: (rows=18000)
+ ColocatedIntersect
+ all: false
+ est: (rows=89923)
+ Project
+ fieldNames: [BRAND_ID, CLASS_ID, CATEGORY_ID]
+ projection: [I_BRAND_ID, I_CLASS_ID,
I_CATEGORY_ID]
est: (rows=720101)
HashJoin
- predicate: =(SS_SOLD_DATE_SK, D_DATE_SK)
+ predicate: =(SS_ITEM_SK, I_ITEM_SK)
type: inner
est: (rows=720101)
- Exchange
- distribution: single
- est: (rows=2880404)
- TableScan
- table: PUBLIC.STORE_SALES
- fieldNames: [SS_SOLD_DATE_SK, SS_ITEM_SK]
+ HashJoin
+ predicate: =(SS_SOLD_DATE_SK, D_DATE_SK)
+ type: inner
+ est: (rows=720101)
+ Exchange
+ distribution: single
est: (rows=2880404)
+ TableScan
+ table: PUBLIC.STORE_SALES
+ fieldNames: [SS_SOLD_DATE_SK,
SS_ITEM_SK]
+ est: (rows=2880404)
+ Exchange
+ distribution: single
+ est: (rows=18262)
+ TableScan
+ table: PUBLIC.DATE_DIM
+ predicate: SEARCH(D_YEAR,
Sarg[[2000..2002]])
+ fieldNames: [D_DATE_SK, D_YEAR]
+ est: (rows=18262)
Exchange
distribution: single
- est: (rows=18262)
- TableScan
- table: PUBLIC.DATE_DIM
- predicate: SEARCH(D_YEAR,
Sarg[[2000..2002]])
- fieldNames: [D_DATE_SK, D_YEAR]
- est: (rows=18262)
- Exchange
- distribution: single
- est: (rows=18000)
- TableScan
- table: PUBLIC.ITEM
- fieldNames: [I_ITEM_SK, I_BRAND_ID,
I_CLASS_ID, I_CATEGORY_ID]
est: (rows=18000)
- Project
- fieldNames: [I_BRAND_ID, I_CLASS_ID,
I_CATEGORY_ID]
- projection: [I_BRAND_ID, I_CLASS_ID,
I_CATEGORY_ID]
- est: (rows=360387)
- HashJoin
- predicate: =(CS_ITEM_SK, I_ITEM_SK)
- type: inner
+ TableScan
+ table: PUBLIC.ITEM
+ fieldNames: [I_ITEM_SK, I_BRAND_ID,
I_CLASS_ID, I_CATEGORY_ID]
+ est: (rows=18000)
+ Project
+ fieldNames: [I_BRAND_ID, I_CLASS_ID,
I_CATEGORY_ID]
+ projection: [I_BRAND_ID, I_CLASS_ID,
I_CATEGORY_ID]
est: (rows=360387)
HashJoin
- predicate: =(CS_SOLD_DATE_SK, D_DATE_SK)
+ predicate: =(CS_ITEM_SK, I_ITEM_SK)
type: inner
est: (rows=360387)
- Exchange
- distribution: single
- est: (rows=1441548)
- TableScan
- table: PUBLIC.CATALOG_SALES
- fieldNames: [CS_SOLD_DATE_SK, CS_ITEM_SK]
+ HashJoin
+ predicate: =(CS_SOLD_DATE_SK, D_DATE_SK)
+ type: inner
+ est: (rows=360387)
+ Exchange
+ distribution: single
est: (rows=1441548)
+ TableScan
+ table: PUBLIC.CATALOG_SALES
+ fieldNames: [CS_SOLD_DATE_SK,
CS_ITEM_SK]
+ est: (rows=1441548)
+ Exchange
+ distribution: single
+ est: (rows=18262)
+ TableScan
+ table: PUBLIC.DATE_DIM
+ predicate: SEARCH(D_YEAR,
Sarg[[2000..2002]])
+ fieldNames: [D_DATE_SK, D_YEAR]
+ est: (rows=18262)
Exchange
distribution: single
- est: (rows=18262)
- TableScan
- table: PUBLIC.DATE_DIM
- predicate: SEARCH(D_YEAR,
Sarg[[2000..2002]])
- fieldNames: [D_DATE_SK, D_YEAR]
- est: (rows=18262)
- Exchange
- distribution: single
- est: (rows=18000)
- TableScan
- table: PUBLIC.ITEM
- fieldNames: [I_ITEM_SK, I_BRAND_ID,
I_CLASS_ID, I_CATEGORY_ID]
est: (rows=18000)
- Project
- fieldNames: [I_BRAND_ID, I_CLASS_ID,
I_CATEGORY_ID]
- projection: [I_BRAND_ID, I_CLASS_ID,
I_CATEGORY_ID]
- est: (rows=179846)
- HashJoin
- predicate: =(WS_ITEM_SK, I_ITEM_SK)
- type: inner
+ TableScan
+ table: PUBLIC.ITEM
+ fieldNames: [I_ITEM_SK, I_BRAND_ID,
I_CLASS_ID, I_CATEGORY_ID]
+ est: (rows=18000)
+ Project
+ fieldNames: [I_BRAND_ID, I_CLASS_ID,
I_CATEGORY_ID]
+ projection: [I_BRAND_ID, I_CLASS_ID,
I_CATEGORY_ID]
est: (rows=179846)
HashJoin
- predicate: =(WS_SOLD_DATE_SK, D_DATE_SK)
+ predicate: =(WS_ITEM_SK, I_ITEM_SK)
type: inner
est: (rows=179846)
- Exchange
- distribution: single
- est: (rows=719384)
- TableScan
- table: PUBLIC.WEB_SALES
- fieldNames: [WS_SOLD_DATE_SK, WS_ITEM_SK]
+ HashJoin
+ predicate: =(WS_SOLD_DATE_SK, D_DATE_SK)
+ type: inner
+ est: (rows=179846)
+ Exchange
+ distribution: single
est: (rows=719384)
+ TableScan
+ table: PUBLIC.WEB_SALES
+ fieldNames: [WS_SOLD_DATE_SK,
WS_ITEM_SK]
+ est: (rows=719384)
+ Exchange
+ distribution: single
+ est: (rows=18262)
+ TableScan
+ table: PUBLIC.DATE_DIM
+ predicate: SEARCH(D_YEAR,
Sarg[[2000..2002]])
+ fieldNames: [D_DATE_SK, D_YEAR]
+ est: (rows=18262)
Exchange
distribution: single
- est: (rows=18262)
- TableScan
- table: PUBLIC.DATE_DIM
- predicate: SEARCH(D_YEAR,
Sarg[[2000..2002]])
- fieldNames: [D_DATE_SK, D_YEAR]
- est: (rows=18262)
- Exchange
- distribution: single
- est: (rows=18000)
- TableScan
- table: PUBLIC.ITEM
- fieldNames: [I_ITEM_SK, I_BRAND_ID,
I_CLASS_ID, I_CATEGORY_ID]
est: (rows=18000)
- Exchange
- distribution: single
- est: (rows=18000)
- TableScan
- table: PUBLIC.ITEM
- fieldNames: [I_ITEM_SK, I_BRAND_ID, I_CLASS_ID,
I_CATEGORY_ID]
+ TableScan
+ table: PUBLIC.ITEM
+ fieldNames: [I_ITEM_SK, I_BRAND_ID,
I_CLASS_ID, I_CATEGORY_ID]
+ est: (rows=18000)
+ Exchange
+ distribution: single
est: (rows=18000)
- Project
- fieldNames: [AVERAGE_SALES]
- projection: [CASE(=(CAST(f0_0):DECIMAL(34, 2), 0:DECIMAL(38,
0)), null:DECIMAL(31, 16), DECIMAL_DIVIDE(CAST(f0_0):DECIMAL(34, 2), f1_1, 31,
16))]
- est: (rows=1)
- ReduceSortAggregate
- fieldNames: [f0_0, f1_1]
- collation: []
- group: []
- aggregation: [SUM(0), $SUM0(1)]
+ TableScan
+ table: PUBLIC.ITEM
+ fieldNames: [I_ITEM_SK, I_BRAND_ID, I_CLASS_ID,
I_CATEGORY_ID]
+ est: (rows=18000)
+ Project
+ fieldNames: [AVERAGE_SALES]
+ projection: [CASE(=(CAST(f0_0):DECIMAL(34, 2), 0:DECIMAL(38,
0)), null:DECIMAL(31, 16), DECIMAL_DIVIDE(CAST(f0_0):DECIMAL(34, 2), f1_1, 31,
16))]
est: (rows=1)
- Project
- fieldNames: [0, 1]
- projection: [CAST(_ACC0):DECIMAL(68, 2),
CAST(_ACC1):DECIMAL(38, 0) NOT NULL]
+ ReduceSortAggregate
+ fieldNames: [f0_0, f1_1]
+ collation: []
+ group: []
+ aggregation: [SUM(0), $SUM0(1)]
est: (rows=1)
- Exchange
- distribution: single
+ Project
+ fieldNames: [0, 1]
+ projection: [CAST(_ACC0):DECIMAL(68, 2),
CAST(_ACC1):DECIMAL(38, 0) NOT NULL]
est: (rows=1)
- MapSortAggregate
- fieldNames: [_ACC0, _ACC1]
- collation: []
- group: []
- aggregation: [SUM($f0), COUNT($f0)]
+ Exchange
+ distribution: single
est: (rows=1)
- Project
- fieldNames: [$f0]
- projection: [*(QUANTITY, LIST_PRICE)]
- est: (rows=1260334)
- UnionAll
+ MapSortAggregate
+ fieldNames: [_ACC0, _ACC1]
+ collation: []
+ group: []
+ aggregation: [SUM($f0), COUNT($f0)]
+ est: (rows=1)
+ Project
+ fieldNames: [$f0]
+ projection: [*(QUANTITY, LIST_PRICE)]
est: (rows=1260334)
- Project
- fieldNames: [QUANTITY, LIST_PRICE]
- projection: [SS_QUANTITY, SS_LIST_PRICE]
- est: (rows=720101)
- HashJoin
- predicate: =(SS_SOLD_DATE_SK, D_DATE_SK)
- type: inner
+ UnionAll
+ est: (rows=1260334)
+ Project
+ fieldNames: [QUANTITY, LIST_PRICE]
+ projection: [SS_QUANTITY, SS_LIST_PRICE]
est: (rows=720101)
- Exchange
- distribution: table PUBLIC.DATE_DIM in zone
"Default" by [SS_SOLD_DATE_SK]
- est: (rows=2880404)
- TableScan
- table: PUBLIC.STORE_SALES
- fieldNames: [SS_SOLD_DATE_SK, SS_QUANTITY,
SS_LIST_PRICE]
+ HashJoin
+ predicate: =(SS_SOLD_DATE_SK, D_DATE_SK)
+ type: inner
+ est: (rows=720101)
+ Exchange
+ distribution: table PUBLIC.DATE_DIM in zone
"Default" by [SS_SOLD_DATE_SK]
est: (rows=2880404)
- TableScan
- table: PUBLIC.DATE_DIM
- predicate: SEARCH(D_YEAR, Sarg[[2000..2002]])
- fieldNames: [D_DATE_SK, D_YEAR]
- est: (rows=18262)
- Project
- fieldNames: [QUANTITY, LIST_PRICE]
- projection: [CS_QUANTITY, CS_LIST_PRICE]
- est: (rows=360387)
- HashJoin
- predicate: =(CS_SOLD_DATE_SK, D_DATE_SK)
- type: inner
- est: (rows=360387)
- Exchange
- distribution: table PUBLIC.DATE_DIM in zone
"Default" by [CS_SOLD_DATE_SK]
- est: (rows=1441548)
+ TableScan
+ table: PUBLIC.STORE_SALES
+ fieldNames: [SS_SOLD_DATE_SK, SS_QUANTITY,
SS_LIST_PRICE]
+ est: (rows=2880404)
TableScan
- table: PUBLIC.CATALOG_SALES
- fieldNames: [CS_SOLD_DATE_SK, CS_QUANTITY,
CS_LIST_PRICE]
+ table: PUBLIC.DATE_DIM
+ predicate: SEARCH(D_YEAR, Sarg[[2000..2002]])
+ fieldNames: [D_DATE_SK, D_YEAR]
+ est: (rows=18262)
+ Project
+ fieldNames: [QUANTITY, LIST_PRICE]
+ projection: [CS_QUANTITY, CS_LIST_PRICE]
+ est: (rows=360387)
+ HashJoin
+ predicate: =(CS_SOLD_DATE_SK, D_DATE_SK)
+ type: inner
+ est: (rows=360387)
+ Exchange
+ distribution: table PUBLIC.DATE_DIM in zone
"Default" by [CS_SOLD_DATE_SK]
est: (rows=1441548)
- TableScan
- table: PUBLIC.DATE_DIM
- predicate: SEARCH(D_YEAR, Sarg[[2000..2002]])
- fieldNames: [D_DATE_SK, D_YEAR]
- est: (rows=18262)
- Project
- fieldNames: [QUANTITY, LIST_PRICE]
- projection: [WS_QUANTITY, WS_LIST_PRICE]
- est: (rows=179846)
- HashJoin
- predicate: =(WS_SOLD_DATE_SK, D_DATE_SK)
- type: inner
- est: (rows=179846)
- Exchange
- distribution: table PUBLIC.DATE_DIM in zone
"Default" by [WS_SOLD_DATE_SK]
- est: (rows=719384)
+ TableScan
+ table: PUBLIC.CATALOG_SALES
+ fieldNames: [CS_SOLD_DATE_SK, CS_QUANTITY,
CS_LIST_PRICE]
+ est: (rows=1441548)
TableScan
- table: PUBLIC.WEB_SALES
- fieldNames: [WS_SOLD_DATE_SK, WS_QUANTITY,
WS_LIST_PRICE]
+ table: PUBLIC.DATE_DIM
+ predicate: SEARCH(D_YEAR, Sarg[[2000..2002]])
+ fieldNames: [D_DATE_SK, D_YEAR]
+ est: (rows=18262)
+ Project
+ fieldNames: [QUANTITY, LIST_PRICE]
+ projection: [WS_QUANTITY, WS_LIST_PRICE]
+ est: (rows=179846)
+ HashJoin
+ predicate: =(WS_SOLD_DATE_SK, D_DATE_SK)
+ type: inner
+ est: (rows=179846)
+ Exchange
+ distribution: table PUBLIC.DATE_DIM in zone
"Default" by [WS_SOLD_DATE_SK]
est: (rows=719384)
- TableScan
- table: PUBLIC.DATE_DIM
- predicate: SEARCH(D_YEAR, Sarg[[2000..2002]])
- fieldNames: [D_DATE_SK, D_YEAR]
- est: (rows=18262)
+ TableScan
+ table: PUBLIC.WEB_SALES
+ fieldNames: [WS_SOLD_DATE_SK, WS_QUANTITY,
WS_LIST_PRICE]
+ est: (rows=719384)
+ TableScan
+ table: PUBLIC.DATE_DIM
+ predicate: SEARCH(D_YEAR, Sarg[[2000..2002]])
+ fieldNames: [D_DATE_SK, D_YEAR]
+ est: (rows=18262)
Project
- projection: [CAST(CHANNEL):CHAR(7) CHARACTER SET "UTF-8" NOT NULL,
I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID, SALES, NUMBER_SALES]
+ projection: [CAST(CHANNEL):VARCHAR(7) CHARACTER SET "UTF-8" NOT
NULL, I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID, SALES, NUMBER_SALES]
est: (rows=19464)
Project
fieldNames: [CHANNEL, I_BRAND_ID, I_CLASS_ID, I_CATEGORY_ID,
SALES, NUMBER_SALES]
diff --git a/modules/sql-engine/src/test/resources/tpcds/plan/q34.plan
b/modules/sql-engine/src/test/resources/tpcds/plan/q34.plan
index 453b72f8be1..5ba6d0e38ec 100644
--- a/modules/sql-engine/src/test/resources/tpcds/plan/q34.plan
+++ b/modules/sql-engine/src/test/resources/tpcds/plan/q34.plan
@@ -52,7 +52,7 @@ Sort
est: (rows=512)
TableScan
table: PUBLIC.HOUSEHOLD_DEMOGRAPHICS
- predicate: AND(SEARCH(HD_BUY_POTENTIAL,
Sarg[_UTF-8'>10000':CHAR(7) CHARACTER SET "UTF-8", _UTF-8'Unknown']:CHAR(7)
CHARACTER SET "UTF-8"), >(HD_VEHICLE_COUNT, 0), CASE(>(HD_VEHICLE_COUNT, 0),
>(/(HD_DEP_COUNT, HD_VEHICLE_COUNT), 1), false))
+ predicate: AND(SEARCH(HD_BUY_POTENTIAL,
Sarg[_UTF-8'>10000':VARCHAR(7) CHARACTER SET "UTF-8",
_UTF-8'Unknown':VARCHAR(7) CHARACTER SET "UTF-8"]:VARCHAR(7) CHARACTER SET
"UTF-8"), >(HD_VEHICLE_COUNT, 0), CASE(>(HD_VEHICLE_COUNT, 0),
>(/(HD_DEP_COUNT, HD_VEHICLE_COUNT), 1), false))
fieldNames: [HD_DEMO_SK, HD_BUY_POTENTIAL,
HD_DEP_COUNT, HD_VEHICLE_COUNT]
est: (rows=512)
Exchange
diff --git a/modules/sql-engine/src/test/resources/tpcds/plan/q41.plan
b/modules/sql-engine/src/test/resources/tpcds/plan/q41.plan
index 1c00faad04e..b0bec47c2a1 100644
--- a/modules/sql-engine/src/test/resources/tpcds/plan/q41.plan
+++ b/modules/sql-engine/src/test/resources/tpcds/plan/q41.plan
@@ -47,6 +47,6 @@ Sort
est: (rows=1)
TableScan
table: PUBLIC.ITEM
- predicate: OR(AND(=(I_MANUFACT, $cor2.I_MANUFACT),
OR(AND(=(I_CATEGORY, _UTF-8'Women'), SEARCH(I_COLOR, Sarg[_UTF-8'frosted',
_UTF-8'rose':CHAR(7) CHARACTER SET "UTF-8"]:CHAR(7) CHARACTER SET "UTF-8"),
SEARCH(I_UNITS, Sarg[_UTF-8'Gross', _UTF-8'Lb':CHAR(5) CHARACTER SET
"UTF-8"]:CHAR(5) CHARACTER SET "UTF-8"), SEARCH(I_SIZE,
Sarg[_UTF-8'large':CHAR(6) CHARACTER SET "UTF-8", _UTF-8'medium']:CHAR(6)
CHARACTER SET "UTF-8")), AND(=(I_CATEGORY, _UTF-8'Women'), SEARCH(I_C [...]
+ predicate: OR(AND(=(I_MANUFACT, $cor2.I_MANUFACT),
OR(AND(=(I_CATEGORY, _UTF-8'Women'), SEARCH(I_COLOR,
Sarg[_UTF-8'frosted':VARCHAR(7) CHARACTER SET "UTF-8", _UTF-8'rose':VARCHAR(7)
CHARACTER SET "UTF-8"]:VARCHAR(7) CHARACTER SET "UTF-8"), SEARCH(I_UNITS,
Sarg[_UTF-8'Gross':VARCHAR(5) CHARACTER SET "UTF-8", _UTF-8'Lb':VARCHAR(5)
CHARACTER SET "UTF-8"]:VARCHAR(5) CHARACTER SET "UTF-8"), SEARCH(I_SIZE,
Sarg[_UTF-8'large':VARCHAR(6) CHARACTER SET "UTF-8", _UTF-8'mediu [...]
fieldNames: [I_CATEGORY, I_MANUFACT, I_SIZE, I_COLOR,
I_UNITS]
est: (rows=1499)
diff --git a/modules/sql-engine/src/test/resources/tpcds/plan/q5.plan
b/modules/sql-engine/src/test/resources/tpcds/plan/q5.plan
index eb5c691920e..e53bfee7f3b 100644
--- a/modules/sql-engine/src/test/resources/tpcds/plan/q5.plan
+++ b/modules/sql-engine/src/test/resources/tpcds/plan/q5.plan
@@ -10,7 +10,7 @@ Sort
UnionAll
est: (rows=1532000739400)
Project
- projection: [CAST(CHANNEL):CHAR(15) CHARACTER SET "UTF-8" NOT NULL,
CAST(ID):VARCHAR(28) CHARACTER SET "UTF-8", SALES, RETURNS, PROFIT]
+ projection: [CAST(CHANNEL):VARCHAR(15) CHARACTER SET "UTF-8" NOT
NULL, CAST(ID):VARCHAR(28) CHARACTER SET "UTF-8", SALES, RETURNS, PROFIT]
est: (rows=3124078767)
Project
fieldNames: [CHANNEL, ID, SALES, RETURNS, PROFIT]
@@ -70,64 +70,67 @@ Sort
fieldNames: [S_STORE_SK, S_STORE_ID]
est: (rows=12)
Project
- fieldNames: [CHANNEL, ID, SALES, RETURNS, PROFIT]
- projection: [_UTF-8'catalog channel', ||(_UTF-8'catalog_page',
CP_CATALOG_PAGE_ID), SALES, RETURNS, -(PROFIT, PROFIT_LOSS)]
+ projection: [CAST(CHANNEL):VARCHAR(15) CHARACTER SET "UTF-8" NOT
NULL, ID, SALES, RETURNS, PROFIT]
est: (rows=1526926163852)
- ColocatedHashAggregate
- fieldNames: [CP_CATALOG_PAGE_ID, SALES, PROFIT, RETURNS,
PROFIT_LOSS]
- group: [CP_CATALOG_PAGE_ID]
- aggregation: [SUM(SALES_PRICE), SUM(PROFIT), SUM(RETURN_AMT),
SUM(NET_LOSS)]
+ Project
+ fieldNames: [CHANNEL, ID, SALES, RETURNS, PROFIT]
+ projection: [_UTF-8'catalog channel', ||(_UTF-8'catalog_page',
CP_CATALOG_PAGE_ID), SALES, RETURNS, -(PROFIT, PROFIT_LOSS)]
est: (rows=1526926163852)
- Project
- fieldNames: [CP_CATALOG_PAGE_ID, SALES_PRICE, PROFIT,
RETURN_AMT, NET_LOSS]
- projection: [CP_CATALOG_PAGE_ID, SALES_PRICE, PROFIT,
RETURN_AMT, NET_LOSS]
- est: (rows=7634630819261)
- MergeJoin
- predicate: =(PAGE_SK, CP_CATALOG_PAGE_SK)
- type: inner
+ ColocatedHashAggregate
+ fieldNames: [CP_CATALOG_PAGE_ID, SALES, PROFIT, RETURNS,
PROFIT_LOSS]
+ group: [CP_CATALOG_PAGE_ID]
+ aggregation: [SUM(SALES_PRICE), SUM(PROFIT), SUM(RETURN_AMT),
SUM(NET_LOSS)]
+ est: (rows=1526926163852)
+ Project
+ fieldNames: [CP_CATALOG_PAGE_ID, SALES_PRICE, PROFIT,
RETURN_AMT, NET_LOSS]
+ projection: [CP_CATALOG_PAGE_ID, SALES_PRICE, PROFIT,
RETURN_AMT, NET_LOSS]
est: (rows=7634630819261)
- HashJoin
- predicate: =(DATE_SK, D_DATE_SK)
+ MergeJoin
+ predicate: =(PAGE_SK, CP_CATALOG_PAGE_SK)
type: inner
- est: (rows=4343534630)
- Exchange
- distribution: single
- est: (rows=1585615)
- Sort
- collation: [PAGE_SK ASC]
+ est: (rows=7634630819261)
+ HashJoin
+ predicate: =(DATE_SK, D_DATE_SK)
+ type: inner
+ est: (rows=4343534630)
+ Exchange
+ distribution: single
est: (rows=1585615)
- UnionAll
+ Sort
+ collation: [PAGE_SK ASC]
est: (rows=1585615)
- TableScan
- table: PUBLIC.CATALOG_SALES
- fieldNames: [PAGE_SK, DATE_SK, SALES_PRICE, PROFIT,
RETURN_AMT, NET_LOSS]
- projection: [CS_CATALOG_PAGE_SK, CS_SOLD_DATE_SK,
CS_EXT_SALES_PRICE, CS_NET_PROFIT, 0.00:DECIMAL(7, 2), 0.00:DECIMAL(7, 2)]
- est: (rows=1441548)
- TableScan
- table: PUBLIC.CATALOG_RETURNS
- fieldNames: [PAGE_SK, DATE_SK, SALES_PRICE, PROFIT,
RETURN_AMT, NET_LOSS]
- projection: [CR_CATALOG_PAGE_SK,
CR_RETURNED_DATE_SK, 0.00:DECIMAL(7, 2), 0.00:DECIMAL(7, 2), CR_RETURN_AMOUNT,
CR_NET_LOSS]
- est: (rows=144067)
+ UnionAll
+ est: (rows=1585615)
+ TableScan
+ table: PUBLIC.CATALOG_SALES
+ fieldNames: [PAGE_SK, DATE_SK, SALES_PRICE,
PROFIT, RETURN_AMT, NET_LOSS]
+ projection: [CS_CATALOG_PAGE_SK, CS_SOLD_DATE_SK,
CS_EXT_SALES_PRICE, CS_NET_PROFIT, 0.00:DECIMAL(7, 2), 0.00:DECIMAL(7, 2)]
+ est: (rows=1441548)
+ TableScan
+ table: PUBLIC.CATALOG_RETURNS
+ fieldNames: [PAGE_SK, DATE_SK, SALES_PRICE,
PROFIT, RETURN_AMT, NET_LOSS]
+ projection: [CR_CATALOG_PAGE_SK,
CR_RETURNED_DATE_SK, 0.00:DECIMAL(7, 2), 0.00:DECIMAL(7, 2), CR_RETURN_AMOUNT,
CR_NET_LOSS]
+ est: (rows=144067)
+ Exchange
+ distribution: single
+ est: (rows=18262)
+ TableScan
+ table: PUBLIC.DATE_DIM
+ predicate: SEARCH(D_DATE,
Sarg[[2000-08-19..2000-09-02]])
+ fieldNames: [D_DATE_SK, D_DATE]
+ est: (rows=18262)
Exchange
distribution: single
- est: (rows=18262)
- TableScan
- table: PUBLIC.DATE_DIM
- predicate: SEARCH(D_DATE, Sarg[[2000-08-19..2000-09-02]])
- fieldNames: [D_DATE_SK, D_DATE]
- est: (rows=18262)
- Exchange
- distribution: single
- est: (rows=11718)
- Sort
- collation: [CP_CATALOG_PAGE_SK ASC]
est: (rows=11718)
- TableScan
- table: PUBLIC.CATALOG_PAGE
- fieldNames: [CP_CATALOG_PAGE_SK, CP_CATALOG_PAGE_ID]
+ Sort
+ collation: [CP_CATALOG_PAGE_SK ASC]
est: (rows=11718)
+ TableScan
+ table: PUBLIC.CATALOG_PAGE
+ fieldNames: [CP_CATALOG_PAGE_SK, CP_CATALOG_PAGE_ID]
+ est: (rows=11718)
Project
- projection: [CAST(CHANNEL):CHAR(15) CHARACTER SET "UTF-8" NOT NULL,
CAST(ID):VARCHAR(28) CHARACTER SET "UTF-8", SALES, RETURNS, PROFIT]
+ projection: [CAST(CHANNEL):VARCHAR(15) CHARACTER SET "UTF-8" NOT
NULL, CAST(ID):VARCHAR(28) CHARACTER SET "UTF-8", SALES, RETURNS, PROFIT]
est: (rows=1950496781)
Project
fieldNames: [CHANNEL, ID, SALES, RETURNS, PROFIT]
diff --git a/modules/sql-engine/src/test/resources/tpcds/plan/q71.plan
b/modules/sql-engine/src/test/resources/tpcds/plan/q71.plan
index 0a883f12da7..7535f4ebced 100644
--- a/modules/sql-engine/src/test/resources/tpcds/plan/q71.plan
+++ b/modules/sql-engine/src/test/resources/tpcds/plan/q71.plan
@@ -22,7 +22,7 @@ Sort
est: (rows=49116)
TableScan
table: PUBLIC.TIME_DIM
- predicate: SEARCH(T_MEAL_TIME, Sarg[_UTF-8'breakfast',
_UTF-8'dinner':CHAR(9) CHARACTER SET "UTF-8"]:CHAR(9) CHARACTER SET "UTF-8")
+ predicate: SEARCH(T_MEAL_TIME,
Sarg[_UTF-8'breakfast':VARCHAR(9) CHARACTER SET "UTF-8",
_UTF-8'dinner':VARCHAR(9) CHARACTER SET "UTF-8"]:VARCHAR(9) CHARACTER SET
"UTF-8")
fieldNames: [T_TIME_SK, T_HOUR, T_MINUTE, T_MEAL_TIME]
est: (rows=49116)
HashJoin
diff --git a/modules/sql-engine/src/test/resources/tpcds/plan/q73.plan
b/modules/sql-engine/src/test/resources/tpcds/plan/q73.plan
index eb5090aad76..9d7678e9ec8 100644
--- a/modules/sql-engine/src/test/resources/tpcds/plan/q73.plan
+++ b/modules/sql-engine/src/test/resources/tpcds/plan/q73.plan
@@ -52,7 +52,7 @@ Sort
est: (rows=512)
TableScan
table: PUBLIC.HOUSEHOLD_DEMOGRAPHICS
- predicate: AND(SEARCH(HD_BUY_POTENTIAL,
Sarg[_UTF-8'5001-10000', _UTF-8'>10000':CHAR(10) CHARACTER SET
"UTF-8"]:CHAR(10) CHARACTER SET "UTF-8"), >(HD_VEHICLE_COUNT, 0),
CASE(>(HD_VEHICLE_COUNT, 0), >(/(HD_DEP_COUNT, HD_VEHICLE_COUNT), 1), false))
+ predicate: AND(SEARCH(HD_BUY_POTENTIAL,
Sarg[_UTF-8'5001-10000':VARCHAR(10) CHARACTER SET "UTF-8",
_UTF-8'>10000':VARCHAR(10) CHARACTER SET "UTF-8"]:VARCHAR(10) CHARACTER SET
"UTF-8"), >(HD_VEHICLE_COUNT, 0), CASE(>(HD_VEHICLE_COUNT, 0),
>(/(HD_DEP_COUNT, HD_VEHICLE_COUNT), 1), false))
fieldNames: [HD_DEMO_SK, HD_BUY_POTENTIAL,
HD_DEP_COUNT, HD_VEHICLE_COUNT]
est: (rows=512)
Exchange
diff --git a/modules/sql-engine/src/test/resources/tpcds/plan/q76.plan
b/modules/sql-engine/src/test/resources/tpcds/plan/q76.plan
index 27e47ea95dc..d2c0ff39e09 100644
--- a/modules/sql-engine/src/test/resources/tpcds/plan/q76.plan
+++ b/modules/sql-engine/src/test/resources/tpcds/plan/q76.plan
@@ -10,7 +10,7 @@ Sort
UnionAll
est: (rows=1260334)
Project
- projection: [CAST(CHANNEL):CHAR(7) CHARACTER SET "UTF-8" NOT NULL,
CAST(COL_NAME):CHAR(15) CHARACTER SET "UTF-8" NOT NULL, D_YEAR, D_QOY,
I_CATEGORY, EXT_SALES_PRICE]
+ projection: [CAST(CHANNEL):VARCHAR(7) CHARACTER SET "UTF-8" NOT
NULL, CAST(COL_NAME):VARCHAR(15) CHARACTER SET "UTF-8" NOT NULL, D_YEAR, D_QOY,
I_CATEGORY, EXT_SALES_PRICE]
est: (rows=720101)
Project
fieldNames: [CHANNEL, COL_NAME, D_YEAR, D_QOY, I_CATEGORY,
EXT_SALES_PRICE]
@@ -47,7 +47,7 @@ Sort
fieldNames: [I_ITEM_SK, I_CATEGORY]
est: (rows=18000)
Project
- projection: [CAST(CHANNEL):CHAR(7) CHARACTER SET "UTF-8" NOT NULL,
COL_NAME, D_YEAR, D_QOY, I_CATEGORY, EXT_SALES_PRICE]
+ projection: [CAST(CHANNEL):VARCHAR(7) CHARACTER SET "UTF-8" NOT
NULL, CAST(COL_NAME):VARCHAR(15) CHARACTER SET "UTF-8" NOT NULL, D_YEAR, D_QOY,
I_CATEGORY, EXT_SALES_PRICE]
est: (rows=179846)
Project
fieldNames: [CHANNEL, COL_NAME, D_YEAR, D_QOY, I_CATEGORY,
EXT_SALES_PRICE]
@@ -84,36 +84,39 @@ Sort
fieldNames: [I_ITEM_SK, I_CATEGORY]
est: (rows=18000)
Project
- fieldNames: [CHANNEL, COL_NAME, D_YEAR, D_QOY, I_CATEGORY,
EXT_SALES_PRICE]
- projection: [_UTF-8'catalog', _UTF-8'cs_ship_mode_sk', D_YEAR,
D_QOY, I_CATEGORY, CS_EXT_SALES_PRICE]
+ projection: [CAST(CHANNEL):VARCHAR(7) CHARACTER SET "UTF-8" NOT
NULL, CAST(COL_NAME):VARCHAR(15) CHARACTER SET "UTF-8" NOT NULL, D_YEAR, D_QOY,
I_CATEGORY, EXT_SALES_PRICE]
est: (rows=360387)
- HashJoin
- predicate: =(CS_ITEM_SK, I_ITEM_SK)
- type: inner
+ Project
+ fieldNames: [CHANNEL, COL_NAME, D_YEAR, D_QOY, I_CATEGORY,
EXT_SALES_PRICE]
+ projection: [_UTF-8'catalog', _UTF-8'cs_ship_mode_sk', D_YEAR,
D_QOY, I_CATEGORY, CS_EXT_SALES_PRICE]
est: (rows=360387)
HashJoin
- predicate: =(CS_SOLD_DATE_SK, D_DATE_SK)
+ predicate: =(CS_ITEM_SK, I_ITEM_SK)
type: inner
est: (rows=360387)
- Exchange
- distribution: single
+ HashJoin
+ predicate: =(CS_SOLD_DATE_SK, D_DATE_SK)
+ type: inner
est: (rows=360387)
- TableScan
- table: PUBLIC.CATALOG_SALES
- predicate: IS NULL(CS_SHIP_MODE_SK)
- fieldNames: [CS_SOLD_DATE_SK, CS_SHIP_MODE_SK, CS_ITEM_SK,
CS_EXT_SALES_PRICE]
+ Exchange
+ distribution: single
est: (rows=360387)
+ TableScan
+ table: PUBLIC.CATALOG_SALES
+ predicate: IS NULL(CS_SHIP_MODE_SK)
+ fieldNames: [CS_SOLD_DATE_SK, CS_SHIP_MODE_SK, CS_ITEM_SK,
CS_EXT_SALES_PRICE]
+ est: (rows=360387)
+ Exchange
+ distribution: single
+ est: (rows=73049)
+ TableScan
+ table: PUBLIC.DATE_DIM
+ fieldNames: [D_DATE_SK, D_YEAR, D_QOY]
+ est: (rows=73049)
Exchange
distribution: single
- est: (rows=73049)
- TableScan
- table: PUBLIC.DATE_DIM
- fieldNames: [D_DATE_SK, D_YEAR, D_QOY]
- est: (rows=73049)
- Exchange
- distribution: single
- est: (rows=18000)
- TableScan
- table: PUBLIC.ITEM
- fieldNames: [I_ITEM_SK, I_CATEGORY]
est: (rows=18000)
+ TableScan
+ table: PUBLIC.ITEM
+ fieldNames: [I_ITEM_SK, I_CATEGORY]
+ est: (rows=18000)
diff --git a/modules/sql-engine/src/test/resources/tpcds/plan/q77.plan
b/modules/sql-engine/src/test/resources/tpcds/plan/q77.plan
index 88a6c14f5de..b0f441a4950 100644
--- a/modules/sql-engine/src/test/resources/tpcds/plan/q77.plan
+++ b/modules/sql-engine/src/test/resources/tpcds/plan/q77.plan
@@ -10,7 +10,7 @@ Sort
UnionAll
est: (rows=519378729)
Project
- projection: [CAST(CHANNEL):CHAR(15) CHARACTER SET "UTF-8" NOT NULL,
CAST(ID):INTEGER, SALES, CAST(RETURNS):DECIMAL(14, 2), PROFIT]
+ projection: [CAST(CHANNEL):VARCHAR(15) CHARACTER SET "UTF-8" NOT
NULL, CAST(ID):INTEGER, SALES, CAST(RETURNS):DECIMAL(14, 2), PROFIT]
est: (rows=144020)
Project
fieldNames: [CHANNEL, ID, SALES, RETURNS, PROFIT]
@@ -100,71 +100,74 @@ Sort
fieldNames: [S_STORE_SK]
est: (rows=12)
Project
- fieldNames: [CHANNEL, ID, SALES, RETURNS, PROFIT]
- projection: [_UTF-8'catalog channel', CS_CALL_CENTER_SK, SALES,
RETURNS, -(PROFIT, PROFIT_LOSS)]
+ projection: [CAST(CHANNEL):VARCHAR(15) CHARACTER SET "UTF-8" NOT
NULL, ID, SALES, RETURNS, PROFIT]
est: (rows=519198739)
- NestedLoopJoin
- predicate: true
- type: inner
+ Project
+ fieldNames: [CHANNEL, ID, SALES, RETURNS, PROFIT]
+ projection: [_UTF-8'catalog channel', CS_CALL_CENTER_SK, SALES,
RETURNS, -(PROFIT, PROFIT_LOSS)]
est: (rows=519198739)
- ColocatedHashAggregate
- fieldNames: [CS_CALL_CENTER_SK, SALES, PROFIT]
- group: [CS_CALL_CENTER_SK]
- aggregation: [SUM(CS_EXT_SALES_PRICE), SUM(CS_NET_PROFIT)]
- est: (rows=72077)
- Project
- fieldNames: [CS_CALL_CENTER_SK, CS_EXT_SALES_PRICE,
CS_NET_PROFIT]
- projection: [CS_CALL_CENTER_SK, CS_EXT_SALES_PRICE,
CS_NET_PROFIT]
- est: (rows=360387)
- HashJoin
- predicate: =(CS_SOLD_DATE_SK, D_DATE_SK)
- type: inner
+ NestedLoopJoin
+ predicate: true
+ type: inner
+ est: (rows=519198739)
+ ColocatedHashAggregate
+ fieldNames: [CS_CALL_CENTER_SK, SALES, PROFIT]
+ group: [CS_CALL_CENTER_SK]
+ aggregation: [SUM(CS_EXT_SALES_PRICE), SUM(CS_NET_PROFIT)]
+ est: (rows=72077)
+ Project
+ fieldNames: [CS_CALL_CENTER_SK, CS_EXT_SALES_PRICE,
CS_NET_PROFIT]
+ projection: [CS_CALL_CENTER_SK, CS_EXT_SALES_PRICE,
CS_NET_PROFIT]
est: (rows=360387)
- Exchange
- distribution: single
- est: (rows=1441548)
- TableScan
- table: PUBLIC.CATALOG_SALES
- fieldNames: [CS_SOLD_DATE_SK, CS_CALL_CENTER_SK,
CS_EXT_SALES_PRICE, CS_NET_PROFIT]
+ HashJoin
+ predicate: =(CS_SOLD_DATE_SK, D_DATE_SK)
+ type: inner
+ est: (rows=360387)
+ Exchange
+ distribution: single
est: (rows=1441548)
- Exchange
- distribution: single
- est: (rows=18262)
- TableScan
- table: PUBLIC.DATE_DIM
- predicate: SEARCH(D_DATE, Sarg[[2000-08-16..2000-09-15]])
- fieldNames: [D_DATE_SK, D_DATE]
+ TableScan
+ table: PUBLIC.CATALOG_SALES
+ fieldNames: [CS_SOLD_DATE_SK, CS_CALL_CENTER_SK,
CS_EXT_SALES_PRICE, CS_NET_PROFIT]
+ est: (rows=1441548)
+ Exchange
+ distribution: single
est: (rows=18262)
- ColocatedHashAggregate
- fieldNames: [CR_CALL_CENTER_SK, RETURNS, PROFIT_LOSS]
- group: [CR_CALL_CENTER_SK]
- aggregation: [SUM(CR_RETURN_AMOUNT), SUM(CR_NET_LOSS)]
- est: (rows=7203)
- Project
- fieldNames: [CR_CALL_CENTER_SK, CR_RETURN_AMOUNT, CR_NET_LOSS]
- projection: [CR_CALL_CENTER_SK, CR_RETURN_AMOUNT, CR_NET_LOSS]
- est: (rows=36017)
- HashJoin
- predicate: =(CR_RETURNED_DATE_SK, D_DATE_SK)
- type: inner
+ TableScan
+ table: PUBLIC.DATE_DIM
+ predicate: SEARCH(D_DATE,
Sarg[[2000-08-16..2000-09-15]])
+ fieldNames: [D_DATE_SK, D_DATE]
+ est: (rows=18262)
+ ColocatedHashAggregate
+ fieldNames: [CR_CALL_CENTER_SK, RETURNS, PROFIT_LOSS]
+ group: [CR_CALL_CENTER_SK]
+ aggregation: [SUM(CR_RETURN_AMOUNT), SUM(CR_NET_LOSS)]
+ est: (rows=7203)
+ Project
+ fieldNames: [CR_CALL_CENTER_SK, CR_RETURN_AMOUNT,
CR_NET_LOSS]
+ projection: [CR_CALL_CENTER_SK, CR_RETURN_AMOUNT,
CR_NET_LOSS]
est: (rows=36017)
- Exchange
- distribution: single
- est: (rows=144067)
- TableScan
- table: PUBLIC.CATALOG_RETURNS
- fieldNames: [CR_RETURNED_DATE_SK, CR_CALL_CENTER_SK,
CR_RETURN_AMOUNT, CR_NET_LOSS]
+ HashJoin
+ predicate: =(CR_RETURNED_DATE_SK, D_DATE_SK)
+ type: inner
+ est: (rows=36017)
+ Exchange
+ distribution: single
est: (rows=144067)
- Exchange
- distribution: single
- est: (rows=18262)
- TableScan
- table: PUBLIC.DATE_DIM
- predicate: SEARCH(D_DATE, Sarg[[2000-08-16..2000-09-15]])
- fieldNames: [D_DATE_SK, D_DATE]
+ TableScan
+ table: PUBLIC.CATALOG_RETURNS
+ fieldNames: [CR_RETURNED_DATE_SK, CR_CALL_CENTER_SK,
CR_RETURN_AMOUNT, CR_NET_LOSS]
+ est: (rows=144067)
+ Exchange
+ distribution: single
est: (rows=18262)
+ TableScan
+ table: PUBLIC.DATE_DIM
+ predicate: SEARCH(D_DATE,
Sarg[[2000-08-16..2000-09-15]])
+ fieldNames: [D_DATE_SK, D_DATE]
+ est: (rows=18262)
Project
- projection: [CAST(CHANNEL):CHAR(15) CHARACTER SET "UTF-8" NOT NULL,
CAST(ID):INTEGER, SALES, CAST(RETURNS):DECIMAL(14, 2), PROFIT]
+ projection: [CAST(CHANNEL):VARCHAR(15) CHARACTER SET "UTF-8" NOT
NULL, CAST(ID):INTEGER, SALES, CAST(RETURNS):DECIMAL(14, 2), PROFIT]
est: (rows=35969)
Project
fieldNames: [CHANNEL, ID, SALES, RETURNS, PROFIT]
diff --git a/modules/sql-engine/src/test/resources/tpcds/plan/q80.plan
b/modules/sql-engine/src/test/resources/tpcds/plan/q80.plan
index 0b0c1904630..1beff4cb200 100644
--- a/modules/sql-engine/src/test/resources/tpcds/plan/q80.plan
+++ b/modules/sql-engine/src/test/resources/tpcds/plan/q80.plan
@@ -10,7 +10,7 @@ Sort
UnionAll
est: (rows=41969)
Project
- projection: [CAST(CHANNEL):CHAR(15) CHARACTER SET "UTF-8" NOT NULL,
CAST(ID):VARCHAR(28) CHARACTER SET "UTF-8", SALES, RETURNS, PROFIT]
+ projection: [CAST(CHANNEL):VARCHAR(15) CHARACTER SET "UTF-8" NOT
NULL, CAST(ID):VARCHAR(28) CHARACTER SET "UTF-8", SALES, RETURNS, PROFIT]
est: (rows=23979)
Project
fieldNames: [CHANNEL, ID, SALES, RETURNS, PROFIT]
@@ -91,85 +91,88 @@ Sort
fieldNames: [P_PROMO_SK, P_CHANNEL_TV]
est: (rows=100)
Project
- fieldNames: [CHANNEL, ID, SALES, RETURNS, PROFIT]
- projection: [_UTF-8'catalog channel', ||(_UTF-8'catalog_page',
CATALOG_PAGE_ID), SALES, RETURNS, PROFIT]
+ projection: [CAST(CHANNEL):VARCHAR(15) CHARACTER SET "UTF-8" NOT
NULL, ID, SALES, RETURNS, PROFIT]
est: (rows=12001)
- ColocatedHashAggregate
- fieldNames: [CATALOG_PAGE_ID, SALES, RETURNS, PROFIT]
- group: [CATALOG_PAGE_ID]
- aggregation: [SUM(CS_EXT_SALES_PRICE), SUM($f2), SUM($f3)]
+ Project
+ fieldNames: [CHANNEL, ID, SALES, RETURNS, PROFIT]
+ projection: [_UTF-8'catalog channel', ||(_UTF-8'catalog_page',
CATALOG_PAGE_ID), SALES, RETURNS, PROFIT]
est: (rows=12001)
- Project
- fieldNames: [CATALOG_PAGE_ID, CS_EXT_SALES_PRICE, $f2, $f3]
- projection: [CP_CATALOG_PAGE_ID, CS_EXT_SALES_PRICE, CASE(IS NOT
NULL(CR_RETURN_AMOUNT), CAST(CR_RETURN_AMOUNT):DECIMAL(12, 2) NOT NULL,
0.00:DECIMAL(12, 2)), -(CS_NET_PROFIT, CASE(IS NOT NULL(CR_NET_LOSS),
CAST(CR_NET_LOSS):DECIMAL(12, 2) NOT NULL, 0.00:DECIMAL(12, 2)))]
- est: (rows=60004)
- HashJoin
- predicate: =(CS_PROMO_SK, P_PROMO_SK)
- type: inner
+ ColocatedHashAggregate
+ fieldNames: [CATALOG_PAGE_ID, SALES, RETURNS, PROFIT]
+ group: [CATALOG_PAGE_ID]
+ aggregation: [SUM(CS_EXT_SALES_PRICE), SUM($f2), SUM($f3)]
+ est: (rows=12001)
+ Project
+ fieldNames: [CATALOG_PAGE_ID, CS_EXT_SALES_PRICE, $f2, $f3]
+ projection: [CP_CATALOG_PAGE_ID, CS_EXT_SALES_PRICE, CASE(IS
NOT NULL(CR_RETURN_AMOUNT), CAST(CR_RETURN_AMOUNT):DECIMAL(12, 2) NOT NULL,
0.00:DECIMAL(12, 2)), -(CS_NET_PROFIT, CASE(IS NOT NULL(CR_NET_LOSS),
CAST(CR_NET_LOSS):DECIMAL(12, 2) NOT NULL, 0.00:DECIMAL(12, 2)))]
est: (rows=60004)
HashJoin
- predicate: =(CS_ITEM_SK, I_ITEM_SK)
+ predicate: =(CS_PROMO_SK, P_PROMO_SK)
type: inner
- est: (rows=180194)
+ est: (rows=60004)
HashJoin
- predicate: =(CS_CATALOG_PAGE_SK, CP_CATALOG_PAGE_SK)
+ predicate: =(CS_ITEM_SK, I_ITEM_SK)
type: inner
- est: (rows=360387)
+ est: (rows=180194)
HashJoin
- predicate: =(CS_SOLD_DATE_SK, D_DATE_SK)
+ predicate: =(CS_CATALOG_PAGE_SK, CP_CATALOG_PAGE_SK)
type: inner
est: (rows=360387)
HashJoin
- predicate: AND(=(CS_ITEM_SK, CR_ITEM_SK),
=(CS_ORDER_NUMBER, CR_ORDER_NUMBER))
- type: left
- est: (rows=1441548)
- Exchange
- distribution: single
+ predicate: =(CS_SOLD_DATE_SK, D_DATE_SK)
+ type: inner
+ est: (rows=360387)
+ HashJoin
+ predicate: AND(=(CS_ITEM_SK, CR_ITEM_SK),
=(CS_ORDER_NUMBER, CR_ORDER_NUMBER))
+ type: left
est: (rows=1441548)
- TableScan
- table: PUBLIC.CATALOG_SALES
- fieldNames: [CS_SOLD_DATE_SK, CS_CATALOG_PAGE_SK,
CS_ITEM_SK, CS_PROMO_SK, CS_ORDER_NUMBER, CS_EXT_SALES_PRICE, CS_NET_PROFIT]
+ Exchange
+ distribution: single
est: (rows=1441548)
+ TableScan
+ table: PUBLIC.CATALOG_SALES
+ fieldNames: [CS_SOLD_DATE_SK,
CS_CATALOG_PAGE_SK, CS_ITEM_SK, CS_PROMO_SK, CS_ORDER_NUMBER,
CS_EXT_SALES_PRICE, CS_NET_PROFIT]
+ est: (rows=1441548)
+ Exchange
+ distribution: single
+ est: (rows=144067)
+ TableScan
+ table: PUBLIC.CATALOG_RETURNS
+ fieldNames: [CR_ITEM_SK, CR_ORDER_NUMBER,
CR_RETURN_AMOUNT, CR_NET_LOSS]
+ est: (rows=144067)
Exchange
distribution: single
- est: (rows=144067)
+ est: (rows=18262)
TableScan
- table: PUBLIC.CATALOG_RETURNS
- fieldNames: [CR_ITEM_SK, CR_ORDER_NUMBER,
CR_RETURN_AMOUNT, CR_NET_LOSS]
- est: (rows=144067)
+ table: PUBLIC.DATE_DIM
+ predicate: SEARCH(D_DATE,
Sarg[[2002-08-06..2002-09-05]])
+ fieldNames: [D_DATE_SK, D_DATE]
+ est: (rows=18262)
Exchange
distribution: single
- est: (rows=18262)
+ est: (rows=11718)
TableScan
- table: PUBLIC.DATE_DIM
- predicate: SEARCH(D_DATE,
Sarg[[2002-08-06..2002-09-05]])
- fieldNames: [D_DATE_SK, D_DATE]
- est: (rows=18262)
+ table: PUBLIC.CATALOG_PAGE
+ fieldNames: [CP_CATALOG_PAGE_SK, CP_CATALOG_PAGE_ID]
+ est: (rows=11718)
Exchange
distribution: single
- est: (rows=11718)
+ est: (rows=9000)
TableScan
- table: PUBLIC.CATALOG_PAGE
- fieldNames: [CP_CATALOG_PAGE_SK, CP_CATALOG_PAGE_ID]
- est: (rows=11718)
+ table: PUBLIC.ITEM
+ predicate: >(I_CURRENT_PRICE, 50.00)
+ fieldNames: [I_ITEM_SK, I_CURRENT_PRICE]
+ est: (rows=9000)
Exchange
distribution: single
- est: (rows=9000)
- TableScan
- table: PUBLIC.ITEM
- predicate: >(I_CURRENT_PRICE, 50.00)
- fieldNames: [I_ITEM_SK, I_CURRENT_PRICE]
- est: (rows=9000)
- Exchange
- distribution: single
- est: (rows=100)
- TableScan
- table: PUBLIC.PROMOTION
- predicate: =(P_CHANNEL_TV, _UTF-8'N')
- fieldNames: [P_PROMO_SK, P_CHANNEL_TV]
est: (rows=100)
+ TableScan
+ table: PUBLIC.PROMOTION
+ predicate: =(P_CHANNEL_TV, _UTF-8'N')
+ fieldNames: [P_PROMO_SK, P_CHANNEL_TV]
+ est: (rows=100)
Project
- projection: [CAST(CHANNEL):CHAR(15) CHARACTER SET "UTF-8" NOT NULL,
CAST(ID):VARCHAR(28) CHARACTER SET "UTF-8", SALES, RETURNS, PROFIT]
+ projection: [CAST(CHANNEL):VARCHAR(15) CHARACTER SET "UTF-8" NOT
NULL, CAST(ID):VARCHAR(28) CHARACTER SET "UTF-8", SALES, RETURNS, PROFIT]
est: (rows=5989)
Project
fieldNames: [CHANNEL, ID, SALES, RETURNS, PROFIT]
diff --git a/modules/sql-engine/src/test/resources/tpcds/plan/q85.plan
b/modules/sql-engine/src/test/resources/tpcds/plan/q85.plan
index 9e4705c4d65..9894cda19ae 100644
--- a/modules/sql-engine/src/test/resources/tpcds/plan/q85.plan
+++ b/modules/sql-engine/src/test/resources/tpcds/plan/q85.plan
@@ -41,7 +41,7 @@ Sort
distribution: single
est: (rows=2)
HashJoin
- predicate: AND(=(CD_DEMO_SK, WR_RETURNING_CDEMO_SK),
=(CD_MARITAL_STATUS$0, CD_MARITAL_STATUS), =(CD_EDUCATION_STATUS$0,
CD_EDUCATION_STATUS), OR(SEARCH(CD_MARITAL_STATUS$0, Sarg[_UTF-8'M',
_UTF-8'S']:CHAR(1) CHARACTER SET "UTF-8"), =(CD_MARITAL_STATUS$0,
CD_MARITAL_STATUS)), OR(SEARCH(CD_MARITAL_STATUS$0, Sarg[_UTF-8'M',
_UTF-8'S']:CHAR(1) CHARACTER SET "UTF-8"), =(CD_EDUCATION_STATUS$0,
CD_EDUCATION_STATUS)), OR(SEARCH(CD_MARITAL_STATUS$0, Sarg[_UTF-8'D',
_UTF-8'M']:C [...]
+ predicate: AND(=(CD_DEMO_SK, WR_RETURNING_CDEMO_SK),
=(CD_MARITAL_STATUS$0, CD_MARITAL_STATUS), =(CD_EDUCATION_STATUS$0,
CD_EDUCATION_STATUS), OR(SEARCH(CD_MARITAL_STATUS$0, Sarg[_UTF-8'M',
_UTF-8'S']:CHAR(1) CHARACTER SET "UTF-8"), =(CD_MARITAL_STATUS$0,
CD_MARITAL_STATUS)), OR(SEARCH(CD_MARITAL_STATUS$0, Sarg[_UTF-8'M',
_UTF-8'S']:CHAR(1) CHARACTER SET "UTF-8"), =(CD_EDUCATION_STATUS$0,
CD_EDUCATION_STATUS)), OR(SEARCH(CD_MARITAL_STATUS$0, Sarg[_UTF-8'D',
_UTF-8'M']:C [...]
fieldNames: [CD_DEMO_SK, CD_MARITAL_STATUS,
CD_EDUCATION_STATUS, D_DATE_SK, D_YEAR, CA_ADDRESS_SK, CA_STATE, CA_COUNTRY,
WS_SOLD_DATE_SK, WS_ITEM_SK, WS_WEB_PAGE_SK, WS_ORDER_NUMBER, WS_QUANTITY,
WS_SALES_PRICE, WS_NET_PROFIT, WR_ITEM_SK, WR_REFUNDED_CDEMO_SK,
WR_REFUNDED_ADDR_SK, WR_RETURNING_CDEMO_SK, WR_REASON_SK, WR_ORDER_NUMBER,
WR_FEE, WR_REFUNDED_CASH, CD_DEMO_SK$0, CD_MARITAL_STATUS$0,
CD_EDUCATION_STATUS$0]
type: inner
est: (rows=2)
@@ -77,7 +77,7 @@ Sort
fieldNames: [CA_ADDRESS_SK, CA_STATE, CA_COUNTRY]
est: (rows=12138)
HashJoin
- predicate: AND(=(WS_ITEM_SK, WR_ITEM_SK),
=(WS_ORDER_NUMBER, WR_ORDER_NUMBER), OR(SEARCH(CD_MARITAL_STATUS,
Sarg[_UTF-8'M', _UTF-8'S']:CHAR(1) CHARACTER SET "UTF-8"),
SEARCH(WS_SALES_PRICE, Sarg[[150.00:DECIMAL(5, 2)..200.00:DECIMAL(5,
2)]]:DECIMAL(5, 2))), OR(=(CD_MARITAL_STATUS, _UTF-8'M'),
=(CD_EDUCATION_STATUS, _UTF-8'College'), SEARCH(WS_SALES_PRICE,
Sarg[[150.00:DECIMAL(5, 2)..200.00:DECIMAL(5, 2)]]:DECIMAL(5, 2))),
OR(SEARCH(CD_MARITAL_STATUS, Sarg[_UTF-8 [...]
+ predicate: AND(=(WS_ITEM_SK, WR_ITEM_SK),
=(WS_ORDER_NUMBER, WR_ORDER_NUMBER), OR(SEARCH(CD_MARITAL_STATUS,
Sarg[_UTF-8'M', _UTF-8'S']:CHAR(1) CHARACTER SET "UTF-8"),
SEARCH(WS_SALES_PRICE, Sarg[[150.00:DECIMAL(5, 2)..200.00:DECIMAL(5,
2)]]:DECIMAL(5, 2))), OR(=(CD_MARITAL_STATUS, _UTF-8'M'),
=(CD_EDUCATION_STATUS, _UTF-8'College'), SEARCH(WS_SALES_PRICE,
Sarg[[150.00:DECIMAL(5, 2)..200.00:DECIMAL(5, 2)]]:DECIMAL(5, 2))),
OR(SEARCH(CD_MARITAL_STATUS, Sarg[_UTF-8 [...]
type: inner
est: (rows=61)
Exchange
@@ -104,6 +104,6 @@ Sort
est: (rows=37512)
TableScan
table: PUBLIC.CUSTOMER_DEMOGRAPHICS
- predicate: AND(SEARCH(CD_MARITAL_STATUS,
Sarg[_UTF-8'D', _UTF-8'M', _UTF-8'S']:CHAR(1) CHARACTER SET "UTF-8"),
OR(SEARCH(CD_MARITAL_STATUS, Sarg[_UTF-8'M', _UTF-8'S']:CHAR(1) CHARACTER SET
"UTF-8"), =(CD_EDUCATION_STATUS, _UTF-8'Secondary')),
OR(SEARCH(CD_MARITAL_STATUS, Sarg[_UTF-8'D', _UTF-8'M']:CHAR(1) CHARACTER SET
"UTF-8"), =(CD_EDUCATION_STATUS, _UTF-8'College')), OR(=(CD_MARITAL_STATUS,
_UTF-8'M'), SEARCH(CD_EDUCATION_STATUS, Sarg[_UTF-8'College':CH [...]
+ predicate: AND(SEARCH(CD_MARITAL_STATUS,
Sarg[_UTF-8'D', _UTF-8'M', _UTF-8'S']:CHAR(1) CHARACTER SET "UTF-8"),
OR(SEARCH(CD_MARITAL_STATUS, Sarg[_UTF-8'M', _UTF-8'S']:CHAR(1) CHARACTER SET
"UTF-8"), =(CD_EDUCATION_STATUS, _UTF-8'Secondary')),
OR(SEARCH(CD_MARITAL_STATUS, Sarg[_UTF-8'D', _UTF-8'M']:CHAR(1) CHARACTER SET
"UTF-8"), =(CD_EDUCATION_STATUS, _UTF-8'College')), OR(=(CD_MARITAL_STATUS,
_UTF-8'M'), SEARCH(CD_EDUCATION_STATUS, Sarg[_UTF-8'College':VA [...]
fieldNames: [CD_DEMO_SK, CD_MARITAL_STATUS,
CD_EDUCATION_STATUS]
est: (rows=37512)
diff --git a/modules/sql-engine/src/test/resources/tpch/plan/q12.plan
b/modules/sql-engine/src/test/resources/tpch/plan/q12.plan
index d6e10143d12..39b01764fdb 100644
--- a/modules/sql-engine/src/test/resources/tpch/plan/q12.plan
+++ b/modules/sql-engine/src/test/resources/tpch/plan/q12.plan
@@ -16,7 +16,7 @@ Sort
est: (rows=42644)
Project
fieldNames: [L_SHIPMODE, $f1, $f2]
- projection: [L_SHIPMODE, CASE(SEARCH(O_ORDERPRIORITY,
Sarg[_UTF-8'1-URGENT', _UTF-8'2-HIGH':CHAR(8) CHARACTER SET "UTF-8"]:CHAR(8)
CHARACTER SET "UTF-8"), 1, 0), CASE(SEARCH(O_ORDERPRIORITY,
Sarg[(-∞.._UTF-8'1-URGENT'), (_UTF-8'1-URGENT'.._UTF-8'2-HIGH':CHAR(8)
CHARACTER SET "UTF-8"), (_UTF-8'2-HIGH':CHAR(8) CHARACTER SET
"UTF-8"..+∞)]:CHAR(8) CHARACTER SET "UTF-8"), 1, 0)]
+ projection: [L_SHIPMODE, CASE(SEARCH(O_ORDERPRIORITY,
Sarg[_UTF-8'1-URGENT':VARCHAR(8) CHARACTER SET "UTF-8",
_UTF-8'2-HIGH':VARCHAR(8) CHARACTER SET "UTF-8"]:VARCHAR(8) CHARACTER SET
"UTF-8"), 1, 0), CASE(SEARCH(O_ORDERPRIORITY,
Sarg[(-∞.._UTF-8'1-URGENT':VARCHAR(8) CHARACTER SET "UTF-8"),
(_UTF-8'1-URGENT':VARCHAR(8) CHARACTER SET "UTF-8".._UTF-8'2-HIGH':VARCHAR(8)
CHARACTER SET "UTF-8"), (_UTF-8'2-HIGH':VARCHAR(8) CHARACTER SET
"UTF-8"..+∞)]:VARCHAR(8) CHARACTER SET "UTF-8 [...]
est: (rows=213218)
HashJoin
predicate: =(O_ORDERKEY, L_ORDERKEY)
diff --git a/modules/sql-engine/src/test/resources/tpch/plan/q7.plan
b/modules/sql-engine/src/test/resources/tpch/plan/q7.plan
index 47899b5420a..76a169d217f 100644
--- a/modules/sql-engine/src/test/resources/tpch/plan/q7.plan
+++ b/modules/sql-engine/src/test/resources/tpch/plan/q7.plan
@@ -43,7 +43,7 @@ Sort
est: (rows=14)
TableScan
table: PUBLIC.NATION
- predicate: SEARCH(N_NAME, Sarg[_UTF-8'FRANCE':CHAR(7)
CHARACTER SET "UTF-8", _UTF-8'GERMANY']:CHAR(7) CHARACTER SET "UTF-8")
+ predicate: SEARCH(N_NAME, Sarg[_UTF-8'FRANCE':VARCHAR(7)
CHARACTER SET "UTF-8", _UTF-8'GERMANY':VARCHAR(7) CHARACTER SET
"UTF-8"]:VARCHAR(7) CHARACTER SET "UTF-8")
fieldNames: [N_NATIONKEY, N_NAME]
est: (rows=14)
HashJoin
@@ -73,6 +73,6 @@ Sort
est: (rows=14)
TableScan
table: PUBLIC.NATION
- predicate: SEARCH(N_NAME, Sarg[_UTF-8'FRANCE':CHAR(7)
CHARACTER SET "UTF-8", _UTF-8'GERMANY']:CHAR(7) CHARACTER SET "UTF-8")
+ predicate: SEARCH(N_NAME, Sarg[_UTF-8'FRANCE':VARCHAR(7)
CHARACTER SET "UTF-8", _UTF-8'GERMANY':VARCHAR(7) CHARACTER SET
"UTF-8"]:VARCHAR(7) CHARACTER SET "UTF-8")
fieldNames: [N_NATIONKEY, N_NAME]
est: (rows=14)
diff --git a/modules/sql-engine/src/test/resources/tpch/plan/variant_q12.plan
b/modules/sql-engine/src/test/resources/tpch/plan/variant_q12.plan
index 80cae2cead0..467a725e37e 100644
--- a/modules/sql-engine/src/test/resources/tpch/plan/variant_q12.plan
+++ b/modules/sql-engine/src/test/resources/tpch/plan/variant_q12.plan
@@ -16,7 +16,7 @@ Sort
est: (rows=42644)
Project
fieldNames: [L_SHIPMODE, $f1, $f2]
- projection: [L_SHIPMODE, CASE(SEARCH(O_ORDERPRIORITY,
Sarg[_UTF-8'1-URGENT', _UTF-8'2-HIGH':CHAR(8) CHARACTER SET "UTF-8"]:CHAR(8)
CHARACTER SET "UTF-8"), 1, 0), CASE(SEARCH(O_ORDERPRIORITY,
Sarg[_UTF-8'1-URGENT', _UTF-8'2-HIGH':CHAR(8) CHARACTER SET "UTF-8"]:CHAR(8)
CHARACTER SET "UTF-8"), 0, 1)]
+ projection: [L_SHIPMODE, CASE(SEARCH(O_ORDERPRIORITY,
Sarg[_UTF-8'1-URGENT':VARCHAR(8) CHARACTER SET "UTF-8",
_UTF-8'2-HIGH':VARCHAR(8) CHARACTER SET "UTF-8"]:VARCHAR(8) CHARACTER SET
"UTF-8"), 1, 0), CASE(SEARCH(O_ORDERPRIORITY, Sarg[_UTF-8'1-URGENT':VARCHAR(8)
CHARACTER SET "UTF-8", _UTF-8'2-HIGH':VARCHAR(8) CHARACTER SET
"UTF-8"]:VARCHAR(8) CHARACTER SET "UTF-8"), 0, 1)]
est: (rows=213218)
HashJoin
predicate: =(O_ORDERKEY, L_ORDERKEY)
diff --git
a/packaging/test/src/integrationTest/java/org/apache/ignite/tests/docker/ItDockerConfigTest.java
b/packaging/test/src/integrationTest/java/org/apache/ignite/tests/docker/ItDockerConfigTest.java
index f07daca8474..25def31f398 100644
---
a/packaging/test/src/integrationTest/java/org/apache/ignite/tests/docker/ItDockerConfigTest.java
+++
b/packaging/test/src/integrationTest/java/org/apache/ignite/tests/docker/ItDockerConfigTest.java
@@ -41,7 +41,7 @@ import org.testcontainers.utility.MountableFile;
/**
* Basic tests for Docker configuration.
*/
-@Disabled("https://issues.apache.org/jira/browse/IGNITE-15373")
+@Disabled("https://issues.apache.org/jira/browse/IGNITE-27471")
public class ItDockerConfigTest {
private static final String DOCKER_IMAGE = "apacheignite/ignite:latest";
private static final int CLUSTER_SIZE = 3;