Skip to content
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

Implement support for BigDecimal / Arbitrary precision ints/decimals #5

Open
velvia opened this issue Dec 17, 2015 · 0 comments
Open

Comments

@velvia
Copy link
Owner

velvia commented Dec 17, 2015

Key questions:

  1. Base type to use

BigDecimal has two components: a variable precision unscaled value and a 32-bit scale.
2. Filo binary format

  • Anything that fits in Long/Int/smaller (scale == 0 for all numbers, unscaled value < 64 bits) should use SimplePrimitiveVector / DiffPrimitiveVector for efficient storage.
  • Otherwise, store unscaled values as binary blobs. Most of the time the size of these blobs are probably very similar, so consider something like FixedBinaryVector to save on space (8 bytes per element savings). Store the scale as a SimplePrimitiveVector since most scale numbers are very small and can be stored efficiently.
  • Consider converting what we can to floats/doubles for efficiency -- if no loss when converting back and forth
velvia pushed a commit that referenced this issue May 28, 2018
Initial off-heap support for int, long, double BinaryVectors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant