[ https://issues.apache.org/jira/browse/IGNITE-19176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17720531#comment-17720531 ]
Andrey N. Gura edited comment on IGNITE-19176 at 5/8/23 2:47 PM: ----------------------------------------------------------------- [~xtern] The changes look good to me. But I can't understand why the behavior is different for explicit and implicit transactions. The code changes don't answer this question for me. was (Author: agura): [~xtern] The changes look good to me. But I can't understand why the behavior is different for explicit and implicit transactions. The code changes don't answer this question to me? > Sql. Unexpected DML results with explicit TX and single column table. > --------------------------------------------------------------------- > > Key: IGNITE-19176 > URL: https://issues.apache.org/jira/browse/IGNITE-19176 > Project: Ignite > Issue Type: Bug > Components: sql > Reporter: Pavel Pereslegin > Assignee: Pavel Pereslegin > Priority: Major > Labels: ignite-3 > Time Spent: 50m > Remaining Estimate: 0h > > When we try to insert values into a single column table using explicit > transaction, those values are not visible in the same transaction. > Example > {code:java} > create table test(id int primary key) // single column table > {code} > {code:java} > // case 1 > start explicit tx > insert into test values (0), (1) > select count(*) from test // returns 0 instead of 2 > finish tx{code} > {code:java} > // case 2 > start explicit tx > insert into test values (0), (1) > commit tx > start explicit tx > select count(*) from test // returns 0 instead of 2 > finish tx{code} > If we do this using implicit transaction - all works fine. > If we add a column to the table, everything will work fine. > Reproducer > {code:java} > @Test > public void test() { > sql("CREATE TABLE myTbl (id INT PRIMARY KEY) WITH REPLICAS=2, > PARTITIONS=10"); > Ignite ignite = CLUSTER_NODES.get(0); > ignite.transactions().runInTransaction(tx -> { > sql(tx, "INSERT INTO myTbl VALUES (0), (1)"); > List<List<Object>> rows = sql(tx, "SELECT count(*) from myTbl"); > assertEquals(2L, rows.get(0).get(0)); > }); > } {code} > -- This message was sent by Atlassian Jira (v8.20.10#820010)