Documentation
¶
Index ¶
- func AppendValueToARROWBuilder(ptrv *string, builder array.Builder) error
- func ModeValidation(fl validator.FieldLevel) bool
- func RegisterTypeValidation(v *validator.Validate)
- func TableFieldSchemaFromColumnType(name string, t *googlesqlite.ColumnType) *bigqueryv2.TableFieldSchema
- func TableFieldSchemaToProto(s *bigqueryv2.TableFieldSchema) *storagepb.TableFieldSchema
- func TableFieldSchemasToProto(fields []*bigqueryv2.TableFieldSchema) []*storagepb.TableFieldSchema
- func TableFieldToARROW(f *bigqueryv2.TableFieldSchema) (*arrow.Field, error)
- func TableToARROW(t *bigqueryv2.Table) (*arrow.Schema, error)
- func TableToProto(t *bigqueryv2.Table) *storagepb.TableSchema
- func TypeValidation(fl validator.FieldLevel) bool
- func ValidateRowFields[V any](schema *bigqueryv2.TableSchema, row map[string]V) []string
- type AVROFieldSchema
- type AVROSchema
- type AVROType
- type Column
- type ColumnOption
- type Data
- type Dataset
- type FieldType
- type Job
- type Mode
- type Model
- type Project
- type Routine
- type Table
- type Type
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AppendValueToARROWBuilder ¶ added in v0.1.23
func ModeValidation ¶ added in v0.1.21
func ModeValidation(fl validator.FieldLevel) bool
func RegisterTypeValidation ¶
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
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) MarshalJSON ¶ added in v0.1.23
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 NewColumnWithSchema ¶ added in v0.1.27
func NewColumnWithSchema(s *bigqueryv2.TableFieldSchema) *Column
func (*Column) FormatType ¶ added in v0.1.21
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 Dataset ¶
type Dataset struct {
ID string `yaml:"id" validate:"required"`
Tables []*Table `yaml:"tables"`
Models []*Model `yaml:"models"`
Routines []*Routine `yaml:"routines"`
}
func NewDataset ¶
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
func (t FieldType) Proto() storagepb.TableFieldSchema_Type
type Mode ¶ added in v0.1.21
type Mode string
func (Mode) Proto ¶ added in v0.1.27
func (m Mode) Proto() storagepb.TableFieldSchema_Mode
func (*Mode) UnmarshalYAML ¶ added in v0.1.23
type Project ¶
type Project struct {
ID string `yaml:"id" validate:"required"`
Datasets []*Dataset `yaml:"datasets" validate:"required"`
Jobs []*Job `yaml:"jobs"`
}
func NewProject ¶
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 NewTableWithSchema ¶ added in v0.1.27
func NewTableWithSchema(t *bigqueryv2.Table, data Data) (*Table, error)
func (*Table) SetupMetadata ¶ added in v0.1.12
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 ¶
Click to show internal directories.
Click to hide internal directories.