tarun11Mavani commented on code in PR #19040:
URL: https://github.com/apache/pinot/pull/19040#discussion_r3664081203


##########
pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ItemTransformFunction.java:
##########
@@ -87,6 +103,11 @@ public Dictionary getDictionary() {
     return _dictionary;
   }
 
+  @Override
+  public RoaringBitmap getNullBitmap(ValueBlock valueBlock) {

Review Comment:
   You're right that the base behavior is correct for MAP: there's no per-key 
null bitmap, so ORing the argument bitmaps yields the whole-map bitmap, a 
conservative over-estimate. 
    
   Removing the override entirely doesn't work either: for OPEN_STRUCT the 
parent DataSource is built with an empty index container 
(`ImmutableOpenStructDataSource:84`, `MutableOpenStructDataSource:51`), so the 
base impl would report "no nulls" there too. And 
`TransformBlockValSet.getNullBitmap()` delegates straight to the transform 
function (`:60`), so this is the only place per-key nulls can come from.
    
   Scoped by column type instead: OPEN_STRUCT reads the per-key bitmap, MAP 
delegates to `super`. Added MAP tests including the absent-key case — both fail 
against the previous unconditional override.
    



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