Driver edge cases found while editing rows (PostgreSQL arrays of typmod domains, SQLite NULL keys, MySQL FLOAT keys)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
調査の方向性
Start with docs/notes/plan-03-followups.md and inspect src-tauri/src/driver/{postgres,mysql,sqlite}.rs, src-tauri/src/driver/dml.rs, and src-tauri/src/manager.rs alongside the related tests in src-tauri/tests/. Run pnpm test:rust on the test stack to reproduce the listed driver cases. Done means each item has an integration test and is fixed or explicitly declined in the PR; run the listed test, lint, and Rust checks for the changes.
索引モデルが issue の本文から書いたものです。
説明
Context
Deferred from plan 3 Tasks 1 and 3. Grid edits cast values to the column's base type so the database enforces modifiers; a few column types still misbehave or cannot be edited. Related to (not a duplicate of) the driver edge-case issues for plans 1-2.
To do
- PostgreSQL arrays of a domain with a modifier (
d5[]overvarchar(5)) are still cast to the domain's array type: resolve to the element base type with[]. - SQLite rows whose (non-INTEGER) primary key is NULL cannot be edited: add a rowid fallback (
rowidinRowKey). - MySQL
FLOATkey columns never compare equal (edits end as stale row): compare with a cast or refuse edit by that key with a clear message.DOUBLEis fine. - SQLite column without type affinity holding an integer key reports a false stale row; a PostgreSQL
BEFOREtrigger returning NULL is reported as a stale row too. suggests_schema_changematches English error messages: use SQLSTATE / error codes so localized servers invalidate cached metadata.- The first commit after MySQL killed an idle browse connection fails with
ConnectionLostand is shown as an unknown outcome though nothing was sent. - Missing tests: PostgreSQL partial / expression unique indexes, PG
type_nameof arrays / enums /varchar/timestamptz, MySQLSTOREDgenerated columns, the 16 MiBcell_valuecap on MySQL / MariaDB. relation()defaults topublicinstead ofcurrent_schema(); MariaDBSEQUENCEclassed as a table; PostgreSQL 18 virtual generated columns.
Acceptance criteria
- Each item fixed with an integration test (
pnpm test:ruston the test stack) or explicitly declined in the PR. -
pnpm test && pnpm lintgreen (pluscargo clippy --all-targets -- -D warningsandpnpm test:rustwhen Rust changes)
Likely files touched
src-tauri/src/driver/{postgres,mysql,sqlite}.rs,src-tauri/src/driver/dml.rssrc-tauri/src/manager.rssrc-tauri/tests/
Linked docs
docs/notes/plan-03-followups.md(Deferred Task 1, Task 3)
- 主要言語
- TypeScript
- スター
- 0
- フォーク
- 0
- 平均マージ
- 1時間 19分
- マージ済み PR(30日)
- 28
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Cemoche/tablemax のほかの issue
-
area:frontend size:S status:ready type:bug
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
メンテナーはふだん 1 日以内に返信
-
area:backend size:S status:ready type:bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
area:infra good first issue size:S status:ready type:bug
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
メンテナーはふだん 1 日以内に返信
-
area:docs good first issue size:S status:ready type:task
難易度 1/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
area:infra size:S status:ready type:task
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信
Cemoche/tablemax の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
endora-commerce/endora-commerce#397 ·
メンテナーはふだん 1 日以内に返信
-
level/task
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
wazuh/wazuh-dashboard-plugins#9472 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 63/100
メンテナーはふだん 1 日以内に返信
-
ready-for-agent
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
xavxyz/bei-shan-lin-shui#57 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
opennextjs/opennextjs-cloudflare#1461 ·
メンテナーはふだん 1 日以内に返信