-
Notifications
You must be signed in to change notification settings - Fork 221
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for explicit sparse lists and maps
The vast majority of all lists and maps in use today are dense, meaning they cannot contain null values. However, we have historically had no way to indicate that a list or map (value) supports nulls, so we had to assume that all lists and maps are sparse. This change makes it so that all lists and maps are considered dense by default, but services can opt-in to sparse lists using the `sparse` trait. This matters because it now allows languages that bake "null" into their type systems to provide better generated types. Given that nullability is now more abstract than just the box trait, I think that deprecating BoxIndex in favor of NullableIndex makes the concept more clear. BoxIndex still exists and can be used, but extends from NullableIndex.
- Loading branch information
Showing
15 changed files
with
552 additions
and
185 deletions.
There are no files selected for viewing
This file contains 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 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 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.