Pavel Tupitsyn created IGNITE-20103:
---------------------------------------

             Summary: Thin 3.0: AssertionError when reading old rows after 
schema update
                 Key: IGNITE-20103
                 URL: https://issues.apache.org/jira/browse/IGNITE-20103
             Project: Ignite
          Issue Type: Bug
          Components: thin client
    Affects Versions: 3.0.0-beta1
            Reporter: Pavel Tupitsyn
            Assignee: Pavel Tupitsyn
             Fix For: 3.0.0-beta2


{code}
java.lang.AssertionError: Tuple element count mismatch: 2 != 1
        at 
org.apache.ignite.client.handler.requests.table.ClientTableCommon.writeTuple(ClientTableCommon.java:139)
        at 
org.apache.ignite.client.handler.requests.table.ClientTableCommon.writeTupleOrNil(ClientTableCommon.java:103)
        at 
org.apache.ignite.client.handler.requests.table.ClientTupleGetRequest.lambda$process$0(ClientTupleGetRequest.java:55)
        at 
java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714)
{code}

Reproducer:

{code:java}
    @Test
    void testGetOldRowAfterSchemaUpdate() throws InterruptedException {
        IgniteClient client = client();
        Session ses = client.sql().createSession();

        // Create table, insert data.
        String tableName = "testGetOldRowAfterSchemaUpdate";
        ses.execute(null, "CREATE TABLE " + tableName + "(ID INT NOT NULL 
PRIMARY KEY)");

        waitForTableOnAllNodes(tableName);
        RecordView<Tuple> recordView = 
client.tables().table(tableName).recordView();

        Tuple rec = Tuple.create().set("ID", 1);
        recordView.insert(null, rec);

        // Modify table and get old row.
        ses.execute(null, "ALTER TABLE " + tableName + " ADD COLUMN NAME 
VARCHAR NOT NULL");
        assertNull(recordView.get(null, rec).stringValue(1));
    }
{code}



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

Reply via email to