-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Explicit null handling #11960
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
Merged
Merged
Explicit null handling #11960
Changes from all commits
Commits
Show all changes
55 commits
Select commit
Hold shift + click to select a range
e5d9754
Add nullability to FieldSpec and use it in TypeFactory
gortiz b7cc9aa
Change NullValueIndexType to skip not nullable columns
gortiz 7f52f65
Enable NullValueIndexType by default in order to pass tests.
gortiz dcf1e33
Remove the assumption of being nullable for columns where defaultNull…
gortiz 9d80da3
Remove unnecessary changes in TypeSystem
gortiz 6d02a0e
Prepare test framework to add more tests
gortiz 97660bb
Remove space
gortiz 64ea0cd
Actually ignore tests cases marked as ingored instead of not generati…
gortiz 6a159ef
Add some null tests
gortiz c8105aa
Ignore some tests that started to fail once nullHandling.json was mod…
gortiz 675601a
Fix false errors in test
gortiz 8f108be
Honor EnableNullHandling in tests
gortiz 9ae4edb
Add some extra tests
gortiz 63146e7
Change nullable semantic to relay only on FieldSpec
gortiz e918c43
Adapt NullValueIndexTypeTest to not nullable FieldSpec.isNullable()
gortiz 6843a42
Adapt TypeFactoryTest to nullable by default
gortiz 698573c
Fix NullValueIndexTypeTest
gortiz fea29b8
Change QueryEnvironmentTestBase to be not nullable.
gortiz 607c764
Small change to make ResourceBasedQueryPlansTest run faster by using …
gortiz e1a2e49
Add the concept of null handling at schema level
gortiz 3352c10
Move Nullhandlig to its own class
gortiz 6155ab6
Modify SegmentColumnarIndexCreator to support NullHandling
gortiz a1eebdf
Add license header
gortiz c77c480
Add javadoc on NullHandling.supportsV2
gortiz 9d48652
Add TODO
gortiz 242c35e
Adapt new columns empty columns to NullHandling
gortiz 2df1298
Improve error message when no table config is present
gortiz a9ba1e4
Make Schema.Options and NullHandling Serializables
gortiz 7d6adc2
Add options to special serialization method of Schema
gortiz e0d14e2
Configure test_null_handling.schema to use column mode
gortiz 6f8e83a
Change SchemaTest.testSerializeDeserializeOptions to compare JsonNodes
gortiz 5e1815d
Partial improvement in tests
gortiz 11e597f
Simplify null handling options into a single boolean
gortiz ac5c5e5
Remove check that fails fast when running v2 with null handling using…
gortiz c4cd005
Merge remote-tracking branch 'origin/master' into schema-null-handling
gortiz 9088835
Fix issue in SchemaTest
gortiz 7331ba9
Add _enableColumnBasedNullHandling to equals
gortiz 3785317
Fix some tests
gortiz bdfd595
Make `isNullable()` primitive boolean
gortiz ccf1ef0
Update Javadoc
gortiz 802e9c4
Subsitute `_nullable` with `_notNull`
gortiz cf7de13
Merge remote-tracking branch 'origin/master' into schema-null-handling
gortiz 71d46af
Remove ignores in CountDistinct.json
gortiz 17ec649
Ignore test incorrect tests in CountDistinct.json
gortiz 9e30389
Report ignored tests again
gortiz e73aac4
Remove parallel testng modifier
gortiz 3dd0886
Remove test improvements not specific to this PR
gortiz 7716fe0
Fix style
gortiz 882aafd
Remove sql from assertions
gortiz 9c2d47f
Update pinot-segment-local/src/main/java/org/apache/pinot/segment/loc…
gortiz 9402a7c
Consider null index enabled also when enableColumnBasedNullHandling i…
gortiz 3a5e3f6
Merge branch 'schema-null-handling' of github.com:gortiz/pinot into s…
gortiz 278c11a
fix test
05234fe
Fix Mutable segment null handling, test, and minor cleanup
Jackie-Jiang c85b991
Fix lint
Jackie-Jiang File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -30,4 +30,3 @@ | |
| }, | ||
| "schemaName": "mytable" | ||
| } | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we consider
isNullableflag here refer to the array itself or this is refering to the element inside the array can be null?it is interesting b/c some DB consider array to be null <=> empty; but postgres do not (e.g. can have null array)
let's make sure we document it properly here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most databases do not correctly support arrays (ie mysql 6.x). Postgres, on the other hand, has a sane type system (that even supports inheritance!). AFAIK when a column of type array is nullable it means the array itself is nullable. I don't know if each element in the array can be tuned nullable or not.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah agreed. as long as we document & best effort align with postgers it should be good :-D