This is an automated email from the ASF dual-hosted git repository.

sk0x50 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 565517c55dc IGNITE-25432 Fix SqlSchemaManagerImplTest and 
TpcdsQueryPlannerTest when the colocation enabled (#5880)
565517c55dc is described below

commit 565517c55dc17684b229a27a2e7f7198ae127791
Author: Slava Koptilin <[email protected]>
AuthorDate: Thu May 22 15:58:11 2025 +0300

    IGNITE-25432 Fix SqlSchemaManagerImplTest and TpcdsQueryPlannerTest when 
the colocation enabled (#5880)
---
 .../sql/engine/planner/TpcdsQueryPlannerTest.java  |   6 +-
 .../engine/schema/SqlSchemaManagerImplTest.java    |  16 +-
 .../test/resources/tpcds/plan/q64_colocated.plan   | 467 +++++++++++++++++++++
 3 files changed, 485 insertions(+), 4 deletions(-)

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 dcd4165f9ff..95e546839d3 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
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.sql.engine.planner;
 
+import static 
org.apache.ignite.internal.lang.IgniteSystemProperties.enabledColocation;
 import static 
org.apache.ignite.internal.sql.engine.planner.AbstractTpcQueryPlannerTest.TpcSuiteInfo;
 
 import org.apache.ignite.internal.sql.engine.util.tpcds.TpcdsHelper;
@@ -62,7 +63,10 @@ public class TpcdsQueryPlannerTest extends 
AbstractTpcQueryPlannerTest {
             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);
+            var queryFile = enabledColocation()
+                    ? String.format("tpcds/plan/q%s_colocated.plan", numericId)
+                    : String.format("tpcds/plan/q%s.plan", numericId);
+
             return loadFromResource(queryFile);
         }
     }
diff --git 
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImplTest.java
 
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImplTest.java
index a1506b62a5d..f3fa8f4f677 100644
--- 
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImplTest.java
+++ 
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/schema/SqlSchemaManagerImplTest.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.sql.engine.schema;
 
 import static 
org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
+import static 
org.apache.ignite.internal.lang.IgniteSystemProperties.enabledColocation;
 import static 
org.apache.ignite.internal.sql.engine.util.TypeUtils.columnType2NativeType;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCause;
 import static org.apache.ignite.internal.testframework.IgniteTestUtils.await;
@@ -472,21 +473,30 @@ public class SqlSchemaManagerImplTest extends 
BaseIgniteAbstractTest {
             IgniteTable table = getTable(unwrapSchema(schemaPlus), "T1");
             IgniteDistribution distribution = 
table.descriptor().distribution();
 
-            assertThat(distribution, 
equalTo(IgniteDistributions.affinity(List.of(1), table.id(), table.id())));
+            assertThat(distribution, equalTo(IgniteDistributions.affinity(
+                    List.of(1),
+                    table.id(),
+                    enabledColocation() ? table.zoneId() : table.id())));
         }
 
         {
             IgniteTable table = getTable(unwrapSchema(schemaPlus), "T2");
             IgniteDistribution distribution = 
table.descriptor().distribution();
 
-            assertThat(distribution, 
equalTo(IgniteDistributions.affinity(List.of(3, 1), table.id(), table.id())));
+            assertThat(distribution, equalTo(IgniteDistributions.affinity(
+                    List.of(3, 1),
+                    table.id(),
+                    enabledColocation() ? table.zoneId() : table.id())));
         }
 
         {
             IgniteTable table = getTable(unwrapSchema(schemaPlus), "T3");
             IgniteDistribution distribution = 
table.descriptor().distribution();
 
-            assertThat(distribution, 
equalTo(IgniteDistributions.affinity(List.of(2, 1, 0), table.id(), 
table.id())));
+            assertThat(distribution, equalTo(IgniteDistributions.affinity(
+                    List.of(2, 1, 0),
+                    table.id(),
+                    enabledColocation() ? table.zoneId() : table.id())));
         }
     }
 
