github-actions[bot] commented on code in PR #67921:
URL: https://github.com/apache/doris/pull/67921#discussion_r4011268684


##########
fe/fe-core/src/main/java/org/apache/doris/datasource/lance/LanceTypeConverter.java:
##########
@@ -135,24 +131,25 @@ private static Type toDorisType(Field field, boolean 
allowNull) {
             case LargeList:
             case FixedSizeList:
                 requireChildren(field, 1);
-                Type itemType = toDorisType(field.getChildren().get(0), false);
-                return itemType.isSupported() ? new ArrayType(itemType) : 
Type.UNSUPPORTED;
+                Type itemType = toDorisType(field.getChildren().get(0));
+                // Generic isSupported() rejects Null items even inside 
successfully converted composites.
+                return itemType.equals(Type.UNSUPPORTED) ? Type.UNSUPPORTED : 
new ArrayType(itemType);

Review Comment:
   [P1] Preserve the upgrade fence through lazy materialization
   
   Now that recursive conversion accepts Null leaves, a passive top-level 
composite returned by `vector_search()` or `full_text_search()` can be pruned 
by TopN lazy materialization before `LanceScanNode.projectsCurrentReaderType()` 
sees it. That lets phase one run on a smooth-upgrade source BE; the global row 
ID routes phase two back to that same BE and `take_rows` materializes the 
omitted nested-Null field. On a pre-PR BE, the nullable SerDe forwards Arrow 
Null to the Boolean-backed nested SerDe, which dereferences it as Boolean and 
can crash the backend. Please carry the current-reader requirement across lazy 
pruning (or keep these fields eager/current-reader-compatible), and cover both 
search TVFs with a mixed-version planner test.



-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to