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

Mirza Aliev updated IGNITE-18266:
---------------------------------
    Description: 
We need to improve javadoc of 
`org.apache.ignite.internal.table.InternalTable#insert` so it will be more 
clear to understand that insert modifies data only at the first invocation. 
Return section of this method is not clear, it must descrive the boolean result 
of the invocation   


  was:
The following scenario is not passing, RO get after several puts do not return 
recent applied data

{code:java}
    @Test
    public void testRoGetWithSpecifiedTimestamp() throws ExecutionException, 
InterruptedException {
        IgniteImpl node = node(0);

        Table table = startTable(node, TABLE_NAME);

        InternalTable internalTable = ((TableImpl) table).internalTable();

        Row keyValueRow = createKeyValueRow(1, 1, "some string row" + 1);

        Row keyValueRow2 = createKeyValueRow(1, 2, "some string row" + 2);

        Transaction tx1 =  node.transactions().begin();

        internalTable.insert(keyValueRow, (InternalTransaction) tx1).get();

        tx1.commit();

        Transaction tx2 =  node.transactions().begin();

        internalTable.insert(keyValueRow2, (InternalTransaction) tx2).get();

        tx2.commit();

        BinaryRow res = internalTable.get(keyValueRow2, new 
HybridTimestamp(Long.MAX_VALUE - 1000, 0), node.node()).get();

        assertEquals(res.valueSlice(), keyValueRow2.valueSlice());
    }

    private static Table startTable(Ignite node, String tableName) {
        List<ColumnDefinition> cols = new ArrayList<>();
        cols.add(SchemaBuilders.column("key", ColumnType.INT64).build());
        cols.add(SchemaBuilders.column("valInt", 
ColumnType.INT32).asNullable(true).build());
        cols.add(SchemaBuilders.column("valStr", 
ColumnType.string()).withDefaultValue("default").build());

        return await(((TableManager) node.tables()).createTableAsync(
                tableName,
                tblCh -> convert(SchemaBuilders.tableBuilder(SCHEMA, 
tableName).columns(
                        cols).withPrimaryKey("key").build(), tblCh)
                        .changeReplicas(1)
                        .changePartitions(1)
        ));
    }

    private static Row createKeyValueRow(long id, int value, String str) {
        RowAssembler rowBuilder = new RowAssembler(SCHEMA_1, 0, 0);

        rowBuilder.appendLong(id);
        rowBuilder.appendInt(value);
        rowBuilder.appendString(str);

        return new Row(SCHEMA_1, new ByteBufferRow(rowBuilder.toBytes()));
    }
{code}



> Improve javadoc of the org.apache.ignite.internal.table.InternalTable#insert
> ----------------------------------------------------------------------------
>
>                 Key: IGNITE-18266
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18266
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Mirza Aliev
>            Priority: Major
>              Labels: ignite-3
>
> We need to improve javadoc of 
> `org.apache.ignite.internal.table.InternalTable#insert` so it will be more 
> clear to understand that insert modifies data only at the first invocation. 
> Return section of this method is not clear, it must descrive the boolean 
> result of the invocation   



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

Reply via email to