Documentation
¶
Index ¶
- Constants
- func New(config Config) gorm.Dialector
- func NewWithExtensions(config Config, extensionConfig *ExtensionConfig) gorm.Dialector
- func Open(dsn string) gorm.Dialector
- func OpenWithExtensions(dsn string, extensionConfig *ExtensionConfig) gorm.Dialector
- type ArrayLiteral
- type Config
- type Dialector
- func (dialector Dialector) BindVarTo(writer clause.Writer, stmt *gorm.Statement, v interface{})
- func (dialector Dialector) DataTypeOf(field *schema.Field) string
- func (dialector Dialector) DefaultValueOf(field *schema.Field) clause.Expression
- func (dialector Dialector) Explain(sql string, vars ...interface{}) string
- func (dialector Dialector) Initialize(db *gorm.DB) error
- func (dialector Dialector) Migrator(db *gorm.DB) gorm.Migrator
- func (dialector Dialector) Name() string
- func (dialector Dialector) QuoteTo(writer clause.Writer, str string)
- func (dialector Dialector) RollbackTo(tx *gorm.DB, name string) error
- func (dialector Dialector) SavePoint(tx *gorm.DB, name string) error
- type Extension
- type ExtensionConfig
- type ExtensionHelper
- func (h *ExtensionHelper) EnableAnalytics() error
- func (h *ExtensionHelper) EnableCloudAccess() error
- func (h *ExtensionHelper) EnableDataFormats() error
- func (h *ExtensionHelper) EnableMachineLearning() error
- func (h *ExtensionHelper) EnableSpatial() error
- func (h *ExtensionHelper) EnableTimeSeries() error
- type ExtensionManager
- func (m *ExtensionManager) GetExtension(name string) (*Extension, error)
- func (m *ExtensionManager) GetLoadedExtensions() ([]Extension, error)
- func (m *ExtensionManager) InstallExtension(name string) error
- func (m *ExtensionManager) IsExtensionLoaded(name string) bool
- func (m *ExtensionManager) ListExtensions() ([]Extension, error)
- func (m *ExtensionManager) LoadExtension(name string) error
- func (m *ExtensionManager) LoadExtensions(names []string) error
- func (m *ExtensionManager) PreloadExtensions() error
- type FloatArray
- type IntArray
- type Migrator
- func (m Migrator) AlterColumn(value interface{}, field string) error
- func (m Migrator) CreateView(name string, option gorm.ViewOption) error
- func (m Migrator) CurrentDatabase() (name string)
- func (m Migrator) DropConstraint(value interface{}, name string) error
- func (m Migrator) DropIndex(value interface{}, name string) error
- func (m Migrator) DropView(name string) error
- func (m Migrator) FullDataTypeOf(field *schema.Field) clause.Expr
- func (m Migrator) GetTables() (tableList []string, err error)
- func (m Migrator) GetTypeAliases(databaseTypeName string) []string
- func (m Migrator) HasColumn(value interface{}, field string) bool
- func (m Migrator) HasConstraint(value interface{}, name string) bool
- func (m Migrator) HasIndex(value interface{}, name string) bool
- func (m Migrator) HasTable(value interface{}) bool
- func (m Migrator) RenameColumn(value interface{}, oldName, newName string) error
- func (m Migrator) RenameIndex(value interface{}, oldName, newName string) error
- type SimpleArrayScanner
- type StringArray
Constants ¶
const ( // Core Extensions (built-in) ExtensionJSON = "json" ExtensionParquet = "parquet" ExtensionICU = "icu" // Analytics Extensions ExtensionAutoComplete = "autocomplete" ExtensionFTS = "fts" ExtensionTPC_H = "tpch" ExtensionTPC_DS = "tpcds" // Data Format Extensions ExtensionCSV = "csv" ExtensionExcel = "excel" ExtensionArrow = "arrow" ExtensionSQLite = "sqlite" // Networking Extensions ExtensionHTTPS = "httpfs" ExtensionS3 = "aws" ExtensionAzure = "azure" // Geospatial Extensions ExtensionSpatial = "spatial" // Machine Learning Extensions ExtensionML = "ml" // Time Series Extensions ExtensionTimeSeries = "timeseries" // Visualization Extensions ExtensionVisualization = "visualization" )
Common DuckDB extensions
Variables ¶
This section is empty.
Functions ¶
func NewWithExtensions ¶
func NewWithExtensions(config Config, extensionConfig *ExtensionConfig) gorm.Dialector
NewWithExtensions creates a new dialector with extension support
func OpenWithExtensions ¶
func OpenWithExtensions(dsn string, extensionConfig *ExtensionConfig) gorm.Dialector
OpenWithExtensions creates a dialector with extension support using DSN
Types ¶
type ArrayLiteral ¶
type ArrayLiteral struct {
Data interface{}
}
ArrayLiteral wraps a Go slice to be formatted as a DuckDB array literal
type Dialector ¶
type Dialector struct {
*Config
}
func (Dialector) DefaultValueOf ¶
func (dialector Dialector) DefaultValueOf(field *schema.Field) clause.Expression
type Extension ¶
type Extension struct { Name string `json:"name"` Description string `json:"description,omitempty"` Loaded bool `json:"loaded"` Installed bool `json:"installed"` BuiltIn bool `json:"built_in,omitempty"` Version string `json:"version,omitempty"` }
Extension represents a DuckDB extension with its metadata and status
type ExtensionConfig ¶
type ExtensionConfig struct { // AutoInstall automatically installs extensions when loading AutoInstall bool // PreloadExtensions list of extensions to load on database connection PreloadExtensions []string // Timeout for extension operations (0 = no timeout) Timeout time.Duration // RepositoryURL custom extension repository URL RepositoryURL string // AllowUnsigned allows loading unsigned extensions (security risk) AllowUnsigned bool }
ExtensionConfig holds configuration for extension management
type ExtensionHelper ¶
type ExtensionHelper struct {
// contains filtered or unexported fields
}
ExtensionHelper provides convenience methods for common extension operations
func NewExtensionHelper ¶
func NewExtensionHelper(manager *ExtensionManager) *ExtensionHelper
NewExtensionHelper creates a new extension helper
func (*ExtensionHelper) EnableAnalytics ¶
func (h *ExtensionHelper) EnableAnalytics() error
EnableAnalytics loads common analytics extensions
func (*ExtensionHelper) EnableCloudAccess ¶
func (h *ExtensionHelper) EnableCloudAccess() error
EnableCloudAccess loads cloud storage extensions
func (*ExtensionHelper) EnableDataFormats ¶
func (h *ExtensionHelper) EnableDataFormats() error
EnableDataFormats loads common data format extensions
func (*ExtensionHelper) EnableMachineLearning ¶
func (h *ExtensionHelper) EnableMachineLearning() error
EnableMachineLearning loads ML extensions
func (*ExtensionHelper) EnableSpatial ¶
func (h *ExtensionHelper) EnableSpatial() error
EnableSpatial loads geospatial extensions
func (*ExtensionHelper) EnableTimeSeries ¶
func (h *ExtensionHelper) EnableTimeSeries() error
EnableTimeSeries loads time series extensions
type ExtensionManager ¶
type ExtensionManager struct {
// contains filtered or unexported fields
}
ExtensionManager handles DuckDB extension operations
func GetExtensionManager ¶
func GetExtensionManager(db *gorm.DB) (*ExtensionManager, error)
GetExtensionManager retrieves the extension manager from a database instance
func MustGetExtensionManager ¶
func MustGetExtensionManager(db *gorm.DB) *ExtensionManager
MustGetExtensionManager retrieves the extension manager, panics if not found
func NewExtensionManager ¶
func NewExtensionManager(db *gorm.DB, config *ExtensionConfig) *ExtensionManager
NewExtensionManager creates a new extension manager instance
func (*ExtensionManager) GetExtension ¶
func (m *ExtensionManager) GetExtension(name string) (*Extension, error)
GetExtension returns information about a specific extension
func (*ExtensionManager) GetLoadedExtensions ¶
func (m *ExtensionManager) GetLoadedExtensions() ([]Extension, error)
GetLoadedExtensions returns all currently loaded extensions
func (*ExtensionManager) InstallExtension ¶
func (m *ExtensionManager) InstallExtension(name string) error
InstallExtension installs an extension from the repository
func (*ExtensionManager) IsExtensionLoaded ¶
func (m *ExtensionManager) IsExtensionLoaded(name string) bool
IsExtensionLoaded checks if an extension is currently loaded
func (*ExtensionManager) ListExtensions ¶
func (m *ExtensionManager) ListExtensions() ([]Extension, error)
ListExtensions returns all available extensions
func (*ExtensionManager) LoadExtension ¶
func (m *ExtensionManager) LoadExtension(name string) error
LoadExtension loads an extension, optionally installing it first
func (*ExtensionManager) LoadExtensions ¶
func (m *ExtensionManager) LoadExtensions(names []string) error
LoadExtensions loads multiple extensions
func (*ExtensionManager) PreloadExtensions ¶
func (m *ExtensionManager) PreloadExtensions() error
PreloadExtensions loads all configured preload extensions
type FloatArray ¶
type FloatArray []float64
FloatArray represents a DuckDB DOUBLE[] array type
func (FloatArray) GormDataType ¶
func (FloatArray) GormDataType() string
GormDataType implements the GormDataTypeInterface for FloatArray
func (*FloatArray) Scan ¶
func (a *FloatArray) Scan(value interface{}) error
Scan implements sql.Scanner interface for FloatArray
type IntArray ¶
type IntArray []int64
IntArray represents a DuckDB INTEGER[] array type
func (IntArray) GormDataType ¶
GormDataType implements the GormDataTypeInterface for IntArray
type Migrator ¶
func (Migrator) AlterColumn ¶
func (Migrator) CreateView ¶
func (m Migrator) CreateView(name string, option gorm.ViewOption) error
func (Migrator) CurrentDatabase ¶
func (Migrator) DropConstraint ¶
func (Migrator) FullDataTypeOf ¶
Override FullDataTypeOf to prevent GORM from adding duplicate PRIMARY KEY clauses
func (Migrator) GetTypeAliases ¶
func (Migrator) HasConstraint ¶
func (Migrator) RenameColumn ¶
func (Migrator) RenameIndex ¶
type SimpleArrayScanner ¶
type SimpleArrayScanner struct {
Target interface{} // Pointer to slice
}
SimpleArrayScanner provides basic array scanning functionality
func (*SimpleArrayScanner) Scan ¶
func (sas *SimpleArrayScanner) Scan(value interface{}) error
Scan implements sql.Scanner for basic array types
type StringArray ¶
type StringArray []string
StringArray represents a DuckDB TEXT[] array type
func (StringArray) GormDataType ¶
func (StringArray) GormDataType() string
GormDataType implements the GormDataTypeInterface for StringArray
func (*StringArray) Scan ¶
func (a *StringArray) Scan(value interface{}) error
Scan implements sql.Scanner interface for StringArray