Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ PostgreSQL TypeAnnotation integration probes live in [**spanpg**](https://github

- **`dbsqlrows/`** owns the shared `*sql.Rows` loop (`RunRows`/`RunRowsAtData` + `SQLRowsHooks`, parallel to `writer.RunRowIterator`); csv/jsonl use `SQLRowsHooksFromGCVWriter`. No go-sql-spanner in root `go.mod`. **`dbsqlrows/gospanner/`** is optional one-shot export + ExecOptions reference (not for REPLs — spannersh uses core only). Table layout and batch orchestration stay in apps. See [#109](https://github.com/apstndb/spanvalue/issues/109) / [#110](https://github.com/apstndb/spanvalue/issues/110).
- **No string→GCV parsing** in `FormatConfig` (`gcvctor` / app). PG table cells: **spanpg**, not spanvalue.
- **Reflection / client-tag Go value → GCV** (struct tags, `Null*` wrappers, `spanner.Encoder`, typed-NULL inference mirroring the official client's `encodeValue`) lives in [**spanenc**](https://github.com/apstndb/spanenc) with [**structfields**](https://github.com/apstndb/structfields) (separate Apache-2.0 module hosting the upstream `cloud.google.com/go/internal/fields` fork and `spannertag` port so MIT modules never embed upstream-derived code); `gcvctor` stays explicit, strict constructors with caller-supplied types.
- **Reflection / client-tag Go value ↔ GCV** (struct tags, `Null*` wrappers, `spanner.Encoder`, typed-NULL inference mirroring the official client's `encodeValue`) lives in [**spancodec**](https://github.com/apstndb/spancodec); [spanenc](https://github.com/apstndb/spanenc) and spandec are frozen predecessors. Its [migration guide](https://github.com/apstndb/spancodec#migrating-from-spanenc--spandec) records option-signature differences, so an import-only switch is not universal. [**structfields**](https://github.com/apstndb/structfields) remains a separate Apache-2.0 module hosting the upstream `cloud.google.com/go/internal/fields` fork and `spannertag` port, so MIT modules never embed upstream-derived code. `gcvctor` stays explicit, strict constructors with caller-supplied types.

## gcvctor & errors (short)

Expand Down
6 changes: 5 additions & 1 deletion gcvctor/doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,9 @@
// Formatting these values as strings is provided by the sibling package
// [github.com/apstndb/spanvalue]. For converting arbitrary Go values with the official
// Cloud Spanner Go client's encoding semantics (struct tags, null wrappers, Encoder), see
// [github.com/apstndb/spanenc].
// [github.com/apstndb/spancodec]. It supersedes the frozen spanenc and spandec
// modules. The [spancodec migration guide] covers option-signature differences;
// changing only the import path may not compile for option slices.
//
// # Wire values and forward compatibility
//
Expand Down Expand Up @@ -125,4 +127,6 @@
// Spanner-canonical wire.
//
// See ExampleStringBasedValueFromCode_validatedDate and ExampleNormalizeArrayElements.
//
// [spancodec migration guide]: https://github.com/apstndb/spancodec#migrating-from-spanenc--spandec
package gcvctor
Loading