diff --git 
a/modules/sql-engine/src/test/resources/tpcds/plan/q64_colocated.plan 
b/modules/sql-engine/src/test/resources/tpcds/plan/q64_colocated.plan
new file mode 100644
index 00000000000..ab202c2da26
--- /dev/null
+++ b/modules/sql-engine/src/test/resources/tpcds/plan/q64_colocated.plan
@@ -0,0 +1,467 @@
+Sort
+    collation: [PRODUCT_NAME ASC, STORE_NAME ASC, CNT0 ASC, S11 ASC, S12 ASC]
+    est: (rows=21)
+  Project
+      fields: [PRODUCT_NAME, STORE_NAME, STORE_ZIP, B_STREET_NUMBER, 
B_STREET_NAME, B_CITY, B_ZIP, C_STREET_NUMBER, C_STREET_NAME, C_CITY, C_ZIP, 
SYEAR, CNT, S11, S21, S31, S12, S22, S32, SYEAR0, CNT0]
+      exprs: [PRODUCT_NAME, STORE_NAME, STORE_ZIP, B_STREET_NUMBER, 
B_STREET_NAME, B_CITY, B_ZIP, C_STREET_NUMBER, C_STREET_NAME, C_CITY, C_ZIP, 
SYEAR, CNT, S1, S2, S3, S10, S20, S30, SYEAR0, CNT0]
+      est: (rows=21)
+    HashJoin
+        condition: AND(=(ITEM_SK, ITEM_SK0), <=(CNT0, CNT), =(STORE_NAME, 
STORE_NAME0), =(STORE_ZIP, STORE_ZIP0))
+        joinType: inner
+        est: (rows=21)
+      ColocatedHashAggregate
+          group: [PRODUCT_NAME, ITEM_SK, STORE_NAME, STORE_ZIP, 
B_STREET_NUMBER, B_STREET_NAME, B_CITY, B_ZIP, C_STREET_NUMBER, C_STREET_NAME, 
C_CITY, C_ZIP, SYEAR, FSYEAR, S2YEAR]
+          aggs: [COUNT(), SUM(SS_WHOLESALE_COST), SUM(SS_LIST_PRICE), 
SUM(SS_COUPON_AMT)]
+          est: (rows=2887)
+        Project
+            fields: [PRODUCT_NAME, ITEM_SK, STORE_NAME, STORE_ZIP, 
B_STREET_NUMBER, B_STREET_NAME, B_CITY, B_ZIP, C_STREET_NUMBER, C_STREET_NAME, 
C_CITY, C_ZIP, SYEAR, FSYEAR, S2YEAR, SS_WHOLESALE_COST, SS_LIST_PRICE, 
SS_COUPON_AMT]
+            exprs: [I_PRODUCT_NAME, I_ITEM_SK, S_STORE_NAME, S_ZIP, 
CA_STREET_NUMBER, CA_STREET_NAME, CA_CITY, CA_ZIP, CA_STREET_NUMBER0, 
CA_STREET_NAME0, CA_CITY0, CA_ZIP0, D_YEAR00, D_YEAR, D_YEAR0, 
SS_WHOLESALE_COST, SS_LIST_PRICE, SS_COUPON_AMT]
+            est: (rows=2992)
+          HashJoin
+              condition: AND(=(SS_ITEM_SK, SR_ITEM_SK), =(SS_TICKET_NUMBER, 
SR_TICKET_NUMBER))
+              joinType: inner
+              est: (rows=2992)
+            Exchange
+                distribution: single
+                est: (rows=287514)
+              TableScan
+                  table: PUBLIC.STORE_RETURNS
+                  fields: [SR_ITEM_SK, SR_TICKET_NUMBER]
+                  est: (rows=287514)
+            HashJoin
+                condition: =(C_FIRST_SALES_DATE_SK, D_DATE_SK)
+                joinType: inner
+                est: (rows=90684167)
+              Exchange
+                  distribution: single
+                  est: (rows=73049)
+                TableScan
+                    table: PUBLIC.DATE_DIM
+                    fields: [D_DATE_SK, D_YEAR]
+                    est: (rows=73049)
+              HashJoin
+                  condition: =(C_FIRST_SHIPTO_DATE_SK, D_DATE_SK)
+                  joinType: inner
+                  est: (rows=90684167)
+                Exchange
+                    distribution: single
+                    est: (rows=73049)
+                  TableScan
+                      table: PUBLIC.DATE_DIM
+                      fields: [D_DATE_SK, D_YEAR]
+                      est: (rows=73049)
+                HashJoin
+                    condition: =(SS_STORE_SK, S_STORE_SK)
+                    joinType: inner
+                    est: (rows=90684167)
+                  HashJoin
+                      condition: =(SS_PROMO_SK, P_PROMO_SK)
+                      joinType: inner
+                      est: (rows=90684167)
+                    HashJoin
+                        condition: =(SS_ADDR_SK, CA_ADDRESS_SK)
+                        joinType: inner
+                        est: (rows=90684167)
+                      Exchange
+                          distribution: single
+                          est: (rows=50000)
+                        TableScan
+                            table: PUBLIC.CUSTOMER_ADDRESS
+                            fields: [CA_ADDRESS_SK, CA_STREET_NUMBER, 
CA_STREET_NAME, CA_CITY, CA_ZIP]
+                            est: (rows=50000)
+                      HashJoin
+                          condition: =(C_CURRENT_ADDR_SK, CA_ADDRESS_SK)
+                          joinType: inner
+                          est: (rows=90684167)
+                        Exchange
+                            distribution: single
+                            est: (rows=50000)
+                          TableScan
+                              table: PUBLIC.CUSTOMER_ADDRESS
+                              fields: [CA_ADDRESS_SK, CA_STREET_NUMBER, 
CA_STREET_NAME, CA_CITY, CA_ZIP]
+                              est: (rows=50000)
+                        HashJoin
+                            condition: =(HD_INCOME_BAND_SK, IB_INCOME_BAND_SK0)
+                            joinType: inner
+                            est: (rows=90684167)
+                          HashJoin
+                              condition: =(SS_HDEMO_SK, HD_DEMO_SK)
+                              joinType: inner
+                              est: (rows=90684167)
+                            Exchange
+                                distribution: single
+                                est: (rows=7200)
+                              TableScan
+                                  table: PUBLIC.HOUSEHOLD_DEMOGRAPHICS
+                                  fields: [HD_DEMO_SK, HD_INCOME_BAND_SK]
+                                  est: (rows=7200)
+                            HashJoin
+                                condition: =(HD_INCOME_BAND_SK, 
IB_INCOME_BAND_SK)
+                                joinType: inner
+                                est: (rows=90684167)
+                              HashJoin
+                                  condition: =(C_CURRENT_HDEMO_SK, HD_DEMO_SK)
+                                  joinType: inner
+                                  est: (rows=90684167)
+                                Exchange
+                                    distribution: single
+                                    est: (rows=7200)
+                                  TableScan
+                                      table: PUBLIC.HOUSEHOLD_DEMOGRAPHICS
+                                      fields: [HD_DEMO_SK, HD_INCOME_BAND_SK]
+                                      est: (rows=7200)
+                                HashJoin
+                                    condition: AND(<>(CD_MARITAL_STATUS, 
CD_MARITAL_STATUS0), =(SS_CDEMO_SK, CD_DEMO_SK))
+                                    joinType: inner
+                                    est: (rows=90684167)
+                                  Exchange
+                                      distribution: single
+                                      est: (rows=1920800)
+                                    TableScan
+                                        table: PUBLIC.CUSTOMER_DEMOGRAPHICS
+                                        fields: [CD_DEMO_SK, CD_MARITAL_STATUS]
+                                        est: (rows=1920800)
+                                  HashJoin
+                                      condition: =(C_CURRENT_CDEMO_SK, 
CD_DEMO_SK)
+                                      joinType: inner
+                                      est: (rows=129548810)
+                                    Exchange
+                                        distribution: single
+                                        est: (rows=1920800)
+                                      TableScan
+                                          table: PUBLIC.CUSTOMER_DEMOGRAPHICS
+                                          fields: [CD_DEMO_SK, 
CD_MARITAL_STATUS]
+                                          est: (rows=1920800)
+                                    HashJoin
+                                        condition: =(SS_CUSTOMER_SK, 
C_CUSTOMER_SK)
+                                        joinType: inner
+                                        est: (rows=129548810)
+                                      Exchange
+                                          distribution: single
+                                          est: (rows=100000)
+                                        TableScan
+                                            table: PUBLIC.CUSTOMER
+                                            fields: [C_CUSTOMER_SK, 
C_CURRENT_CDEMO_SK, C_CURRENT_HDEMO_SK, C_CURRENT_ADDR_SK, 
C_FIRST_SHIPTO_DATE_SK, C_FIRST_SALES_DATE_SK]
+                                            est: (rows=100000)
+                                      HashJoin
+                                          condition: =(SS_SOLD_DATE_SK, 
D_DATE_SK)
+                                          joinType: inner
+                                          est: (rows=129548810)
+                                        HashJoin
+                                            condition: =(SS_ITEM_SK, 
CS_ITEM_SK)
+                                            joinType: inner
+                                            est: (rows=389035465)
+                                          HashJoin
+                                              condition: =(SS_ITEM_SK, 
I_ITEM_SK)
+                                              joinType: inner
+                                              est: (rows=180025)
+                                            Exchange
+                                                distribution: single
+                                                est: (rows=2880404)
+                                              TableScan
+                                                  table: PUBLIC.STORE_SALES
+                                                  fields: [SS_SOLD_DATE_SK, 
SS_ITEM_SK, SS_CUSTOMER_SK, SS_CDEMO_SK, SS_HDEMO_SK, SS_ADDR_SK, SS_STORE_SK, 
SS_PROMO_SK, SS_TICKET_NUMBER, SS_WHOLESALE_COST, SS_LIST_PRICE, SS_COUPON_AMT]
+                                                  est: (rows=2880404)
+                                            Exchange
+                                                distribution: single
+                                                est: (rows=1125)
+                                              TableScan
+                                                  table: PUBLIC.ITEM
+                                                  filters: AND(SEARCH(I_COLOR, 
Sarg[_UTF-8'azure':VARCHAR(20) CHARACTER SET "UTF-8", _UTF-8'blush':VARCHAR(20) 
CHARACTER SET "UTF-8", _UTF-8'gainsboro':VARCHAR(20) CHARACTER SET "UTF-8", 
_UTF-8'hot':VARCHAR(20) CHARACTER SET "UTF-8", _UTF-8'lemon':VARCHAR(20) 
CHARACTER SET "UTF-8", _UTF-8'misty':VARCHAR(20) CHARACTER SET 
"UTF-8"]:VARCHAR(20) CHARACTER SET "UTF-8"), 
>=(CAST(I_CURRENT_PRICE):DECIMAL(12, 2), 80.00), <=(CAST(I_CURRENT_PRICE):DE 
[...]
+                                                  fields: [I_ITEM_SK, 
I_CURRENT_PRICE, I_COLOR, I_PRODUCT_NAME]
+                                                  est: (rows=1125)
+                                          Filter
+                                              condition: >(SALE, *(2, REFUND))
+                                              est: (rows=14407)
+                                            ReduceHashAggregate
+                                                rowType: RecordType(INTEGER 
CS_ITEM_SK, DECIMAL(32767, 2) SALE, DECIMAL(32767, 2) REFUND)
+                                                group: [CS_ITEM_SK]
+                                                aggs: [SUM(_ACC0), SUM(_ACC1)]
+                                                est: (rows=28813)
+                                              Exchange
+                                                  distribution: single
+                                                  est: (rows=28813)
+                                                MapHashAggregate
+                                                    group: [CS_ITEM_SK]
+                                                    aggs: 
[SUM(CS_EXT_LIST_PRICE), SUM($f2)]
+                                                    est: (rows=28813)
+                                                  Project
+                                                      fields: [CS_ITEM_SK, 
CS_EXT_LIST_PRICE, $f2]
+                                                      exprs: [CS_ITEM_SK, 
CS_EXT_LIST_PRICE, +(+(CR_REFUNDED_CASH, CR_REVERSED_CHARGE), CR_STORE_CREDIT)]
+                                                      est: (rows=144067)
+                                                    HashJoin
+                                                        condition: 
AND(=(CS_ITEM_SK, CR_ITEM_SK), =(CS_ORDER_NUMBER, CR_ORDER_NUMBER))
+                                                        joinType: inner
+                                                        est: (rows=144067)
+                                                      TableScan
+                                                          table: 
PUBLIC.CATALOG_SALES
+                                                          fields: [CS_ITEM_SK, 
CS_ORDER_NUMBER, CS_EXT_LIST_PRICE]
+                                                          est: (rows=1441548)
+                                                      TableScan
+                                                          table: 
PUBLIC.CATALOG_RETURNS
+                                                          fields: [CR_ITEM_SK, 
CR_ORDER_NUMBER, CR_REFUNDED_CASH, CR_REVERSED_CHARGE, CR_STORE_CREDIT]
+                                                          est: (rows=144067)
+                                        Exchange
+                                            distribution: single
+                                            est: (rows=24325)
+                                          TableScan
+                                              table: PUBLIC.DATE_DIM
+                                              filters: =(D_YEAR, 1999)
+                                              fields: [D_DATE_SK, D_YEAR]
+                                              est: (rows=24325)
+                              Exchange
+                                  distribution: single
+                                  est: (rows=20)
+                                TableScan
+                                    table: PUBLIC.INCOME_BAND
+                                    fields: [IB_INCOME_BAND_SK]
+                                    est: (rows=20)
+                          Exchange
+                              distribution: single
+                              est: (rows=20)
+                            TableScan
+                                table: PUBLIC.INCOME_BAND
+                                fields: [IB_INCOME_BAND_SK]
+                                est: (rows=20)
+                    Exchange
+                        distribution: single
+                        est: (rows=300)
+                      TableScan
+                          table: PUBLIC.PROMOTION
+                          fields: [P_PROMO_SK]
+                          est: (rows=300)
+                  Exchange
+                      distribution: single
+                      est: (rows=12)
+                    TableScan
+                        table: PUBLIC.STORE
+                        fields: [S_STORE_SK, S_STORE_NAME, S_ZIP]
+                        est: (rows=12)
+      ColocatedHashAggregate
+          group: [PRODUCT_NAME, ITEM_SK, STORE_NAME, STORE_ZIP, 
B_STREET_NUMBER, B_STREET_NAME, B_CITY, B_ZIP, C_STREET_NUMBER, C_STREET_NAME, 
C_CITY, C_ZIP, SYEAR, FSYEAR, S2YEAR]
+          aggs: [COUNT(), SUM(SS_WHOLESALE_COST), SUM(SS_LIST_PRICE), 
SUM(SS_COUPON_AMT)]
+          est: (rows=2887)
+        Project
+            fields: [PRODUCT_NAME, ITEM_SK, STORE_NAME, STORE_ZIP, 
B_STREET_NUMBER, B_STREET_NAME, B_CITY, B_ZIP, C_STREET_NUMBER, C_STREET_NAME, 
C_CITY, C_ZIP, SYEAR, FSYEAR, S2YEAR, SS_WHOLESALE_COST, SS_LIST_PRICE, 
SS_COUPON_AMT]
+            exprs: [I_PRODUCT_NAME, I_ITEM_SK, S_STORE_NAME, S_ZIP, 
CA_STREET_NUMBER, CA_STREET_NAME, CA_CITY, CA_ZIP, CA_STREET_NUMBER0, 
CA_STREET_NAME0, CA_CITY0, CA_ZIP0, D_YEAR00, D_YEAR, D_YEAR0, 
SS_WHOLESALE_COST, SS_LIST_PRICE, SS_COUPON_AMT]
+            est: (rows=2992)
+          HashJoin
+              condition: AND(=(SS_ITEM_SK, SR_ITEM_SK), =(SS_TICKET_NUMBER, 
SR_TICKET_NUMBER))
+              joinType: inner
+              est: (rows=2992)
+            Exchange
+                distribution: single
+                est: (rows=287514)
+              TableScan
+                  table: PUBLIC.STORE_RETURNS
+                  fields: [SR_ITEM_SK, SR_TICKET_NUMBER]
+                  est: (rows=287514)
+            HashJoin
+                condition: =(C_FIRST_SALES_DATE_SK, D_DATE_SK)
+                joinType: inner
+                est: (rows=90684167)
+              Exchange
+                  distribution: single
+                  est: (rows=73049)
+                TableScan
+                    table: PUBLIC.DATE_DIM
+                    fields: [D_DATE_SK, D_YEAR]
+                    est: (rows=73049)
+              HashJoin
+                  condition: =(C_FIRST_SHIPTO_DATE_SK, D_DATE_SK)
+                  joinType: inner
+                  est: (rows=90684167)
+                Exchange
+                    distribution: single
+                    est: (rows=73049)
+                  TableScan
+                      table: PUBLIC.DATE_DIM
+                      fields: [D_DATE_SK, D_YEAR]
+                      est: (rows=73049)
+                HashJoin
+                    condition: =(SS_STORE_SK, S_STORE_SK)
+                    joinType: inner
+                    est: (rows=90684167)
+                  HashJoin
+                      condition: =(SS_PROMO_SK, P_PROMO_SK)
+                      joinType: inner
+                      est: (rows=90684167)
+                    HashJoin
+                        condition: =(SS_ADDR_SK, CA_ADDRESS_SK)
+                        joinType: inner
+                        est: (rows=90684167)
+                      Exchange
+                          distribution: single
+                          est: (rows=50000)
+                        TableScan
+                            table: PUBLIC.CUSTOMER_ADDRESS
+                            fields: [CA_ADDRESS_SK, CA_STREET_NUMBER, 
CA_STREET_NAME, CA_CITY, CA_ZIP]
+                            est: (rows=50000)
+                      HashJoin
+                          condition: =(C_CURRENT_ADDR_SK, CA_ADDRESS_SK)
+                          joinType: inner
+                          est: (rows=90684167)
+                        Exchange
+                            distribution: single
+                            est: (rows=50000)
+                          TableScan
+                              table: PUBLIC.CUSTOMER_ADDRESS
+                              fields: [CA_ADDRESS_SK, CA_STREET_NUMBER, 
CA_STREET_NAME, CA_CITY, CA_ZIP]
+                              est: (rows=50000)
+                        HashJoin
+                            condition: =(HD_INCOME_BAND_SK, IB_INCOME_BAND_SK0)
+                            joinType: inner
+                            est: (rows=90684167)
+                          HashJoin
+                              condition: =(SS_HDEMO_SK, HD_DEMO_SK)
+                              joinType: inner
+                              est: (rows=90684167)
+                            Exchange
+                                distribution: single
+                                est: (rows=7200)
+                              TableScan
+                                  table: PUBLIC.HOUSEHOLD_DEMOGRAPHICS
+                                  fields: [HD_DEMO_SK, HD_INCOME_BAND_SK]
+                                  est: (rows=7200)
+                            HashJoin
+                                condition: =(HD_INCOME_BAND_SK, 
IB_INCOME_BAND_SK)
+                                joinType: inner
+                                est: (rows=90684167)
+                              HashJoin
+                                  condition: =(C_CURRENT_HDEMO_SK, HD_DEMO_SK)
+                                  joinType: inner
+                                  est: (rows=90684167)
+                                Exchange
+                                    distribution: single
+                                    est: (rows=7200)
+                                  TableScan
+                                      table: PUBLIC.HOUSEHOLD_DEMOGRAPHICS
+                                      fields: [HD_DEMO_SK, HD_INCOME_BAND_SK]
+                                      est: (rows=7200)
+                                HashJoin
+                                    condition: AND(<>(CD_MARITAL_STATUS, 
CD_MARITAL_STATUS0), =(SS_CDEMO_SK, CD_DEMO_SK))
+                                    joinType: inner
+                                    est: (rows=90684167)
+                                  Exchange
+                                      distribution: single
+                                      est: (rows=1920800)
+                                    TableScan
+                                        table: PUBLIC.CUSTOMER_DEMOGRAPHICS
+                                        fields: [CD_DEMO_SK, CD_MARITAL_STATUS]
+                                        est: (rows=1920800)
+                                  HashJoin
+                                      condition: =(C_CURRENT_CDEMO_SK, 
CD_DEMO_SK)
+                                      joinType: inner
+                                      est: (rows=129548810)
+                                    Exchange
+                                        distribution: single
+                                        est: (rows=1920800)
+                                      TableScan
+                                          table: PUBLIC.CUSTOMER_DEMOGRAPHICS
+                                          fields: [CD_DEMO_SK, 
CD_MARITAL_STATUS]
+                                          est: (rows=1920800)
+                                    HashJoin
+                                        condition: =(SS_CUSTOMER_SK, 
C_CUSTOMER_SK)
+                                        joinType: inner
+                                        est: (rows=129548810)
+                                      Exchange
+                                          distribution: single
+                                          est: (rows=100000)
+                                        TableScan
+                                            table: PUBLIC.CUSTOMER
+                                            fields: [C_CUSTOMER_SK, 
C_CURRENT_CDEMO_SK, C_CURRENT_HDEMO_SK, C_CURRENT_ADDR_SK, 
C_FIRST_SHIPTO_DATE_SK, C_FIRST_SALES_DATE_SK]
+                                            est: (rows=100000)
+                                      HashJoin
+                                          condition: =(SS_SOLD_DATE_SK, 
D_DATE_SK)
+                                          joinType: inner
+                                          est: (rows=129548810)
+                                        HashJoin
+                                            condition: =(SS_ITEM_SK, 
CS_ITEM_SK)
+                                            joinType: inner
+                                            est: (rows=389035465)
+                                          HashJoin
+                                              condition: =(SS_ITEM_SK, 
I_ITEM_SK)
+                                              joinType: inner
+                                              est: (rows=180025)
+                                            Exchange
+                                                distribution: single
+                                                est: (rows=2880404)
+                                              TableScan
+                                                  table: PUBLIC.STORE_SALES
+                                                  fields: [SS_SOLD_DATE_SK, 
SS_ITEM_SK, SS_CUSTOMER_SK, SS_CDEMO_SK, SS_HDEMO_SK, SS_ADDR_SK, SS_STORE_SK, 
SS_PROMO_SK, SS_TICKET_NUMBER, SS_WHOLESALE_COST, SS_LIST_PRICE, SS_COUPON_AMT]
+                                                  est: (rows=2880404)
+                                            Exchange
+                                                distribution: single
+                                                est: (rows=1125)
+                                              TableScan
+                                                  table: PUBLIC.ITEM
+                                                  filters: AND(SEARCH(I_COLOR, 
Sarg[_UTF-8'azure':VARCHAR(20) CHARACTER SET "UTF-8", _UTF-8'blush':VARCHAR(20) 
CHARACTER SET "UTF-8", _UTF-8'gainsboro':VARCHAR(20) CHARACTER SET "UTF-8", 
_UTF-8'hot':VARCHAR(20) CHARACTER SET "UTF-8", _UTF-8'lemon':VARCHAR(20) 
CHARACTER SET "UTF-8", _UTF-8'misty':VARCHAR(20) CHARACTER SET 
"UTF-8"]:VARCHAR(20) CHARACTER SET "UTF-8"), 
>=(CAST(I_CURRENT_PRICE):DECIMAL(12, 2), 80.00), <=(CAST(I_CURRENT_PRICE):DE 
[...]
+                                                  fields: [I_ITEM_SK, 
I_CURRENT_PRICE, I_COLOR, I_PRODUCT_NAME]
+                                                  est: (rows=1125)
+                                          Filter
+                                              condition: >(SALE, *(2, REFUND))
+                                              est: (rows=14407)
+                                            ReduceHashAggregate
+                                                rowType: RecordType(INTEGER 
CS_ITEM_SK, DECIMAL(32767, 2) SALE, DECIMAL(32767, 2) REFUND)
+                                                group: [CS_ITEM_SK]
+                                                aggs: [SUM(_ACC0), SUM(_ACC1)]
+                                                est: (rows=28813)
+                                              Exchange
+                                                  distribution: single
+                                                  est: (rows=28813)
+                                                MapHashAggregate
+                                                    group: [CS_ITEM_SK]
+                                                    aggs: 
[SUM(CS_EXT_LIST_PRICE), SUM($f2)]
+                                                    est: (rows=28813)
+                                                  Project
+                                                      fields: [CS_ITEM_SK, 
CS_EXT_LIST_PRICE, $f2]
+                                                      exprs: [CS_ITEM_SK, 
CS_EXT_LIST_PRICE, +(+(CR_REFUNDED_CASH, CR_REVERSED_CHARGE), CR_STORE_CREDIT)]
+                                                      est: (rows=144067)
+                                                    HashJoin
+                                                        condition: 
AND(=(CS_ITEM_SK, CR_ITEM_SK), =(CS_ORDER_NUMBER, CR_ORDER_NUMBER))
+                                                        joinType: inner
+                                                        est: (rows=144067)
+                                                      TableScan
+                                                          table: 
PUBLIC.CATALOG_SALES
+                                                          fields: [CS_ITEM_SK, 
CS_ORDER_NUMBER, CS_EXT_LIST_PRICE]
+                                                          est: (rows=1441548)
+                                                      TableScan
+                                                          table: 
PUBLIC.CATALOG_RETURNS
+                                                          fields: [CR_ITEM_SK, 
CR_ORDER_NUMBER, CR_REFUNDED_CASH, CR_REVERSED_CHARGE, CR_STORE_CREDIT]
+                                                          est: (rows=144067)
+                                        Exchange
+                                            distribution: single
+                                            est: (rows=24325)
+                                          TableScan
+                                              table: PUBLIC.DATE_DIM
+                                              filters: =(D_YEAR, +(1999, 1))
+                                              fields: [D_DATE_SK, D_YEAR]
+                                              est: (rows=24325)
+                              Exchange
+                                  distribution: single
+                                  est: (rows=20)
+                                TableScan
+                                    table: PUBLIC.INCOME_BAND
+                                    fields: [IB_INCOME_BAND_SK]
+                                    est: (rows=20)
+                          Exchange
+                              distribution: single
+                              est: (rows=20)
+                            TableScan
+                                table: PUBLIC.INCOME_BAND
+                                fields: [IB_INCOME_BAND_SK]
+                                est: (rows=20)
+                    Exchange
+                        distribution: single
+                        est: (rows=300)
+                      TableScan
+                          table: PUBLIC.PROMOTION
+                          fields: [P_PROMO_SK]
+                          est: (rows=300)
+                  Exchange
+                      distribution: single
+                      est: (rows=12)
+                    TableScan
+                        table: PUBLIC.STORE
+                        fields: [S_STORE_SK, S_STORE_NAME, S_ZIP]
+                        est: (rows=12)

Reply via email to