[
https://issues.apache.org/jira/browse/IGNITE-22390?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maksim Zhuravkov resolved IGNITE-22390.
---------------------------------------
Resolution: Invalid
> Sql. Cursor::requestNextAsync returns stale results
> ---------------------------------------------------
>
> Key: IGNITE-22390
> URL: https://issues.apache.org/jira/browse/IGNITE-22390
> Project: Ignite
> Issue Type: Bug
> Components: sql
> Affects Versions: 3.0.0-beta2
> Reporter: Maksim Zhuravkov
> Priority: Critical
> Labels: ignite-3
>
> The following test case begun to fail after (Sql. Avoid starting transaction
> for KV operation) [ https://issues.apache.org/jira/browse/IGNITE-22263 ]
>
> {code:java}
> package org.apache.ignite.internal.sql.engine;
> import static
> org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
> import static org.apache.ignite.internal.lang.IgniteStringFormatter.format;
> import static org.apache.ignite.internal.testframework.IgniteTestUtils.await;
> import static org.junit.jupiter.api.Assertions.assertEquals;
> import java.util.Objects;
> import org.apache.ignite.internal.app.IgniteImpl;
> import org.apache.ignite.internal.sql.BaseSqlIntegrationTest;
> import org.apache.ignite.internal.sql.engine.property.SqlProperties;
> import org.apache.ignite.internal.sql.engine.property.SqlPropertiesHelper;
> import org.apache.ignite.internal.tx.HybridTimestampTracker;
> import org.apache.ignite.internal.util.AsyncCursor.BatchedResult;
> import org.gridgain.internal.security.context.GridGainSecurity;
> import org.gridgain.internal.security.context.SecurityContext;
> import org.junit.jupiter.api.Test;
> public class ItCursor extends BaseSqlIntegrationTest {
> @Override
> protected int initialNodes() {
> return 1;
> }
> @Test
> public void testCursor() {
> int rowsCount = 2000;
> sql("create zone test_zone with partitions=1, replicas=1,
> storage_profiles='" + DEFAULT_STORAGE_PROFILE + "'");
> sql("create table T (ID INT PRIMARY KEY, VAL INT) with
> primary_zone='TEST_ZONE'");
> sql(format("insert into T select X, X from table(system_range(1,
> {}))", rowsCount));
> String selectAll = "select * from T";
> AsyncSqlCursor<InternalSqlRow> cursor1 = openSqlCursor(selectAll);
> await(cursor1.onFirstPageReady());
> BatchedResult<InternalSqlRow> f =
> await(cursor1.requestNextAsync(1000));
> assertEquals(1000, f.items().size()); // f.items().size() is zero
> }
>
> private AsyncSqlCursor<InternalSqlRow> openSqlCursor(String sql) {
> IgniteImpl node = CLUSTER.node(0);
> SqlQueryProcessor qryProc = (SqlQueryProcessor) node.queryEngine();
> SqlProperties props = SqlPropertiesHelper.emptyProperties();
> SecurityContext securityCtx = GridGainSecurity.systemContext();
> return Objects.requireNonNull(await(qryProc.queryAsync(props, new
> HybridTimestampTracker(), null, sql, securityCtx)));
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)