Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Driver edge cases found while editing rows (PostgreSQL arrays of typmod domains, SQLite NULL keys, MySQL FLOAT keys)

オープン
#46 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
mariadb, mysql, postgresql, react, rust, sqlite, tauri, typescript

調査の方向性

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 の本文から書いたものです。

説明

area:backend size:M status:ready type:task

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[] over varchar(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 (rowid in RowKey).
  • MySQL FLOAT key columns never compare equal (edits end as stale row): compare with a cast or refuse edit by that key with a clear message. DOUBLE is fine.
  • SQLite column without type affinity holding an integer key reports a false stale row; a PostgreSQL BEFORE trigger returning NULL is reported as a stale row too.
  • suggests_schema_change matches 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 ConnectionLost and is shown as an unknown outcome though nothing was sent.
  • Missing tests: PostgreSQL partial / expression unique indexes, PG type_name of arrays / enums / varchar / timestamptz, MySQL STORED generated columns, the 16 MiB cell_value cap on MySQL / MariaDB.
  • relation() defaults to public instead of current_schema(); MariaDB SEQUENCE classed as a table; PostgreSQL 18 virtual generated columns.

Acceptance criteria

  • Each item fixed with an integration test (pnpm test:rust on the test stack) or explicitly declined in the PR.
  • pnpm test && pnpm lint green (plus cargo clippy --all-targets -- -D warnings and pnpm test:rust when Rust changes)

Likely files touched

  • src-tauri/src/driver/{postgres,mysql,sqlite}.rs, src-tauri/src/driver/dml.rs
  • src-tauri/src/manager.rs
  • src-tauri/tests/

Linked docs

  • docs/notes/plan-03-followups.md (Deferred Task 1, Task 3)
主要言語
TypeScript
スター
0
フォーク
0
平均マージ
1時間 19分
マージ済み PR(30日)
28

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Cemoche/tablemax のほかの issue

Cemoche/tablemax の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。