nizarhejazi opened a new issue, #8697:
URL: https://github.com/apache/pinot/issues/8697

   When `nullHandlingEnabled` config is set to true, Pinot still returns (in 
`SELECT`) the default value of columns vs. null when the value is null. Null 
value is supported only in filtering phase.
   
   Reserving a special value of primitives to indicate Null does not work for 
our use case for the following reasons:
   - We have to mix two different styles of working with nulls (IS/IS NOT NULL 
predicate vs. checking special value returned by SELECT).
   - We don’t query Pinot directly but through Presto. Reserving special value 
for Null requires filter out these special values everywhere in the Presto SQL 
statement. This makes generated Presto SQL on our end more complex.
      - We generate Presto SQL statements from user input (UI, or query editor).
   - Some of Presto functions does not work with special primitive values (e.g. 
COALESCE). In general, this pattern deviates from how Null is handled by Presto 
and other big data systems.
   
   For performance reasons, pinot stores and transmit values using primitive 
types. Supporting Null value throughout the engine is a big effort. Can we 
start by supporting it in `SelectionOnlyOperator`/`SelectionOrderByOperator`?
   
   The idea is to transfer back a bitmap per column (presence vector) from 
servers to broker if a special config is set (`nullHandlingInSelect`). This 
change is fully backward compatible.
   


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