types

package
v0.7.2 Latest Latest
Warning

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

Go to latest
Published: May 19, 2026 License: MIT Imports: 18 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AppendValueToARROWBuilder added in v0.1.23

func AppendValueToARROWBuilder(ptrv *string, builder array.Builder) error

func ModeValidation added in v0.1.21

func ModeValidation(fl validator.FieldLevel) bool

func RegisterTypeValidation

func RegisterTypeValidation(v *validator.Validate)

func TableFieldSchemaFromColumnType added in v0.7.0

func TableFieldSchemaFromColumnType(name string, t *googlesqlite.ColumnType) *bigqueryv2.TableFieldSchema

TableFieldSchemaFromColumnType walks a googlesqlite.ColumnType (the driver-level type descriptor) and produces a BigQuery v2 schema. It recurses into ARRAY element types and STRUCT field types so nested schemas round-trip.

func TableFieldSchemaToProto added in v0.1.27

func TableFieldSchemaToProto(s *bigqueryv2.TableFieldSchema) *storagepb.TableFieldSchema

func TableFieldSchemasToProto added in v0.1.27

func TableFieldSchemasToProto(fields []*bigqueryv2.TableFieldSchema) []*storagepb.TableFieldSchema

func TableFieldToARROW added in v0.1.23

func TableFieldToARROW(f *bigqueryv2.TableFieldSchema) (*arrow.Field, error)

func TableToARROW added in v0.1.23

func TableToARROW(t *bigqueryv2.Table) (*arrow.Schema, error)

func TableToProto added in v0.1.27

func TableToProto(t *bigqueryv2.Table) *storagepb.TableSchema

func TypeValidation

func TypeValidation(fl validator.FieldLevel) bool

func ValidateRowFields added in v0.7.0

func ValidateRowFields[V any](schema *bigqueryv2.TableSchema, row map[string]V) []string

ValidateRowFields returns, sorted, the names of the fields present in an insertAll row that are not declared in the table schema. An empty result means every field in the row is known. BigQuery rejects rows with unknown fields unless ignoreUnknownValues is set.

Types

type AVROFieldSchema added in v0.1.23

type AVROFieldSchema struct {
	Type *AVROType `json:"type"`
	Name string    `json:"name"`
}

func TableFieldSchemaToAVRO added in v0.1.23

func TableFieldSchemaToAVRO(s *bigqueryv2.TableFieldSchema) *AVROFieldSchema

func TableFieldSchemasToAVRO added in v0.1.23

func TableFieldSchemasToAVRO(fields []*bigqueryv2.TableFieldSchema) []*AVROFieldSchema

type AVROSchema added in v0.1.23

type AVROSchema struct {
	Namespace string             `json:"namespace"`
	Name      string             `json:"name"`
	Type      string             `json:"type"`
	Fields    []*AVROFieldSchema `json:"fields"`
}

func TableToAVRO added in v0.1.23

func TableToAVRO(t *bigqueryv2.Table) *AVROSchema

type AVROType added in v0.1.23

type AVROType struct {
	TypeSchema *bigqueryv2.TableFieldSchema
}

func (*AVROType) CastValue added in v0.1.23

func (t *AVROType) CastValue(v string) (interface{}, error)

func (*AVROType) Key added in v0.1.23

func (t *AVROType) Key() string

func (*AVROType) MarshalJSON added in v0.1.23

func (t *AVROType) MarshalJSON() ([]byte, error)

type Column

type Column struct {
	Name   string    `yaml:"name" validate:"required"`
	Type   Type      `yaml:"type" validate:"type"`
	Mode   Mode      `yaml:"mode" validate:"mode"`
	Fields []*Column `yaml:"fields"`
}

func NewColumn

func NewColumn(name string, typ Type, opts ...ColumnOption) *Column

func NewColumnWithSchema added in v0.1.27

func NewColumnWithSchema(s *bigqueryv2.TableFieldSchema) *Column

func (*Column) FormatType added in v0.1.21

func (c *Column) FormatType() string

func (*Column) TableFieldSchema added in v0.1.23

func (c *Column) TableFieldSchema() *bigqueryv2.TableFieldSchema

type ColumnOption added in v0.1.21

type ColumnOption func(c *Column)

func ColumnFields added in v0.1.21

func ColumnFields(fields ...*Column) ColumnOption

func ColumnMode added in v0.1.21

func ColumnMode(mode Mode) ColumnOption

type Data

type Data []map[string]interface{}

type Dataset

type Dataset struct {
	ID       string     `yaml:"id" validate:"required"`
	Tables   []*Table   `yaml:"tables"`
	Models   []*Model   `yaml:"models"`
	Routines []*Routine `yaml:"routines"`
}

