lowka commented on code in PR #7703:
URL: https://github.com/apache/ignite-3/pull/7703#discussion_r2939811253


##########
modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/pruning/ModifyNodeVisitor.java:
##########
@@ -332,4 +378,113 @@ public RexNode visitInputRef(RexInputRef inputRef) {
 
         return null;
     }
+
+    private @Nullable List<List<RexNode>> extractValuesFromScan(
+            IgniteRel rel,
+            long sourceId,
+            IgniteTable table,
+            @Nullable ImmutableIntList requiredColumns,
+            @Nullable List<RexNode> projects
+    ) {
+
+        PartitionPruningColumns metadata = extractor.result.get(sourceId);
+        // Do not propagate metadata if tables are different for now.
+        IgniteTable tableUnderModification = modifiedTable.getFirst();
+        if (metadata == null || tableUnderModification.id() != table.id()) {
+            return null;
+        }
+
+        // Only handle column order-preserving projections for now.
+        boolean preserveOrder = requiredColumns != null && 
projectionPreservesColumnOrder(requiredColumns);
+        if (!preserveOrder) {
+            return null;
+        }
+
+        if (!nullOrEmpty(projects)) {
+            assert requiredColumns != null : "No required columns: " + rel;
+
+            List<RexNode> expectedProjection = 
createProjectionFromScan(modifiedTable.getSecond(), projects, requiredColumns);
+            RelDataType rowType = 
table.getRowType(rel.getCluster().getTypeFactory(), requiredColumns);
+
+            if (!RexUtils.isIdentity(expectedProjection, rowType)) {
+                return null;
+            }
+        }
+
+        return metadataToValues(table, metadata);
+    }
+
+    private static boolean projectionPreservesColumnOrder(ImmutableIntList 
requiredColumns) {

Review Comment:
   Fixed. This method is no longer needed and it has been removed.



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to