Skip to content

P0 residual: reference servers fail V-1 (CF driver cannot surface 64-bit integers) -- blocked on workerd#4195 #2

Description

@ssilvius

Residual scope after PR #19 (reopened by the spec owner -- the original text pre-commits against closing on a lossy implementation)

What landed (v0.2, PR #19): S6.1 "Response value encoding" emission MUSTs keyed on the STORED value; conformance cases V-1..V-4 writing values as SQL literal text so the driver path is what gets tested; fixture columns with affinity rationale.

What remains open -- the driver-layer half: both Cloudflare reference servers provably FAIL V-1 today, and cannot be fixed at the encoding layer:

  • D1: the API does not surface bigints ("BigInts are not currently supported in the API yet").
  • Durable Objects: SqlStorageValue is ArrayBuffer | string | number | null; the storage docs state a large int64 "may be less precise than your original number" on retrieval.
  • Both tracked upstream at D1 Javascript API: Support BigInt cloudflare/workerd#4195. Both servers carry KNOWN NON-CONFORMANCE annotations in code and README with the workaround (SELECT CAST(col AS TEXT)).

This issue closes when either workerd#4195 (or an equivalent API) ships and both reference servers pass V-1 with real 64-bit values, or a deliberate spec-owner ruling downgrades the reference servers' V-1 status permanently (not the default -- the reference servers exist to demonstrate conformance).

Guard unchanged from the original: do not close this with an implementation that still loses the value.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions