-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proper NULL value support in Pinot #8697
Comments
There are 2 ways to support this, with tradeoff between performance and backward compatibility:
We can start with option 1, and if necessary, we may build option 2 and use a flag to switch between them |
Here is a draft PR (#8742) that demonstrates NULL value support in:
@Jackie-Jiang Please review this draft PR and let me know if you agree with my general approach. If you agree, I will send a PR soon and follow up with few more PRs to get NULL support done for:
|
When
nullHandlingEnabled
config is set to true, Pinot still returns (inSELECT
) 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:
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.The text was updated successfully, but these errors were encountered: