You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Pavel Pereslegin (Jira)" <ji...@apache.org> on 2023/03/31 07:57:00 UTC
[jira] [Created] (IGNITE-19176) Sql. Unexpected DML results with explicit TX and single column table.
Pavel Pereslegin created IGNITE-19176:
-----------------------------------------
Summary: 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
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)