hubgeter commented on code in PR #22115:
URL: https://github.com/apache/doris/pull/22115#discussion_r1272557233


##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/AggregateStrategies.java:
##########
@@ -310,19 +338,41 @@ private LogicalAggregate<? extends Plan> 
storageLayerAggregate(
             }
         }
 
-        PhysicalOlapScan physicalOlapScan = (PhysicalOlapScan) new 
LogicalOlapScanToPhysicalOlapScan()
-                .build()
-                .transform(olapScan, cascadesContext)
-                .get(0);
-        if (project != null) {
-            return aggregate.withChildren(ImmutableList.of(
+        if (logicalScan instanceof LogicalOlapScan) {
+            PhysicalOlapScan physicalScan = (PhysicalOlapScan) new 
LogicalOlapScanToPhysicalOlapScan()
+                    .build()
+                    .transform((LogicalOlapScan) logicalScan, cascadesContext)
+                    .get(0);
+
+            if (project != null) {
+                return aggregate.withChildren(ImmutableList.of(
                     project.withChildren(
-                            ImmutableList.of(new 
PhysicalStorageLayerAggregate(physicalOlapScan, mergeOp)))
-            ));
+                        ImmutableList.of(new 
PhysicalStorageLayerAggregate(physicalScan, mergeOp)))
+                ));
+            } else {
+                return aggregate.withChildren(ImmutableList.of(
+                    new PhysicalStorageLayerAggregate(physicalScan, mergeOp)
+                ));
+            }
+
+        } else if (logicalScan instanceof LogicalFileScan) {
+            PhysicalFileScan physicalScan = (PhysicalFileScan) new 
LogicalFileScanToPhysicalFileScan()
+                    .build()
+                    .transform((LogicalFileScan) logicalScan, cascadesContext)
+                    .get(0);
+            if (project != null) {
+                return aggregate.withChildren(ImmutableList.of(
+                    project.withChildren(
+                        ImmutableList.of(new 
PhysicalStorageLayerAggregate(physicalScan, mergeOp)))
+                ));
+            } else {
+                return aggregate.withChildren(ImmutableList.of(
+                    new PhysicalStorageLayerAggregate(physicalScan, mergeOp)
+                ));
+            }
+
         } else {
-            return aggregate.withChildren(ImmutableList.of(
-                    new PhysicalStorageLayerAggregate(physicalOlapScan, 
mergeOp)
-            ));
+            return canNotPush;

Review Comment:
   if you want 
   ```java
   PhysicalOlapScan physicalScan;
       if (logicalScan instanceof LogicalOlapScan) {
                physicalScan = (PhysicalOlapScan) new 
LogicalOlapScanToPhysicalOlapScan()
                       .build()
                       .transform((LogicalOlapScan) logicalScan, 
cascadesContext)
                       .get(0);
   
       } else if (logicalScan instanceof LogicalFileScan) {
               physicalScan = (PhysicalFileScan) new 
LogicalFileScanToPhysicalFileScan()
                       .build()
                       .transform((LogicalFileScan) logicalScan, 
cascadesContext)
                       .get(0);            
       } else {
           return canNotPush;
       }
   
       if (project != null) {
           return aggregate.withChildren(ImmutableList.of(
                       project.withChildren(
                       ImmutableList.of(new 
PhysicalStorageLayerAggregate(physicalScan, mergeOp)))
               ));
       } else {
               return aggregate.withChildren(ImmutableList.of(
                   new PhysicalStorageLayerAggregate(physicalScan, mergeOp)
               ));
       }
   ```
   
   you will get this:
   ```
   [ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) 
on project fe-core: Compilation failure: Compilation failure: 
   [ERROR] 
/mnt/datadisk1/changyuwei/doris2/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/AggregateStrategies.java:[345,72]
 incompatible types: 
org.apache.doris.nereids.trees.plans.physical.PhysicalRelation cannot be 
converted to 
org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation
   [ERROR] 
/mnt/datadisk1/changyuwei/doris2/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/AggregateStrategies.java:[349,51]
 incompatible types: 
org.apache.doris.nereids.trees.plans.physical.PhysicalRelation cannot be 
converted to 
org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation
   ```
   😭😤😭



##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/AggregateStrategies.java:
##########
@@ -310,19 +338,41 @@ private LogicalAggregate<? extends Plan> 
storageLayerAggregate(
             }
         }
 
