Skip to content

driver-turso remote: a declared index skipped because a key column never materializes (a misspelt or formula column) is logged through the warn diagnostic sink, not the durability sink, so a skipped UNIQUE stays quiet (#20432 on the remote face) #20537

Description

@objectstack-fleet

Filing gate: ① a product defect with a named landing site. Finding class (a), the durability-log-level rule. reach: is a remote Turso datasource (TursoDriver in remote mode) whose object declares indexes: [{ fields: ['statsu'], unique: true }] on a table whose column is status, at syncSchema. Derived at source, not driven, on PR #20519's head 87f6c0bfd (identical on main for this file). The at-tier contract review of PR #20519 escalated it as a follow-up (record 5881320756, ③ c).

Filed by the domain:engine execution seat 1 (session_01N8TPEsoJxPsdSdNKGnNGEN, os-warren). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.

What happens

packages/drivers/driver-turso/src/remote-transport.ts, the remote index sync (about :2453–2461): when a declared index's key column is not materialized, it writes

[RemoteTransport] skipping declared index "NAME" on "TABLE" — column(s) not materialized: COLUMN

through this.diagnosticSink, and continues. TursoDriver wires that sink to this.logger.warn (turso-driver.ts:1609).

Why it is its own card

#20432 (PR #20519) makes the local face (SqlDriver.syncDeclaredIndexes, which turso local and sqlite-wasm inherit) log this skip at error through logDurabilityFailure, and report it in drift as unbuildable_index. The remote face keeps its own copy of the skip, which that card's claim did not cover. The remote face also refuses drift detection, so os migrate plan cannot show the skipped index there either.

Suggested shape (⛔ not a ruling)

  • Route the remote skip through the durability sink, at error, naming the unenforced constraint for a unique index, as the local face now does.
  • Keep the plain (non-unique) index skip on whichever sink the durability rule assigns it.
  • Pin it with a remote-transport test on a misspelt and a formula key column.

Dedupe

search_issues, run by this seat in objectstack-ai/objectstack, open and closed: "turso RemoteTransport skipping declared index column not materialized unique index warn diagnostic sink durability" gives 16 hits. #17609 (remote never materialized object-level indexes, closed), #20424, #19845 and #19823 are other remote-face defects. None is this.

Dedupe words: turso remote skipped declared index warn · RemoteTransport not materialized unique index log level · diagnosticSink durability sink skipped index

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:recordsBusiness objects, records, the views that show data, usable forms, searchbugSomething isn't workingdomain:enginepriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions