-
Notifications
You must be signed in to change notification settings - Fork 726
Add upsert, update, and replace rows functionality for fulltext indexed tables #27566
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: kunga <[email protected]>
Co-authored-by: kunga <[email protected]>
|
@copilot finish UpsertRow, UpsertRowCovered, UpdateRow, UpdateRowCovered tests in kqp_indexes_fulltext_ut.cpp UpsertRow, UpsertRowCovered should follow Insert tests (also add MultipleTimes and Returning cases) UpdateRow, UpdateRowCovered should use UpsertSomeTexts for filling also |
…d tests for fulltext indexes Co-authored-by: kunga <[email protected]>
Implemented all requested tests in commit 9ef194d: UpsertRow tests (following Insert pattern):
UpsertRowCovered tests (following InsertCovered pattern):
UpdateRow tests (using UpsertSomeTexts for initial data):
Also enabled |
|
@copilot add UpdateRowMultipleTimes, UpdateRowReturning, UpdateRowCoveredReturning tests |
…eturning tests Co-authored-by: kunga <[email protected]>
Added all three tests in commit faf82bb: UpdateRowMultipleTimes - tests updating multiple rows simultaneously All tests follow the pattern from DeleteRow tests and use UpsertSomeTexts for initial data setup. |
|
@copilot add update on statement checks like it's done in Delete tests |
Co-authored-by: kunga <[email protected]>
Added UPDATE ON statement checks in commit 9469521:
All tests now follow the same pattern as Delete tests with three types of operations: WHERE by PK, WHERE by filter, and ON SELECT. |
|
@copilot add cases when Upsert modify existing row in UpsertRow tests |
Co-authored-by: kunga <[email protected]>
Added modify existing row cases in commit a121c75:
All UpsertRow tests now test both insert new row and modify existing row scenarios, verifying that the fulltext index is correctly maintained when rows are updated via UPSERT. |
|
@copilot add also bunch of tests on 'REPLACE INTO' statement |
|
@copilot :2:25: Error: At tuple, At tuple, At tuple, At function: KqlDeleteRows, At function: DqCnUnionAll, At function: TDqOutput, At function: DqStage, At lambda, At function: Iterator, At function: Iterator, At function: Iterator |
…pute stage Co-authored-by: kunga <[email protected]>
Fixed in commit 526c2ed. The error was caused by a missing |
|
⚪
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
|
⚪ ⚪ Ya make output | Test bloat | Test bloat
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
ydb/core/kqp/opt/kqp_opt_impl.h
Outdated
| const NYql::TKikimrTablesData& tables, TStringBuf cluster); | ||
|
|
||
| TVector<std::pair<NYql::TExprNode::TPtr, const NYql::TIndexDescription*>> BuildSecondaryIndexVector( | ||
| TVector<std::pair<NYql::TExprNode::TPtr, const NYql::TIndexDescription*>> BuildEffectedIndexTables( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Может хоть Affected уж тогда? :-)
А всё остальное норм
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok
|
⚪ ⚪ Ya make output | Test bloat | Test bloat
⚪ Ya make output | Test bloat | Test bloat | Test bloat
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
|
⚪
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
The fix wraps deleteIndexKeys in a precompute stage before passing to BuildFulltextIndexRows, matching the pattern in delete operation.
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.