writer

package
v0.3.0-beta.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package writer provides small streaming helpers for exporting Spanner rows using spanvalue formatters.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrEmptyTableName reports that SQLInsertWriter.Table is empty.
	ErrEmptyTableName = errors.New("empty table name")
	// ErrEmptyColumnName reports that a SQL writer received an empty column name.
	ErrEmptyColumnName = errors.New("empty column name")
	// ErrNilOutputWriter reports that a writer was constructed without an output.
	ErrNilOutputWriter = errors.New("nil output writer")
	// ErrNilRow reports that WriteRow was called with a nil row.
	ErrNilRow = spanvalue.ErrNilRow
	// ErrMissingColumnNames reports that writing values requires initialized column names.
	ErrMissingColumnNames = errors.New("missing column names")
	// ErrColumnNamesMismatch reports that provided column names differ from initialized schema.
	ErrColumnNamesMismatch = errors.New("column names mismatch")
	// ErrHeaderAfterData reports that CSVWriter.WriteHeader was called after data rows were emitted.
	ErrHeaderAfterData = errors.New("header after data")
)

Functions

This section is empty.

Types

type CSVWriter

type CSVWriter struct {
	Formatter *spanvalue.FormatConfig
	Header    bool
	// Set before the first write. Once names have been resolved for the current
	// schema, later changes do not retroactively rewrite cached header names.
	UnnamedFieldNamer spanvalue.UnnamedFieldNamer
	// contains filtered or unexported fields
}

CSVWriter writes rows as CSV. Call Flush after the final write.

func NewCSVWriter

func NewCSVWriter(out io.Writer, metadata ...*sppb.ResultSetMetadata) *CSVWriter

NewCSVWriter returns a CSV writer optionally initialized from result-set metadata.

func (*CSVWriter) Flush

func (w *CSVWriter) Flush() error

Flush flushes buffered CSV data to the underlying writer.

func (*CSVWriter) WriteGCVs

func (w *CSVWriter) WriteGCVs(values []spanner.GenericColumnValue) error

func (*CSVWriter) WriteHeader

func (w *CSVWriter) WriteHeader() error

WriteHeader writes the CSV header once using the initialized column names.

func (*CSVWriter) WriteRow

func (w *CSVWriter) WriteRow(row *spanner.Row) error

WriteRow writes one CSV row, initializing the schema from row metadata if needed.

func (*CSVWriter) WriteValues

func (w *CSVWriter) WriteValues(columnNames []string, values []spanner.GenericColumnValue) error

type JSONLWriter

type JSONLWriter struct {
	Formatter *spanvalue.FormatConfig
	// Set before the first write. Once names have been resolved for the current
	// schema, later changes do not retroactively rewrite cached object keys.
	UnnamedFieldNamer spanvalue.UnnamedFieldNamer
	// contains filtered or unexported fields
}

JSONLWriter writes one JSON object per line.

func NewJSONLWriter

func NewJSONLWriter(out io.Writer, metadata ...*sppb.ResultSetMetadata) *JSONLWriter

NewJSONLWriter returns a JSONL writer optionally initialized from result-set metadata.

func (*JSONLWriter) WriteGCVs

func (w *JSONLWriter) WriteGCVs(values []spanner.GenericColumnValue) error

func (*JSONLWriter) WriteRow

func (w *JSONLWriter) WriteRow(row *spanner.Row) error

func (*JSONLWriter) WriteValues

func (w *JSONLWriter) WriteValues(columnNames []string, values []spanner.GenericColumnValue) error

type SQLInsertWriter

type SQLInsertWriter struct {
	Table     string
	Formatter *spanvalue.FormatConfig
	// contains filtered or unexported fields
}

SQLInsertWriter writes rows as GoogleSQL INSERT statements.

func NewSQLInsertWriter

func NewSQLInsertWriter(out io.Writer, table string, metadata ...*sppb.ResultSetMetadata) *SQLInsertWriter

NewSQLInsertWriter returns a SQL INSERT writer optionally initialized from result-set metadata.

func (*SQLInsertWriter) WriteGCVs

func (w *SQLInsertWriter) WriteGCVs(values []spanner.GenericColumnValue) error

func (*SQLInsertWriter) WriteRow

func (w *SQLInsertWriter) WriteRow(row *spanner.Row) error

func (*SQLInsertWriter) WriteValues

func (w *SQLInsertWriter) WriteValues(columnNames []string, values []spanner.GenericColumnValue) error

type Writer

type Writer interface {
	WriteRow(row *spanner.Row) error
}

Writer writes rows to an output stream.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL