[ 
https://issues.apache.org/jira/browse/IGNITE-19789?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrey Mashenkov updated IGNITE-19789:
--------------------------------------
    Fix Version/s: 3.0.0-beta2

> Sql. Introduce RowSchema for RowFactory
> ---------------------------------------
>
>                 Key: IGNITE-19789
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19789
>             Project: Ignite
>          Issue Type: Improvement
>          Components: sql
>    Affects Versions: 3.0.0-beta1
>            Reporter: Konstantin Orlov
>            Assignee: Maksim Zhuravkov
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>          Time Spent: 2h 10m
>  Remaining Estimate: 0h
>
> There are three way to create 
> {{{}org.apache.ignite.internal.sql.engine.exec.RowHandler.RowFactory{}}}:
> {code:java}
> RowFactory<RowT> factory(IgniteTypeFactory typeFactory, RelDataType rowType);
> RowFactory<RowT> factory(IgniteTypeFactory typeFactory, List<RelDataType> 
> fieldTypes);
> RowFactory<RowT> factory(Type... types);
> {code}
> The first two create unnecessary dependency on {{calcite}} library, the last 
> one doesn't provide required type's parameters, like decimal scale, for 
> instance.
> Let's replace all three methods with a single {{{}RowFactory<RowT> 
> factory(RowSchema schema){}}}, where {{RowSchema}} is a class that should be 
> introduced.
> h4. Implementation Notes
> Although {{org.apache.ignite.internal.schema.BinaryTupleSchemas}} might seem 
> like a good candidate on the role of RowSchema, it doesn't have exhaustive 
> type's support. Besides, introducing new type to binary tuple is much complex 
> procedure since it will affect every module. Thus, it's better to implement 
> distinct schema optimised for RowHandler|RowFactory use case.
> RowSchema should support complex/nested objects



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to