Documentation
¶
Index ¶
- Constants
- Variables
- type Catalog
- type DBColumnInfo
- type DBConstraintInfo
- type DBInfo
- func (s *DBInfo) Build(ctx context.Context, engine engines.Engine, opts base.Options) error
- func (s *DBInfo) CompileOptions() base.Options
- func (s *DBInfo) DefinitionExtensions(ctx context.Context, name string) iter.Seq[*ast.Definition]
- func (s *DBInfo) Definitions(ctx context.Context) iter.Seq[*ast.Definition]
- func (s *DBInfo) Description() string
- func (s *DBInfo) DirectiveDefinitions(ctx context.Context) iter.Seq2[string, *ast.DirectiveDefinition]
- func (s *DBInfo) DirectiveForName(ctx context.Context, name string) *ast.DirectiveDefinition
- func (s *DBInfo) Engine() engines.Engine
- func (s *DBInfo) Extensions(ctx context.Context) iter.Seq[*ast.Definition]
- func (s *DBInfo) ForName(ctx context.Context, name string) *ast.Definition
- func (s *DBInfo) Name() string
- func (s *DBInfo) Version(_ context.Context) (string, error)
- type DBSchemaInfo
- type DBTableInfo
- type DBViewInfo
- type ExtensionCatalog
- type FileSource
- func (s *FileSource) CompileOptions() base.Options
- func (s *FileSource) DefinitionExtensions(ctx context.Context, name string) iter.Seq[*ast.Definition]
- func (s *FileSource) Definitions(ctx context.Context) iter.Seq[*ast.Definition]
- func (s *FileSource) Description() string
- func (s *FileSource) DirectiveDefinitions(ctx context.Context) iter.Seq2[string, *ast.DirectiveDefinition]
- func (s *FileSource) DirectiveForName(ctx context.Context, name string) *ast.DirectiveDefinition
- func (s *FileSource) Engine() engines.Engine
- func (s *FileSource) Extensions(ctx context.Context) iter.Seq[*ast.Definition]
- func (s *FileSource) ForName(ctx context.Context, name string) *ast.Definition
- func (s *FileSource) Name() string
- func (s *FileSource) Reload(_ context.Context) error
- func (s *FileSource) Version(_ context.Context) (string, error)
- type MergedCatalog
- func (mc *MergedCatalog) CompileOptions() base.Options
- func (mc *MergedCatalog) DefinitionExtensions(ctx context.Context, name string) iter.Seq[*ast.Definition]
- func (mc *MergedCatalog) Definitions(ctx context.Context) iter.Seq[*ast.Definition]
- func (mc *MergedCatalog) Description() string
- func (mc *MergedCatalog) DirectiveDefinitions(ctx context.Context) iter.Seq2[string, *ast.DirectiveDefinition]
- func (mc *MergedCatalog) DirectiveForName(ctx context.Context, name string) *ast.DirectiveDefinition
- func (mc *MergedCatalog) Engine() engines.Engine
- func (mc *MergedCatalog) Extensions(ctx context.Context) iter.Seq[*ast.Definition]
- func (mc *MergedCatalog) ForName(ctx context.Context, name string) *ast.Definition
- func (mc *MergedCatalog) Name() string
- func (mc *MergedCatalog) Reload(ctx context.Context) error
- func (mc *MergedCatalog) Version(ctx context.Context) (string, error)
- type ReloadableCatalog
- type StringSource
- func (s *StringSource) CompileOptions() base.Options
- func (s *StringSource) DefinitionExtensions(ctx context.Context, name string) iter.Seq[*ast.Definition]
- func (s *StringSource) Definitions(ctx context.Context) iter.Seq[*ast.Definition]
- func (s *StringSource) Description() string
- func (s *StringSource) DirectiveDefinitions(ctx context.Context) iter.Seq2[string, *ast.DirectiveDefinition]
- func (s *StringSource) DirectiveForName(ctx context.Context, name string) *ast.DirectiveDefinition
- func (s *StringSource) Engine() engines.Engine
- func (s *StringSource) Extensions(ctx context.Context) iter.Seq[*ast.Definition]
- func (s *StringSource) ForName(ctx context.Context, name string) *ast.Definition
- func (s *StringSource) Name() string
- func (s *StringSource) Version(_ context.Context) (string, error)
- type URISource
- func (s *URISource) CompileOptions() base.Options
- func (s *URISource) DefinitionExtensions(ctx context.Context, name string) iter.Seq[*ast.Definition]
- func (s *URISource) Definitions(ctx context.Context) iter.Seq[*ast.Definition]
- func (s *URISource) Description() string
- func (s *URISource) DirectiveDefinitions(ctx context.Context) iter.Seq2[string, *ast.DirectiveDefinition]
- func (s *URISource) DirectiveForName(ctx context.Context, name string) *ast.DirectiveDefinition
- func (s *URISource) Engine() engines.Engine
- func (s *URISource) Extensions(ctx context.Context) iter.Seq[*ast.Definition]
- func (s *URISource) ForName(ctx context.Context, name string) *ast.Definition
- func (s *URISource) Name() string
- func (s *URISource) Reload(ctx context.Context) error
- func (s *URISource) Version(_ context.Context) (string, error)
Constants ¶
View Source
const ( FileSourceType types.CatalogSourceType = "localFS" URISourceType types.CatalogSourceType = "uri" URIFileSourceType types.CatalogSourceType = "uriFile" TextSourceType types.CatalogSourceType = "text" )
Variables ¶
View Source
var ErrNoSourcesByURI = errors.New("no sources found by URI")
Functions ¶
This section is empty.
Types ¶
type Catalog ¶
type Catalog interface {
ingest.Catalog
Name() string
Description() string
// Version returns a version identifier for the catalog contents.
// For file-based sources, this is a content hash (changes when files change).
// For dynamic sources (URI, DB, HTTP), this is a timestamp (always recompiles).
// For runtime sources, this is an embedded version constant.
Version(ctx context.Context) (string, error)
Engine() engines.Engine
}
type DBColumnInfo ¶
type DBColumnInfo struct {
Name string `json:"name"`
Description string `json:"description"`
DataType string `json:"data_type"`
IsNullable bool `json:"is_nullable"`
Default string `json:"default,omitempty"`
}
func (*DBColumnInfo) Definition ¶
func (c *DBColumnInfo) Definition() (*ast.FieldDefinition, error)
type DBConstraintInfo ¶
type DBConstraintInfo struct {
Name string `json:"name"`
Type string `json:"type"` // e.g., PRIMARY KEY, FOREIGN KEY, UNIQUE
Columns []string `json:"columns"` // list of column names involved in the constraint
ReferencesSchema string `json:"references_schema_name,omitempty"` // for foreign keys, the schema of the referenced table
ReferencesTable string `json:"references_table_name,omitempty"` // for foreign keys
ReferencesColumns []string `json:"references_columns,omitempty"` // columns in the referenced table
}
type DBInfo ¶
type DBInfo struct {
InfoName string `json:"name"`
InfoDesc string `json:"description"`
Type string `json:"type"` // e.g., "mysql", "postgres", "duckdb", "memory", etc.
SchemaInfo []DBSchemaInfo `json:"schemas"`
// DefaultSchema is the schema the data source connection is scoped to
// (e.g. the database from a MySQL connection string). Objects in it are
// exposed without a schema module and without a schema prefix in type
// names, the same way as "public" (PostgreSQL) and "main" (DuckDB).
DefaultSchema string `json:"default_schema,omitempty"`
// contains filtered or unexported fields
}
DBInfo holds database introspection results and implements catalog.Catalog directly. Call Build() after deserialization to initialize the catalog provider.
func DescribeDataSource ¶
func (*DBInfo) CompileOptions ¶
func (*DBInfo) DefinitionExtensions ¶
func (*DBInfo) Definitions ¶
func (*DBInfo) Description ¶
func (*DBInfo) DirectiveDefinitions ¶
func (*DBInfo) DirectiveForName ¶
func (*DBInfo) Extensions ¶
type DBSchemaInfo ¶
type DBSchemaInfo struct {
Name string `json:"name"`
Description string `json:"description"`
Tables []DBTableInfo `json:"tables"`
Views []DBViewInfo `json:"views"`
}
func (*DBSchemaInfo) Definitions ¶
func (s *DBSchemaInfo) Definitions(defaultSchema string) (ast.DefinitionList, error)
type DBTableInfo ¶
type DBTableInfo struct {
Name string `json:"name"`
Description string `json:"description"`
SchemaName string `json:"schema_name"`
Columns []DBColumnInfo `json:"columns"`
Constraints []DBConstraintInfo `json:"constraints"`
}
func (*DBTableInfo) Definition ¶
func (t *DBTableInfo) Definition(defaultSchema string) (*ast.Definition, error)
type DBViewInfo ¶
type DBViewInfo struct {
Name string `json:"name"`
SchemaName string `json:"schema_name"`
Description string `json:"description"`
Columns []DBColumnInfo `json:"columns"`
}
func (*DBViewInfo) Definition ¶
func (v *DBViewInfo) Definition(defaultSchema string) (*ast.Definition, error)
type ExtensionCatalog ¶
type ExtensionCatalog interface {
Catalog
base.ExtensionsSource
Deps() []string // Names of other catalog extensions this extension depends on
}
type FileSource ¶
type FileSource struct {
// contains filtered or unexported fields
}
func NewFileSource ¶
func (*FileSource) CompileOptions ¶
func (s *FileSource) CompileOptions() base.Options
func (*FileSource) DefinitionExtensions ¶
func (s *FileSource) DefinitionExtensions(ctx context.Context, name string) iter.Seq[*ast.Definition]
func (*FileSource) Definitions ¶
func (s *FileSource) Definitions(ctx context.Context) iter.Seq[*ast.Definition]
func (*FileSource) Description ¶
func (s *FileSource) Description() string
func (*FileSource) DirectiveDefinitions ¶
func (s *FileSource) DirectiveDefinitions(ctx context.Context) iter.Seq2[string, *ast.DirectiveDefinition]
func (*FileSource) DirectiveForName ¶
func (s *FileSource) DirectiveForName(ctx context.Context, name string) *ast.DirectiveDefinition
func (*FileSource) Engine ¶
func (s *FileSource) Engine() engines.Engine
func (*FileSource) Extensions ¶
func (s *FileSource) Extensions(ctx context.Context) iter.Seq[*ast.Definition]
func (*FileSource) ForName ¶
func (s *FileSource) ForName(ctx context.Context, name string) *ast.Definition
func (*FileSource) Name ¶
func (s *FileSource) Name() string
type MergedCatalog ¶
type MergedCatalog struct {
// contains filtered or unexported fields
}
MergedCatalog combines multiple Catalogs into a single Catalog. Definitions are merged from all sub-catalogs.
func NewMergedCatalog ¶
func (*MergedCatalog) CompileOptions ¶
func (mc *MergedCatalog) CompileOptions() base.Options
func (*MergedCatalog) DefinitionExtensions ¶
func (mc *MergedCatalog) DefinitionExtensions(ctx context.Context, name string) iter.Seq[*ast.Definition]
func (*MergedCatalog) Definitions ¶
func (mc *MergedCatalog) Definitions(ctx context.Context) iter.Seq[*ast.Definition]
func (*MergedCatalog) Description ¶
func (mc *MergedCatalog) Description() string
func (*MergedCatalog) DirectiveDefinitions ¶
func (mc *MergedCatalog) DirectiveDefinitions(ctx context.Context) iter.Seq2[string, *ast.DirectiveDefinition]
func (*MergedCatalog) DirectiveForName ¶
func (mc *MergedCatalog) DirectiveForName(ctx context.Context, name string) *ast.DirectiveDefinition
func (*MergedCatalog) Engine ¶
func (mc *MergedCatalog) Engine() engines.Engine
func (*MergedCatalog) Extensions ¶
func (mc *MergedCatalog) Extensions(ctx context.Context) iter.Seq[*ast.Definition]
func (*MergedCatalog) ForName ¶
func (mc *MergedCatalog) ForName(ctx context.Context, name string) *ast.Definition
func (*MergedCatalog) Name ¶
func (mc *MergedCatalog) Name() string
type ReloadableCatalog ¶
type StringSource ¶
type StringSource struct {
// contains filtered or unexported fields
}
func NewStringSource ¶
func (*StringSource) CompileOptions ¶
func (s *StringSource) CompileOptions() base.Options
func (*StringSource) DefinitionExtensions ¶
func (s *StringSource) DefinitionExtensions(ctx context.Context, name string) iter.Seq[*ast.Definition]
func (*StringSource) Definitions ¶
func (s *StringSource) Definitions(ctx context.Context) iter.Seq[*ast.Definition]
func (*StringSource) Description ¶
func (s *StringSource) Description() string
func (*StringSource) DirectiveDefinitions ¶
func (s *StringSource) DirectiveDefinitions(ctx context.Context) iter.Seq2[string, *ast.DirectiveDefinition]
func (*StringSource) DirectiveForName ¶
func (s *StringSource) DirectiveForName(ctx context.Context, name string) *ast.DirectiveDefinition
func (*StringSource) Engine ¶
func (s *StringSource) Engine() engines.Engine
func (*StringSource) Extensions ¶
func (s *StringSource) Extensions(ctx context.Context) iter.Seq[*ast.Definition]
func (*StringSource) ForName ¶
func (s *StringSource) ForName(ctx context.Context, name string) *ast.Definition
func (*StringSource) Name ¶
func (s *StringSource) Name() string
type URISource ¶
type URISource struct {
// contains filtered or unexported fields
}
func NewURISource ¶
func (*URISource) CompileOptions ¶
func (*URISource) DefinitionExtensions ¶
func (*URISource) Definitions ¶
func (*URISource) Description ¶
func (*URISource) DirectiveDefinitions ¶
func (*URISource) DirectiveForName ¶
func (*URISource) Extensions ¶
Click to show internal directories.
Click to hide internal directories.