Round-tripping and operations on decimals #2580
Merged
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.
Short circuiting #2044. Handling of decimals generally in a dynamic engine seems to be quite a rabbit hole.
This PR essentially allows operation on decimals for precision 38 and scale 19. Anything outside of this range will currently throw an exception. Anything coming out of the engine will also have that precision and scale set.
Some useful information:
(type (+' (double 1.0) (bigdec 1.0)))
) seem to favor Double over DecimalStuff still todo/decide:
correctly support operations between other types and decimalthis currently follows the same behavior as Clojure (fewest changes). One could think about promoting an operation on:f32
and:decimal
to:f64
, but the SQL spec does not require it.1E+35M
,1E-35M
)