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

Decimal data type impementation #89

Closed
wants to merge 20 commits into from
Closed

Conversation

losipiuk
Copy link

Another approach for decimal datatype implementation. It is based on varchar(x) PR (#88).

sopel39 and others added 20 commits December 30, 2015 13:58
…ecialize(...) function

Adding bindLiteralParameters(...) method and 'parameterTypes' argument to specialize(...) function
allows to bind literal parameters during function specialization. This allows to compute derivate
variables that are partially applied to specialized function implementation.
SqlScalarFunctionBuilder can be used to define
scalar function with multiple
specialization methods. Specialization method
will be selected based on concrete java type parameters, return type
and optionally predicate. It is also possible to define extra
parameters that will be passed to specialization method.
For datatypes with multiple binary representations we need to define
same function multiple times depending on actal types of parameters.

E.g.
  add (Slice a, Slice b)
and
  add (long a, long b)

represent + operator for DECIMAL type. First version for longer DECIMAL
values (represented internally as Slice) and second, faster version for
shorter decimals (represented internally as long).

This patch allows multiple versions of same scalar udf/operator to be
defined using annotation syntax. Functions with same name are grouped
together and exposed as single ParametricFunction which internally does
dispatching to proper MethodHandle based on actual parameter types at
runtime.
Operators implemented:
 - add
 - subtract
 - multiply
 - divide
 - modulus
 - negation
Additionally support for unbounded base 128 varints stream
was added since decimal column decoding requires it.
@losipiuk losipiuk changed the title Decimal data type impelentaion Decimal data type impementaion Dec 30, 2015
@losipiuk losipiuk changed the title Decimal data type impementaion Decimal data type impementation Dec 30, 2015
@losipiuk
Copy link
Author

This PR follows #88

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

Successfully merging this pull request may close these issues.

3 participants