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

Andrey Mashenkov updated IGNITE-15253:
--------------------------------------
    Labels: iep-54 ignite-3 ux  (was: iep-54 ignite-3)

> Tuple API improvement.
> ----------------------
>
>                 Key: IGNITE-15253
>                 URL: https://issues.apache.org/jira/browse/IGNITE-15253
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Andrey Mashenkov
>            Priority: Critical
>              Labels: iep-54, ignite-3, ux
>             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)

Reply via email to