func NewDataset

func NewDataset(id string, tables ...*Table) *Dataset

type FieldType

type FieldType string
const (
	FieldInteger    FieldType = "INTEGER"
	FieldBoolean    FieldType = "BOOLEAN"
	FieldFloat      FieldType = "FLOAT"
	FieldString     FieldType = "STRING"
	FieldBytes      FieldType = "BYTES"
	FieldDate       FieldType = "DATE"
	FieldTimestamp  FieldType = "TIMESTAMP"
	FieldRecord     FieldType = "RECORD"
	FieldTime       FieldType = "TIME"
	FieldDatetime   FieldType = "DATETIME"
	FieldGeography  FieldType = "GEOGRAPHY"
	FieldNumeric    FieldType = "NUMERIC"
	FieldBignumeric FieldType = "BIGNUMERIC"
	FieldInterval   FieldType = "INTERVAL"
	FieldJSON       FieldType = "JSON"
)

func (FieldType) Proto added in v0.1.27

type Job

type Job struct {
	ID       string                 `yaml:"id" validate:"required"`
	Metadata map[string]interface{} `yaml:"metadata"`
}

type Mode added in v0.1.21

type Mode string
const (
	NullableMode Mode = "NULLABLE"
	RequiredMode Mode = "REQUIRED"
	RepeatedMode Mode = "REPEATED"
)

func (Mode) Proto added in v0.1.27

func (*Mode) UnmarshalYAML added in v0.1.23

func (m *Mode) UnmarshalYAML(b []byte) error

type Model

type Model struct {
	ID       string                 `yaml:"id" validate:"required"`
	Metadata map[string]interface{} `yaml:"metadata"`
}

type Project

type Project struct {
	ID       string     `yaml:"id" validate:"required"`
	Datasets []*Dataset `yaml:"datasets" validate:"required"`
	Jobs     []*Job     `yaml:"jobs"`
}

func NewProject

func NewProject(id string, datasets ...*Dataset) *Project

type Routine

type Routine struct {
	ID       string                 `yaml:"id" validate:"required"`
	Metadata map[string]interface{} `yaml:"metadata"`
}

type Table

type Table struct {
	ID       string                 `yaml:"id" validate:"required"`
	Columns  []*Column              `yaml:"columns" validate:"required"`
	Data     Data                   `yaml:"data"`
	Metadata map[string]interface{} `yaml:"metadata"`
}

func NewTable

func NewTable(id string, columns []*Column, data Data) *Table

func NewTableWithSchema added in v0.1.27

func NewTableWithSchema(t *bigqueryv2.Table, data Data) (*Table, error)

func (*Table) SetupMetadata added in v0.1.12

func (t *Table) SetupMetadata(projectID, datasetID string)

func (*Table) ToBigqueryV2 added in v0.2.7

func (t *Table) ToBigqueryV2(projectID, datasetID string) *bigqueryv2.Table

type Type

type Type string
const (
	INT64      Type = "INT64"
	INT        Type = "INT"
	SMALLINT   Type = "SMALLINT"
	INTEGER    Type = "INTEGER"
	BIGINT     Type = "BIGINT"
	TINYINT    Type = "TINYINT"
	BYTEINT    Type = "BYTEINT"
	NUMERIC    Type = "NUMERIC"
	BIGNUMERIC Type = "BIGNUMERIC"
	DECIMAL    Type = "DECIMAL"
	BIGDECIMAL Type = "BIGDECIMAL"
	BOOLEAN    Type = "BOOLEAN"
	BOOL       Type = "BOOL"
	FLOAT      Type = "FLOAT"
	FLOAT64    Type = "FLOAT64"
	DOUBLE     Type = "DOUBLE"
	STRING     Type = "STRING"
	BYTES      Type = "BYTES"
	DATE       Type = "DATE"
	DATETIME   Type = "DATETIME"
	TIME       Type = "TIME"
	TIMESTAMP  Type = "TIMESTAMP"
	INTERVAL   Type = "INTERVAL"
	ARRAY      Type = "ARRAY"
	STRUCT     Type = "STRUCT"
	GEOGRAPHY  Type = "GEOGRAPHY"
	JSON       Type = "JSON"
	RECORD     Type = "RECORD"
)

func TypeFromKind

func TypeFromKind(kind int) Type

func (Type) FieldType

func (t Type) FieldType() FieldType

func (Type) TypeKind added in v0.7.0

func (t Type) TypeKind() zsqltypes.TypeKind

Jump to

Keyboard shortcuts

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