[ 
https://issues.apache.org/jira/browse/IGNITE-28724?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18096264#comment-18096264
 ] 

Ignite TC Bot commented on IGNITE-28724:
----------------------------------------

{panel:title=Branch: [pull/13366/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/13366/head] Base: [master] : New Tests 
(30)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#00008b}Calcite SQL 3{color} [[tests 
29|https://ci2.ignite.apache.org/viewLog.html?buildId=9207879]]
* {color:#013220}IgniteCalciteTestSuite3: 
SystemColumnsScanTest.testCannotAddSystemColumnName - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: 
SystemColumnsScanTest.testTableScanReturnsSystemColumns - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: 
SystemColumnsScanTest.testCannotCreateTableWithSystemColumnName - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: 
SelectForUpdateIntegrationTest.testSelectForUpdateByPrimaryKey - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: 
SelectForUpdateIntegrationTest.forUpdateNowait - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: 
SelectForUpdateIntegrationTest.testSelectForUpdateRejectsDistinct - 
PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: 
SelectForUpdateIntegrationTest.testSelectForUpdateFromClientBlocksServerNodes - 
PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: 
SelectForUpdateIntegrationTest.testSelectForUpdateJoinLocksAllTables - 
PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: 
SelectForUpdateIntegrationTest.testSelectForUpdateInOptimisticTransaction - 
PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: 
SelectForUpdateIntegrationTest.forUpdateWithWhere - PASSED{color}
* {color:#013220}IgniteCalciteTestSuite3: 
SelectForUpdateIntegrationTest.testSelectForUpdateRejectsAggregateWithoutGroupBy
 - PASSED{color}
... and 18 new tests

{color:#00008b}Calcite SQL 1{color} [[tests 
1|https://ci2.ignite.apache.org/viewLog.html?buildId=9207797]]
* {color:#013220}IgniteCalciteTestSuite: 
SqlSelectForUpdateParserTest.forUpdateRejectsIllegalWait - PASSED{color}

{panel}
[TeamCity *--> Run :: All* 
Results|https://ci2.ignite.apache.org/viewLog.html?buildId=9207912&buildTypeId=IgniteTests24Java8_RunAll]
{color:#ffffff}tcbot-analysis-comment chainBuildId=9207912 
rerunBuildIds=9209307{color}

> Calcite engine. Support SELECT ... FOR UPDATE query
> ---------------------------------------------------
>
>                 Key: IGNITE-28724
>                 URL: https://issues.apache.org/jira/browse/IGNITE-28724
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Vladislav Pyatkov
>            Assignee: Vladislav Pyatkov
>            Priority: Major
>              Labels: ignite-2
>             Fix For: 2.19
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> h3. Motivation
> The Calcite SQL engine currently lacks support for the standard SELECT ... 
> FOR UPDATE syntax. This syntax is widely used across industry-standard 
> databases to explicitly acquire exclusive locks on records during the read 
> phase of a transaction.
> {code:sql}
> SELECT ... FROM ... WHERE ... FOR UPDATE [WAIT <N> | NOWAIT]
> {code}
> h3. Implementation Notes
> This is an umbrella ticket designed to track the parsing, validation, and 
> execution roadmap. The feature will rely on the existing key-based locking 
> protocol.
> h4. Core Logic Flow:
>  # Scan & Track: Perform a distributed scan matching the WHERE clause, 
> capturing primary keys and their current data versions.
>  # Lock Acquisition: Attempt to acquire exclusive locks on the filtered keys.
>  # Version Conflict Handling: If a concurrent transaction modifies the 
> records between the scan and lock phases, the execution layer must release 
> any acquired locks, clear the state, and trigger an internal retry.
> For details, you can look at [the Apache Ignite dev 
> list|https://lists.apache.org/thread/g8rszqmw5dqgsg055w6by0v2dnjc9hwy].
> h3. Definition of Done
>  * SQL Parser successfully recognizes FOR UPDATE clauses alongside WAIT, 
> NOWAIT, and SKIP LOCKED options.
>  * The validation layer correctly isolates and blocks forbidden clauses 
> (JOIN, GROUP BY, etc.) with user-friendly errors.
>  * Exclusive locks are successfully acquired during execution and reliably 
> held until transaction boundaries.



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

Reply via email to