You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Andrey Mashenkov (Jira)" <ji...@apache.org> on 2021/08/13 12:09:00 UTC

[jira] [Assigned] (IGNITE-15253) Tuple API improvement.

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

Andrey Mashenkov reassigned IGNITE-15253:
-----------------------------------------

    Assignee: Andrey Mashenkov

> Tuple API improvement.
> ----------------------
>
>                 Key: IGNITE-15253
>                 URL: https://issues.apache.org/jira/browse/IGNITE-15253
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Andrey Mashenkov
>            Assignee: Andrey Mashenkov
>            Priority: Critical
>              Labels: UX, iep-54, ignite-3
>             Fix For: 3.0.0-alpha3
>
>
> h3. Motinvation.
> For now, Tuple is an interface and the standard way for creation is to use TupleBuilder that can be got using Table API. 
> 1. As we thought, normally, Tuple is decoupled from any Ignite internals. 
> Our implementation, which is returned from Ignite (e.g. Table API methods), may rely on the internals in some cases, e.g. we need a way to wrap table Row into Tuple for performance sake.
> This is questionable, let's discuss if Tuple should/can be a public class or be mutable or left as is, and then fix it.
> 2. TupleBuilder factory methods in TableView interfaces causes a question: 
> Is the builder binded to a particular Table/View? or not?
> As it is possible for a user to pass an arbitrary implementation of Tuple (unless Tuple is not a final class or has public constructor), hence we must move data validation from Builder to the Table.
> This causes a question: Do we need separate interface Builder or MutableTuple? 
> h3.  Description.
> Let'd discuss questions above and fix it.
> * move Tuple validation from TupleBuilder to Table API.
> * make Tuple.columnIndex() return a primitive (-1 instead of 'null')
> * decouple Tuple from Table API and provide convenient way for Tuple creation.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)