You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by GitBox <gi...@apache.org> on 2022/04/27 21:58:33 UTC

[GitHub] [pinot] walterddr opened a new issue, #8605: [Feature] support type inference and automatic type casting when searching for ScalarFunction

walterddr opened a new issue, #8605:
URL: https://github.com/apache/pinot/issues/8605

   Background
   ===
   Currently Pinot already implements some of the type hoisting - for example:
   * the datatable builder automatically converts int/float/long/double numeric type content to the corresponding data schema required data type.
   
   However sometime this doesn't work quite well. for example 
   * sum(long, long) will result in double
   
   Propose 
   ===
   - Create a type inference system to automatically hoist types to when searching for a matching `@ScalarFunction`. for example `sum(int, long)` should match `sum(long, long)` with an implicit type cast from `int` to `long` for the first argument.
   - implementing a type casting scheme using a bitmap approach:
     - for example using numeric values, `double, float, long, int, short, byte` corresponding to a single bit in a byte value (`1<<6` ~ `1<<0`) and make all function arguments to mask into the byte and uses the highest non-zero bit corresponding type as the numeric type to cast to. 
     - for other type we can have different rules to match types 
   - implicit type cast methods can also be unified and reused in other part of the query logic and ingestion. 
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org