package table
import "github.com/datastax/astra-db-go/v2/astra/table"
Package table provides types and utilities for working with Astra DB tables.
Index
- Constants
- type AddColumns
- type AddReranking
- type AddTypeFields
- type AddVectorize
- type AlterOperation
- type AlterTypeOperation
-
type Column
- func Ascii() Column
- func BigInt() Column
- func Blob() Column
- func Boolean() Column
- func Date() Column
- func Decimal() Column
- func Double() Column
- func Duration() Column
- func Float() Column
- func Inet() Column
- func Int() Column
- func List(valueType Column) Column
- func Map(keyType string, valueType Column) Column
- func Set(valueType Column) Column
- func SmallInt() Column
- func Text() Column
- func Time() Column
- func TimeUUID() Column
- func Timestamp() Column
- func TinyInt() Column
- func UDT(udtName string) Column
- func UUID() Column
- func Varint() Column
- func Vector(dimension int) Column
- func VectorWithService(dimension int, service *VectorService) Column
- func (c *Column) UnmarshalAstraRaw(ctx serdes.DecodeCtx, value []byte) error
- type Columns
- type Definition
-
type DefinitionBuilder
- func NewDefinition() *DefinitionBuilder
- func (s DefinitionBuilder) AddAsciiColumn(name string) B
- func (s DefinitionBuilder) AddBigIntColumn(name string) B
- func (s DefinitionBuilder) AddBlobColumn(name string) B
- func (s DefinitionBuilder) AddBooleanColumn(name string) B
- func (b *DefinitionBuilder) AddClusteringColumn(column string, sortOrder int) *DefinitionBuilder
- func (b *DefinitionBuilder) AddClusteringColumnAsc(column string) *DefinitionBuilder
- func (b *DefinitionBuilder) AddClusteringColumnDesc(column string) *DefinitionBuilder
- func (b *DefinitionBuilder) AddColumn(name string, columnType Column) *DefinitionBuilder
- func (s DefinitionBuilder) AddDateColumn(name string) B
- func (s DefinitionBuilder) AddDecimalColumn(name string) B
- func (s DefinitionBuilder) AddDoubleColumn(name string) B
- func (s DefinitionBuilder) AddDurationColumn(name string) B
- func (s DefinitionBuilder) AddFloatColumn(name string) B
- func (s DefinitionBuilder) AddInetColumn(name string) B
- func (s DefinitionBuilder) AddIntColumn(name string) B
- func (b *DefinitionBuilder) AddListColumn(name string, valueType Column) *DefinitionBuilder
- func (b *DefinitionBuilder) AddMapColumn(name string, keyType string, valueType Column) *DefinitionBuilder
- func (b *DefinitionBuilder) AddPartitionBy(column string) *DefinitionBuilder
- func (b *DefinitionBuilder) AddSetColumn(name string, valueType Column) *DefinitionBuilder
- func (s DefinitionBuilder) AddSmallIntColumn(name string) B
- func (s DefinitionBuilder) AddTextColumn(name string) B
- func (s DefinitionBuilder) AddTimeColumn(name string) B
- func (s DefinitionBuilder) AddTimeUUIDColumn(name string) B
- func (s DefinitionBuilder) AddTimestampColumn(name string) B
- func (s DefinitionBuilder) AddTinyIntColumn(name string) B
- func (s *DefinitionBuilder) AddUDTColumn(name string, udtName string) *DefinitionBuilder
- func (s DefinitionBuilder) AddUUIDColumn(name string) B
- func (s DefinitionBuilder) AddVarintColumn(name string) B
- func (b *DefinitionBuilder) AddVectorColumn(name string, dimension int) *DefinitionBuilder
- func (b *DefinitionBuilder) AddVectorColumnWithService(name string, dimension int, service *VectorService) *DefinitionBuilder
- func (b *DefinitionBuilder) Build() Definition
- func (b *DefinitionBuilder) SetPartitionBy(columns ...string) *DefinitionBuilder
- type DropColumns
- type DropReranking
- type DropVectorize
- type NamedColumn
- type NamedSort
- type PartitionSort
- type PrimaryKey
- type RenameTypeFields
- type RerankService
- type UDTDefinition
-
type UDTDefinitionBuilder
- func NewUDTDefinition() *UDTDefinitionBuilder
- func (s UDTDefinitionBuilder) AddAsciiColumn(name string) B
- func (s UDTDefinitionBuilder) AddBigIntColumn(name string) B
- func (s UDTDefinitionBuilder) AddBlobColumn(name string) B
- func (s UDTDefinitionBuilder) AddBooleanColumn(name string) B
- func (b *UDTDefinitionBuilder) AddColumn(name string, columnType Column) *UDTDefinitionBuilder
- func (s UDTDefinitionBuilder) AddDateColumn(name string) B
- func (s UDTDefinitionBuilder) AddDecimalColumn(name string) B
- func (s UDTDefinitionBuilder) AddDoubleColumn(name string) B
- func (s UDTDefinitionBuilder) AddDurationColumn(name string) B
- func (s UDTDefinitionBuilder) AddFloatColumn(name string) B
- func (s UDTDefinitionBuilder) AddInetColumn(name string) B
- func (s UDTDefinitionBuilder) AddIntColumn(name string) B
- func (s UDTDefinitionBuilder) AddSmallIntColumn(name string) B
- func (s UDTDefinitionBuilder) AddTextColumn(name string) B
- func (s UDTDefinitionBuilder) AddTimeColumn(name string) B
- func (s UDTDefinitionBuilder) AddTimeUUIDColumn(name string) B
- func (s UDTDefinitionBuilder) AddTimestampColumn(name string) B
- func (s UDTDefinitionBuilder) AddTinyIntColumn(name string) B
- func (s UDTDefinitionBuilder) AddUUIDColumn(name string) B
- func (s UDTDefinitionBuilder) AddVarintColumn(name string) B
- func (b *UDTDefinitionBuilder) Build() UDTDefinition
- type VectorService
Constants
const ( SortAscending = 1 SortDescending = -1 )
Sort order constants
const ( TypeText = "text" TypeInt = "int" TypeBigInt = "bigint" TypeSmallInt = "smallint" TypeTinyInt = "tinyint" TypeFloat = "float" TypeDouble = "double" TypeDecimal = "decimal" TypeBoolean = "boolean" TypeDate = "date" TypeTime = "time" TypeTimestamp = "timestamp" TypeUUID = "uuid" TypeTimeUUID = "timeuuid" TypeBlob = "blob" TypeVarint = "varint" TypeInet = "inet" TypeAscii = "ascii" TypeVector = "vector" TypeSet = "set" TypeList = "list" TypeMap = "map" TypeUDT = "userDefined" TypeDuration = "duration" )
Column type constants
Types
type AddColumns
type AddColumns struct { Columns Columns `json:"columns"` }
AddColumns is the payload for the alterTable "add" operation.
func (AddColumns) MarshalAstraRaw
func (a AddColumns) MarshalAstraRaw(ctx serdes.EncodeCtx, dst []byte) ([]byte, error)
type AddReranking
type AddReranking struct { Service RerankService `json:"service"` }
AddReranking is the payload for the alterTable "addReranking" operation.
func (AddReranking) MarshalAstraRaw
func (r AddReranking) MarshalAstraRaw(ctx serdes.EncodeCtx, dst []byte) ([]byte, error)
type AddTypeFields
type AddTypeFields struct { Fields Columns `json:"fields"` }
AddTypeFields is the payload for the alterType "add" operation.
func (AddTypeFields) MarshalAstraRaw
func (a AddTypeFields) MarshalAstraRaw(ctx serdes.EncodeCtx, dst []byte) ([]byte, error)
type AddVectorize
type AddVectorize struct { Columns map[string]VectorService `json:"columns"` }
AddVectorize is the payload for the alterTable "addVectorize" operation.
func (AddVectorize) MarshalAstraRaw
func (v AddVectorize) MarshalAstraRaw(ctx serdes.EncodeCtx, dst []byte) ([]byte, error)
type AlterOperation
type AlterOperation interface { serdes.AstraRawMarshaler // contains filtered or unexported methods }
AlterOperation represents a single operation to perform on a table via table.Alter.
Implementations include:
- AddColumns: Adds new columns to the schema.
- DropColumns: Removes existing columns.
- AddVectorize: Configures AI embedding generation for specific columns.
- DropVectorize: Removes AI embedding configurations.
- AddReranking: Enables reranking for the table.
- DropReranking: Disables reranking for the table.
Example — Add columns:
tbl.Alter(ctx, table.AddColumns{
Columns: table.Columns{
"is_summer_reading": table.Boolean(),
"library_branch": table.Text(),
},
})
Example — Drop columns:
tbl.Alter(ctx, table.DropColumns{
Columns: []string{"is_summer_reading", "library_branch"},
})
type AlterTypeOperation
type AlterTypeOperation interface { serdes.AstraRawMarshaler // contains filtered or unexported methods }
AlterTypeOperation represents an operation to alter a user-defined type (UDT).
type Column
type Column struct { // Type is the column type (text, int, float, boolean, uuid, date, vector, set, list, map, userDefined, etc.) Type string `json:"type"` // Dimension is used for vector columns to specify the vector dimension Dimension *int `json:"dimension,omitempty"` // Service is used for vector columns with vectorize embedding provider integration Service *VectorService `json:"service,omitempty"` // KeyType is used for map columns KeyType *string `json:"keyType,omitempty"` // ValueType is used for set, list, and map columns ValueType *Column `json:"valueType,omitempty"` // UDTName is used for userDefined columns to specify the UDT name UDTName *string `json:"udtName,omitempty"` // UDTDefinition is the definition of the UDT if this column is a user defined type. // This is returned by the server; users should not set this themselves when defining a table schema. UDTDefinition *UDTDefinition `json:"definition,omitempty"` }
Column represents a column's type definition. It can be a simple scalar type, a collection type (set, list, map), a vector type, or a user-defined type.
func Ascii
func Ascii() Column
Ascii creates an ascii column
func BigInt
func BigInt() Column
BigInt creates a bigint column
func Blob
func Blob() Column
Blob creates a blob column
func Boolean
func Boolean() Column
Boolean creates a boolean column
func Date
func Date() Column
Date creates a date column
func Decimal
func Decimal() Column
Decimal creates a decimal column
func Double
func Double() Column
Double creates a double column
func Duration
func Duration() Column
Duration creates a duration column
func Float
func Float() Column
Float creates a float column
func Inet
func Inet() Column
Inet creates an inet column
func Int
func Int() Column
Int creates an int column
func List
func List(valueType Column) Column
List creates a list column with the specified value type
func Map
func Map(keyType string, valueType Column) Column
Map creates a map column with the specified key and value types
func Set
func Set(valueType Column) Column
Set creates a set column with the specified value type
func SmallInt
func SmallInt() Column
SmallInt creates a smallint column
func Text
func Text() Column
Text creates a text column
func Time
func Time() Column
Time creates a time column
func TimeUUID
func TimeUUID() Column
TimeUUID creates a TimeUUID column
func Timestamp
func Timestamp() Column
Timestamp creates a timestamp column
func TinyInt
func TinyInt() Column
TinyInt creates a tinyint column
func UDT
func UDT(udtName string) Column
UDT creates a user-defined type column
func UUID
func UUID() Column
UUID creates a UUID column
func Varint
func Varint() Column
Varint creates a varint column
func Vector
func Vector(dimension int) Column
Vector creates a vector column with the specified dimension
func VectorWithService
func VectorWithService(dimension int, service *VectorService) Column
VectorWithService creates a vector column with vectorize embedding provider
func (*Column) UnmarshalAstraRaw
func (c *Column) UnmarshalAstraRaw(ctx serdes.DecodeCtx, value []byte) error
type Columns
type Columns []NamedColumn
Columns is an ordered collection of named columns. It marshals as a JSON object, preserving insertion order on output and input order on parse.
Construct with a literal:
table.Columns{
{"title", table.Text()},
{"author", table.Text()},
}
func (Columns) Get
func (c Columns) Get(name string) (Column, bool)
Get returns the column with the given name and whether it was found.
func (Columns) MarshalAstra
func (c Columns) MarshalAstra(_ serdes.EncodeCtx) (any, error)
func (*Columns) UnmarshalAstraRaw
func (c *Columns) UnmarshalAstraRaw(ctx serdes.DecodeCtx, value []byte) error
type Definition
type Definition struct { // Columns defines all columns in the table with their types. // Order is preserved on marshal and captured on unmarshal. Columns Columns `json:"columns"` // PrimaryKey defines the primary key for the table PrimaryKey PrimaryKey `json:"primaryKey"` }
Definition represents the full Schema for a table, including column names, column data types, and the primary key.
Example:
def := table.Definition{
Columns: table.Columns{
{"title", table.Text()},
{"author", table.Text()},
{"rating", table.Float()},
},
PrimaryKey: table.PrimaryKey{
PartitionBy: []string{"title"},
},
}
func Infer
func Infer[T any]() (Definition, error)
Infer generates a table Definition from a Go struct's type information.
Column names are taken from json tags (falling back to field names). Primary key configuration and type overrides come from astra tags.
See the astra tag grammar:
- astra:"pk" or astra:"pk,N" — partition key (N = ordinal for composite keys)
- astra:"ck,N,asc" or astra:"ck,N,desc" — clustering key
- astra:"-" — skip field
- astra:"type=<T>" — override inferred column type
- astra:"dim=<N>" — vector dimension
- astra:"vectorize,provider=<P>,model=<M>" — vectorize service
The <T> in type= supports:
- scalars: text, ascii, int, bigint, smallint, tinyint, float, double, decimal, boolean, date, time, timestamp, uuid, timeuuid, blob, varint, inet, duration, vector (vector additionally requires dim=<N>)
- containers: set[T], list[T], map[K]V. Bare set / list / map default to inferring their inner types from the Go field type.
- user-defined types: udt[<name>]
- infer — only valid inside brackets; reuses the Go field's inferred type at that position. E.g. map[uuid]infer overrides only the key type.
Composed example: astra:"type=map[uuid]set[ascii]"
Example:
type Book struct {
Title string `json:"title" astra:"pk"`
Author string `json:"author"`
Rating float32 `json:"rating"`
}
def, err := table.Infer[Book]()
tbl, err := db.CreateTable(ctx, "books", def)
type DefinitionBuilder
type DefinitionBuilder struct { // contains filtered or unexported fields }
DefinitionBuilder provides a fluent API for constructing table definitions.
Example using the builder pattern:
definition := table.NewDefinition().
AddColumn("id", table.UUID()).
AddTextColumn("title").
AddFloatColumn("rating").
AddListColumn("genres", table.Text()).
AddVectorColumn("embeddings", 1536).
SetPartitionBy("id").
Build()
func NewDefinition
func NewDefinition() *DefinitionBuilder
NewDefinition creates a new DefinitionBuilder for fluent table definition construction.
func (DefinitionBuilder) AddAsciiColumn
func (s DefinitionBuilder) AddAsciiColumn(name string) B
AddAsciiColumn adds an ascii column or field.
func (DefinitionBuilder) AddBigIntColumn
func (s DefinitionBuilder) AddBigIntColumn(name string) B
AddBigIntColumn adds a bigint column or field.
func (DefinitionBuilder) AddBlobColumn
func (s DefinitionBuilder) AddBlobColumn(name string) B
AddBlobColumn adds a blob column or field.
func (DefinitionBuilder) AddBooleanColumn
func (s DefinitionBuilder) AddBooleanColumn(name string) B
AddBooleanColumn adds a boolean column or field.
func (*DefinitionBuilder) AddClusteringColumn
func (b *DefinitionBuilder) AddClusteringColumn(column string, sortOrder int) *DefinitionBuilder
AddClusteringColumn adds a clustering column with the specified sort order. Use table.SortAscending (1) or table.SortDescending (-1) for the sort order. If the column was already added, its sort order is updated in place.
func (*DefinitionBuilder) AddClusteringColumnAsc
func (b *DefinitionBuilder) AddClusteringColumnAsc(column string) *DefinitionBuilder
AddClusteringColumnAsc adds a clustering column with ascending sort order.
func (*DefinitionBuilder) AddClusteringColumnDesc
func (b *DefinitionBuilder) AddClusteringColumnDesc(column string) *DefinitionBuilder
AddClusteringColumnDesc adds a clustering column with descending sort order.
func (*DefinitionBuilder) AddColumn
func (b *DefinitionBuilder) AddColumn(name string, columnType Column) *DefinitionBuilder
AddColumn adds a column with the specified name and type. If a column with the same name already exists, its type is replaced but its position is kept.
func (DefinitionBuilder) AddDateColumn
func (s DefinitionBuilder) AddDateColumn(name string) B
AddDateColumn adds a date column or field.
func (DefinitionBuilder) AddDecimalColumn
func (s DefinitionBuilder) AddDecimalColumn(name string) B
AddDecimalColumn adds a decimal column or field.
func (DefinitionBuilder) AddDoubleColumn
func (s DefinitionBuilder) AddDoubleColumn(name string) B
AddDoubleColumn adds a double column or field.
func (DefinitionBuilder) AddDurationColumn
func (s DefinitionBuilder) AddDurationColumn(name string) B
AddDurationColumn adds a duration column or field.
func (DefinitionBuilder) AddFloatColumn
func (s DefinitionBuilder) AddFloatColumn(name string) B
AddFloatColumn adds a float column or field.
func (DefinitionBuilder) AddInetColumn
func (s DefinitionBuilder) AddInetColumn(name string) B
AddInetColumn adds an inet column or field.
func (DefinitionBuilder) AddIntColumn
func (s DefinitionBuilder) AddIntColumn(name string) B
AddIntColumn adds an int column or field.
func (*DefinitionBuilder) AddListColumn
func (b *DefinitionBuilder) AddListColumn(name string, valueType Column) *DefinitionBuilder
AddListColumn adds a list column with the specified value type.
func (*DefinitionBuilder) AddMapColumn
func (b *DefinitionBuilder) AddMapColumn(name string, keyType string, valueType Column) *DefinitionBuilder
AddMapColumn adds a map column with the specified key and value types.
func (*DefinitionBuilder) AddPartitionBy
func (b *DefinitionBuilder) AddPartitionBy(column string) *DefinitionBuilder
AddPartitionBy appends a column to the partition key.
func (*DefinitionBuilder) AddSetColumn
func (b *DefinitionBuilder) AddSetColumn(name string, valueType Column) *DefinitionBuilder
AddSetColumn adds a set column with the specified value type.
func (DefinitionBuilder) AddSmallIntColumn
func (s DefinitionBuilder) AddSmallIntColumn(name string) B
AddSmallIntColumn adds a smallint column or field.
func (DefinitionBuilder) AddTextColumn
func (s DefinitionBuilder) AddTextColumn(name string) B
AddTextColumn adds a text column or field.
func (DefinitionBuilder) AddTimeColumn
func (s DefinitionBuilder) AddTimeColumn(name string) B
AddTimeColumn adds a time column or field.
func (DefinitionBuilder) AddTimeUUIDColumn
func (s DefinitionBuilder) AddTimeUUIDColumn(name string) B
AddTimeUUIDColumn adds a TimeUUID column or field.
func (DefinitionBuilder) AddTimestampColumn
func (s DefinitionBuilder) AddTimestampColumn(name string) B
AddTimestampColumn adds a timestamp column or field.
func (DefinitionBuilder) AddTinyIntColumn
func (s DefinitionBuilder) AddTinyIntColumn(name string) B
AddTinyIntColumn adds a tinyint column or field.
func (*DefinitionBuilder) AddUDTColumn
func (s *DefinitionBuilder) AddUDTColumn(name string, udtName string) *DefinitionBuilder
AddUDTColumn adds a user-defined type column or field.
func (DefinitionBuilder) AddUUIDColumn
func (s DefinitionBuilder) AddUUIDColumn(name string) B
AddUUIDColumn adds a UUID column or field.
func (DefinitionBuilder) AddVarintColumn
func (s DefinitionBuilder) AddVarintColumn(name string) B
AddVarintColumn adds a varint column or field.
func (*DefinitionBuilder) AddVectorColumn
func (b *DefinitionBuilder) AddVectorColumn(name string, dimension int) *DefinitionBuilder
AddVectorColumn adds a vector column with the specified dimension.
func (*DefinitionBuilder) AddVectorColumnWithService
func (b *DefinitionBuilder) AddVectorColumnWithService(name string, dimension int, service *VectorService) *DefinitionBuilder
AddVectorColumnWithService adds a vector column with vectorize embedding provider.
func (*DefinitionBuilder) Build
func (b *DefinitionBuilder) Build() Definition
Build constructs the final Definition from the builder.
func (*DefinitionBuilder) SetPartitionBy
func (b *DefinitionBuilder) SetPartitionBy(columns ...string) *DefinitionBuilder
SetPartitionBy sets the partition key columns. For a single partition key, pass one column name. For a composite partition key, pass multiple column names.
type DropColumns
type DropColumns struct { Columns []string `json:"columns"` }
DropColumns is the payload for the alterTable "drop" operation.
func (DropColumns) MarshalAstraRaw
func (d DropColumns) MarshalAstraRaw(ctx serdes.EncodeCtx, dst []byte) ([]byte, error)
type DropReranking
type DropReranking struct{}
DropReranking is the payload for the alterTable "dropReranking" operation.
func (DropReranking) MarshalAstraRaw
func (r DropReranking) MarshalAstraRaw(ctx serdes.EncodeCtx, dst []byte) ([]byte, error)
type DropVectorize
type DropVectorize struct { Columns []string `json:"columns"` }
DropVectorize is the payload for the alterTable "dropVectorize" operation.
func (DropVectorize) MarshalAstraRaw
func (v DropVectorize) MarshalAstraRaw(ctx serdes.EncodeCtx, dst []byte) ([]byte, error)
type NamedColumn
type NamedColumn struct { Name string Column Column }
NamedColumn pairs a column name with its type definition.
type NamedSort
type NamedSort struct { Name string Order int }
NamedSort pairs a clustering-column name with its sort direction (SortAscending or SortDescending).
type PartitionSort
type PartitionSort []NamedSort
PartitionSort is an ordered collection of clustering columns with their sort direction. It marshals as a JSON object, preserving declared order on output and input order on parse.
Construct with a literal:
table.PartitionSort{
{"event_time", table.SortDescending},
{"priority", table.SortAscending},
}
func (PartitionSort) Get
func (s PartitionSort) Get(name string) (int, bool)
Get returns the sort order for the given column and whether it was found.
func (PartitionSort) MarshalAstra
func (s PartitionSort) MarshalAstra(_ serdes.EncodeCtx) (any, error)
func (*PartitionSort) UnmarshalAstraRaw
func (s *PartitionSort) UnmarshalAstraRaw(ctx serdes.DecodeCtx, value []byte) error
type PrimaryKey
type PrimaryKey struct { // PartitionBy lists the partition key columns PartitionBy []string `json:"partitionBy"` // PartitionSort defines clustering columns and their sort order (1 for ASC, -1 for DESC). // Order is significant — it defines the physical sort order of rows within a partition — // and is preserved through JSON marshaling. PartitionSort PartitionSort `json:"partitionSort,omitempty"` }
PrimaryKey defines the primary key structure for a table. It can be a single column name or a compound/composite key definition.
func (PrimaryKey) MarshalAstraRaw
func (p PrimaryKey) MarshalAstraRaw(ctx serdes.EncodeCtx, dst []byte) ([]byte, error)
func (*PrimaryKey) UnmarshalAstraRaw
func (p *PrimaryKey) UnmarshalAstraRaw(ctx serdes.DecodeCtx, data []byte) error
type RenameTypeFields
type RenameTypeFields struct { Fields map[string]string `json:"fields"` }
RenameTypeFields is the payload for the alterType "rename" operation.
func (RenameTypeFields) MarshalAstraRaw
func (r RenameTypeFields) MarshalAstraRaw(ctx serdes.EncodeCtx, dst []byte) ([]byte, error)
type RerankService
type RerankService struct { // Provider is the reranking provider name (e.g., "nvidia") Provider string `json:"provider"` // ModelName is the model to use for reranking ModelName string `json:"modelName"` // Authentication contains authentication configuration Authentication map[string]string `json:"authentication,omitempty"` // Parameters contains provider-specific parameters Parameters map[string]string `json:"parameters,omitempty"` }
RerankService defines the configuration for reranking.
type UDTDefinition
type UDTDefinition struct { Fields Columns `json:"fields"` }
func InferUDT
func InferUDT[T any]() (UDTDefinition, error)
InferUDT generates a UDTDefinition from a Go struct's type information.
Field names are taken from json tags (falling back to field names). Type overrides come from astra tags.
See Infer for details on the astra tag grammar.
Example:
type Address struct {
Street string `json:"street"`
City string `json:"city"`
}
def, err := table.InferUDT[Address]()
err := db.CreateType(ctx, "address", def)
type UDTDefinitionBuilder
type UDTDefinitionBuilder struct { // contains filtered or unexported fields }
UDTDefinitionBuilder provides a fluent API for constructing UDT definitions.
func NewUDTDefinition
func NewUDTDefinition() *UDTDefinitionBuilder
NewUDTDefinition creates a new UDTDefinitionBuilder for fluent UDT definition construction.
func (UDTDefinitionBuilder) AddAsciiColumn
func (s UDTDefinitionBuilder) AddAsciiColumn(name string) B
AddAsciiColumn adds an ascii column or field.
func (UDTDefinitionBuilder) AddBigIntColumn
func (s UDTDefinitionBuilder) AddBigIntColumn(name string) B
AddBigIntColumn adds a bigint column or field.
func (UDTDefinitionBuilder) AddBlobColumn
func (s UDTDefinitionBuilder) AddBlobColumn(name string) B
AddBlobColumn adds a blob column or field.
func (UDTDefinitionBuilder) AddBooleanColumn
func (s UDTDefinitionBuilder) AddBooleanColumn(name string) B
AddBooleanColumn adds a boolean column or field.
func (*UDTDefinitionBuilder) AddColumn
func (b *UDTDefinitionBuilder) AddColumn(name string, columnType Column) *UDTDefinitionBuilder
AddColumn adds a field with the specified name and type to the UDT. If a field with the same name already exists, its type is replaced but its position is kept.
func (UDTDefinitionBuilder) AddDateColumn
func (s UDTDefinitionBuilder) AddDateColumn(name string) B
AddDateColumn adds a date column or field.
func (UDTDefinitionBuilder) AddDecimalColumn
func (s UDTDefinitionBuilder) AddDecimalColumn(name string) B
AddDecimalColumn adds a decimal column or field.
func (UDTDefinitionBuilder) AddDoubleColumn
func (s UDTDefinitionBuilder) AddDoubleColumn(name string) B
AddDoubleColumn adds a double column or field.
func (UDTDefinitionBuilder) AddDurationColumn
func (s UDTDefinitionBuilder) AddDurationColumn(name string) B
AddDurationColumn adds a duration column or field.
func (UDTDefinitionBuilder) AddFloatColumn
func (s UDTDefinitionBuilder) AddFloatColumn(name string) B
AddFloatColumn adds a float column or field.
func (UDTDefinitionBuilder) AddInetColumn
func (s UDTDefinitionBuilder) AddInetColumn(name string) B
AddInetColumn adds an inet column or field.
func (UDTDefinitionBuilder) AddIntColumn
func (s UDTDefinitionBuilder) AddIntColumn(name string) B
AddIntColumn adds an int column or field.
func (UDTDefinitionBuilder) AddSmallIntColumn
func (s UDTDefinitionBuilder) AddSmallIntColumn(name string) B
AddSmallIntColumn adds a smallint column or field.
func (UDTDefinitionBuilder) AddTextColumn
func (s UDTDefinitionBuilder) AddTextColumn(name string) B
AddTextColumn adds a text column or field.
func (UDTDefinitionBuilder) AddTimeColumn
func (s UDTDefinitionBuilder) AddTimeColumn(name string) B
AddTimeColumn adds a time column or field.
func (UDTDefinitionBuilder) AddTimeUUIDColumn
func (s UDTDefinitionBuilder) AddTimeUUIDColumn(name string) B
AddTimeUUIDColumn adds a TimeUUID column or field.
func (UDTDefinitionBuilder) AddTimestampColumn
func (s UDTDefinitionBuilder) AddTimestampColumn(name string) B
AddTimestampColumn adds a timestamp column or field.
func (UDTDefinitionBuilder) AddTinyIntColumn
func (s UDTDefinitionBuilder) AddTinyIntColumn(name string) B
AddTinyIntColumn adds a tinyint column or field.
func (UDTDefinitionBuilder) AddUUIDColumn
func (s UDTDefinitionBuilder) AddUUIDColumn(name string) B
AddUUIDColumn adds a UUID column or field.
func (UDTDefinitionBuilder) AddVarintColumn
func (s UDTDefinitionBuilder) AddVarintColumn(name string) B
AddVarintColumn adds a varint column or field.
func (*UDTDefinitionBuilder) Build
func (b *UDTDefinitionBuilder) Build() UDTDefinition
Build constructs the final UDTDefinition from the builder.
type VectorService
type VectorService struct { // Provider is the embedding provider name (e.g., "openai", "nvidia", "azureOpenAI") Provider string `json:"provider"` // ModelName is the model to use for generating embeddings ModelName string `json:"modelName"` // Authentication contains authentication configuration Authentication map[string]string `json:"authentication,omitempty"` // Parameters contains provider-specific parameters Parameters map[string]string `json:"parameters,omitempty"` }
VectorService defines the embedding provider configuration for vectorize