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


##########
fe/be-java-extensions/lakesoul-scanner/src/main/java/org/apache/doris/lakesoul/arrow/LakeSoulArrowJniScanner.java:
##########
@@ -145,6 +145,12 @@ protected void initTableInfo(Map<String, String> params) {
 
     private Integer fillMetaAddressVector(int batchSize, ColumnType 
columnType, long metaAddress, Integer offset,
                                           ValueVector valueVector) {
+        OffHeap.putLong(null, metaAddress + (offset++) * 8, 0);

Review Comment:
   This method builds the metadata address returned by 
`LakeSoulJniScanner.getNextBatchMeta()`, so it must use the same BE-facing 
layout that `JniDataBridge::fill_column()` consumes. The new leading zero is 
read by BE as `null_map_ptr` because BE calls `address.next_meta_as_ptr()` 
before any type-specific field, so normal LakeSoul columns now fail with 
`Unsupported type ... in java side` before BE reaches the real validity buffer. 
This is distinct from the shared `VectorColumn.updateMeta()` path: LakeSoul 
hand-writes `metaAddress` and `VectorTable.getMetaAddress()` returns it 
unchanged for `createReadableTable()`. Please keep LakeSoul's returned metadata 
in the null-map-first BE layout, or translate from the Java-readable layout 
before returning it to BE.



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