Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto
#46 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
mariadb, mysql, postgresql, react, rust, sqlite, tauri, typescript

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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)
Lenguaje dominante
TypeScript
Estrellas
0
Forks
0
Merge medio
1 h 19 min
PR fusionados (30 d)
28

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Cemoche/tablemax

Todos los issues de Cemoche/tablemax

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.