[
https://issues.apache.org/jira/browse/IGNITE-19242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17716681#comment-17716681
]
Igor Sapego commented on IGNITE-19242:
--------------------------------------
Let's put this ticket on hold for now as there is an issue that this ticket are
not solving.
The problem: client receives new schema version (if any) on every tuple
operation with the given table. However, this is too late:
# var view = client.tables().table("FOO").recordView(); view.upsert(...) - now
client knows schema v1
# client.sql().exec("ALTER TABLE FOO ADD COLUMN NEWCOL INT"); - client alters
the table, but does not know about schema v2 with new column
# view.upsert(Tuple.create().set("key", 1).set("NEWCOL", 100)) - v1 is used to
send data to the server, NEWCOL is ignored, data is lost. Response says that
schema v2 is available, but alas.
> .NET: Thin 3.0: propagate table schema updates to client on write-only
> operations
> ---------------------------------------------------------------------------------
>
> Key: IGNITE-19242
> URL: https://issues.apache.org/jira/browse/IGNITE-19242
> Project: Ignite
> Issue Type: Improvement
> Components: thin client
> Affects Versions: 3.0.0-beta1
> Reporter: Pavel Tupitsyn
> Assignee: Pavel Tupitsyn
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Currently, .NET client receives table schema updates when write-read requests
> are performed. For example, client performs TUPLE_GET request, sends key
> tuple using old schema version, receives result tuple with the latest schema
> version, and retrieves the latest schema.
> However, some requests are "write-only": client sends a tuple, but does not
> receive one back, like TUPLE_UPSERT. No schema updates are performed in this
> case.
> To fix this, include the latest schema version into all write-only operation
> responses:
> * TUPLE_UPSERT
> * TUPLE_UPSERT_ALL
> * TUPLE_INSERT
> * TUPLE_INSERT_ALL
> * TUPLE_REPLACE
> * TUPLE_REPLACE_EXACT
> * TUPLE_DELETE
> * TUPLE_DELETE_ALL
> * TUPLE_DELETE_EXACT
> * TUPLE_DELETE_ALL_EXACT
> * TUPLE_CONTAINS_KEY
> Client will compare this version to the known one and perform a background
> update, if necessary.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)