-        PhysicalOlapScan physicalOlapScan = (PhysicalOlapScan) new 
LogicalOlapScanToPhysicalOlapScan()
-                .build()
-                .transform(olapScan, cascadesContext)
-                .get(0);
-        if (project != null) {
-            return aggregate.withChildren(ImmutableList.of(
+        if (logicalScan instanceof LogicalOlapScan) {
+            PhysicalOlapScan physicalScan = (PhysicalOlapScan) new 
LogicalOlapScanToPhysicalOlapScan()
+                    .build()
+                    .transform((LogicalOlapScan) logicalScan, cascadesContext)
+                    .get(0);
+
+            if (project != null) {
+                return aggregate.withChildren(ImmutableList.of(
                     project.withChildren(
-                            ImmutableList.of(new 
PhysicalStorageLayerAggregate(physicalOlapScan, mergeOp)))
-            ));
+                        ImmutableList.of(new 
PhysicalStorageLayerAggregate(physicalScan, mergeOp)))
+                ));
+            } else {
+                return aggregate.withChildren(ImmutableList.of(
+                    new PhysicalStorageLayerAggregate(physicalScan, mergeOp)
+                ));
+            }
+
+        } else if (logicalScan instanceof LogicalFileScan) {
+            PhysicalFileScan physicalScan = (PhysicalFileScan) new 
LogicalFileScanToPhysicalFileScan()
+                    .build()
+                    .transform((LogicalFileScan) logicalScan, cascadesContext)
+                    .get(0);
+            if (project != null) {
+                return aggregate.withChildren(ImmutableList.of(
+                    project.withChildren(
+                        ImmutableList.of(new 
PhysicalStorageLayerAggregate(physicalScan, mergeOp)))
+                ));
+            } else {
+                return aggregate.withChildren(ImmutableList.of(
+                    new PhysicalStorageLayerAggregate(physicalScan, mergeOp)
+                ));
+            }
+
         } else {
-            return aggregate.withChildren(ImmutableList.of(
-                    new PhysicalStorageLayerAggregate(physicalOlapScan, 
mergeOp)
-            ));
+            return canNotPush;

Review Comment:
   if you want 
   ```java
   PhysicalOlapScan physicalScan;
       if (logicalScan instanceof LogicalOlapScan) {
                physicalScan = (PhysicalOlapScan) new 
LogicalOlapScanToPhysicalOlapScan()
                       .build()
                       .transform((LogicalOlapScan) logicalScan, 
cascadesContext)
                       .get(0);
   
       } else if (logicalScan instanceof LogicalFileScan) {
               physicalScan = (PhysicalFileScan) new 
LogicalFileScanToPhysicalFileScan()
                       .build()
                       .transform((LogicalFileScan) logicalScan, 
cascadesContext)
                       .get(0);            
       } else {
           return canNotPush;
       }
   
       if (project != null) {
           return aggregate.withChildren(ImmutableList.of(
                       project.withChildren(
                       ImmutableList.of(new 
PhysicalStorageLayerAggregate(physicalScan, mergeOp)))
               ));
       } else {
               return aggregate.withChildren(ImmutableList.of(
                   new PhysicalStorageLayerAggregate(physicalScan, mergeOp)
               ));
       }
   ```
   
   you will get this:
   ```
   [ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) 
on project fe-core: Compilation failure: Compilation failure: 
   [ERROR] 
/mnt/datadisk1/changyuwei/doris2/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/AggregateStrategies.java:[345,72]
 incompatible types: 
org.apache.doris.nereids.trees.plans.physical.PhysicalRelation cannot be 
converted to 
org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation
   [ERROR] 
/mnt/datadisk1/changyuwei/doris2/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/AggregateStrategies.java:[349,51]
 incompatible types: 
org.apache.doris.nereids.trees.plans.physical.PhysicalRelation cannot be 
converted to 
org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation
   ```
   😭😤😭



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to