Skip to content

fix(grid): enforce exact single-row match in expectDmlMatchedRows (#896) - #959

Merged
ZhuchkaTriplesix merged 1 commit into
devfrom
issue/896-sqlite-rowid-single-row-dml
Sep 25, 2026
Merged

ZhuchkaTriplesix merged 1 commit into
devfrom
issue/896-sqlite-rowid-single-row-dml

Conversation

@ZhuchkaTriplesix

Copy link
Copy Markdown
Member

Описание изменений

  • expectDmlMatchedRows теперь требует affectedRows == 1. Раньше >= 1 пропускал UPDATE/DELETE, затронувшие дубликаты в таблице без ключа, и молча портил все совпавшие строки. Транзакция откатывается, пользователь видит понятную ошибку.
  • Поддержка SQLite rowid (п.1 issue) уже была добавлена в fix(sqlite): allow Table Browser edits on implicit rowid tables #774 / fix(sqlite): edit Table Browser rows via implicit rowid #865. Здесь добавлены тесты на генерацию WHERE "rowid" = … и на поведение с дубликатами.
  • Тесты: table_view_staging_test, table_mutation_engine_test, sqlite_connection_test, extension_table_view_test.

Связанные Issue

Closes #896

Примечание

Для PG/MySQL таблиц без PK с дубликатами Save теперь падает вместо тихой порчи данных. Тесты не запускались локально (есть CI), dart analyze чистый.

🤖 Generated with Claude Code

@github-actions github-actions Bot added bug Something isn't working stability Theme parser epic label: stability sqlite SQLite database driver and workspace data-grid Interactive data grid, cell editor, filtering, groupings labels Sep 25, 2026
@github-actions github-actions Bot added this to the 0.4.18 milestone Sep 25, 2026
…oses #896)

Staged UPDATE/DELETE statements target one row. Matching 2+ rows (duplicates
in an unkeyed table) previously passed the `>= 1` check and silently rewrote
all of them. Now anything other than exactly 1 affected row throws, so the
surrounding transaction rolls back.

SQLite implicit rowid addressing already landed in #774; tests added to cover
rowid WHERE generation and the duplicate-row rollback.
@ZhuchkaTriplesix
ZhuchkaTriplesix force-pushed the issue/896-sqlite-rowid-single-row-dml branch from f091a99 to 3858a11 Compare September 25, 2026 10:17
@ZhuchkaTriplesix
ZhuchkaTriplesix merged commit 3939b04 into dev Sep 25, 2026
4 checks passed
@ZhuchkaTriplesix
ZhuchkaTriplesix deleted the issue/896-sqlite-rowid-single-row-dml branch September 28, 2026 08:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working data-grid Interactive data grid, cell editor, filtering, groupings sqlite SQLite database driver and workspace stability Theme parser epic label: stability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant