types

package
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2024 License: MIT Imports: 15 Imported by: 1

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 TableFieldSchemaFromZetaSQLType added in v0.1.23

func TableFieldSchemaFromZetaSQLType(name string, t types.Type) *bigqueryv2.TableFieldSchema

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

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) ZetaSQLTypeKind

func (t Type) ZetaSQLTypeKind() types.TypeKind

Jump to

Keyboard shortcuts

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