Documentation
¶
Index ¶
- func AssetTypeToDialect(assetType pipeline.AssetType) (string, error)
- type ColumnLineage
- type Lineage
- type Parser
- type QueryConfig
- type RustSQLParser
- func (s *RustSQLParser) AddLimit(sql string, limit int, dialect string) (string, error)
- func (s *RustSQLParser) Close() error
- func (s *RustSQLParser) ColumnLineage(sql, dialect string, schema Schema) (*Lineage, error)
- func (s *RustSQLParser) GetMissingDependenciesForAsset(asset *pipeline.Asset, pipeline *pipeline.Pipeline, ...) ([]string, error)
- func (s *RustSQLParser) HoistDeclares(sql string, assetType pipeline.AssetType) (string, error)
- func (s *RustSQLParser) HoistDeclaresList(queries []string, assetType pipeline.AssetType) ([]string, error)
- func (s *RustSQLParser) IsSingleSelectQuery(sql string, dialect string) (bool, error)
- func (s *RustSQLParser) RenameTables(sql string, dialect string, tableMapping map[string]string) (string, error)
- func (s *RustSQLParser) Start() error
- func (s *RustSQLParser) UsedTables(sql, dialect string) ([]string, error)
- type SQLParser
- func (s *SQLParser) AddLimit(sql string, limit int, dialect string) (string, error)
- func (s *SQLParser) Close() error
- func (s *SQLParser) ColumnLineage(sql, dialect string, schema Schema) (*Lineage, error)
- func (s *SQLParser) GetMissingDependenciesForAsset(asset *pipeline.Asset, pipeline *pipeline.Pipeline, ...) ([]string, error)
- func (s *SQLParser) IsSingleSelectQuery(sql string, dialect string) (bool, error)
- func (s *SQLParser) RenameTables(sql string, dialect string, tableMapping map[string]string) (string, error)
- func (s *SQLParser) Start() error
- func (s *SQLParser) UsedTables(sql, dialect string) ([]string, error)
- type Schema
- type UpstreamColumn
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ColumnLineage ¶
type ColumnLineage struct {
Name string `json:"name"`
Upstream []UpstreamColumn `json:"upstream"`
Type string `json:"type"`
}
type Lineage ¶
type Lineage struct {
Columns []ColumnLineage `json:"columns"`
NonSelectedColumns []ColumnLineage `json:"non_selected_columns"`
Errors []string `json:"errors"`
}
type Parser ¶ added in v0.11.488
type Parser interface {
Start() error
ColumnLineage(sql, dialect string, schema Schema) (*Lineage, error)
UsedTables(sql, dialect string) ([]string, error)
RenameTables(sql, dialect string, tableMapping map[string]string) (string, error)
AddLimit(sql string, limit int, dialect string) (string, error)
IsSingleSelectQuery(sql string, dialect string) (bool, error)
GetMissingDependenciesForAsset(asset *pipeline.Asset, pipeline *pipeline.Pipeline, renderer jinja.RendererInterface) ([]string, error)
Close() error
}
type QueryConfig ¶
type RustSQLParser ¶ added in v0.11.488
type RustSQLParser struct {
MaxQueryLength int
}
func NewRustSQLParser ¶ added in v0.11.488
func NewRustSQLParser(_ bool) (*RustSQLParser, error)
func NewRustSQLParserWithConfig ¶ added in v0.11.488
func NewRustSQLParserWithConfig(_ bool, maxQueryLength int) (*RustSQLParser, error)
func (*RustSQLParser) Close ¶ added in v0.11.488
func (s *RustSQLParser) Close() error
func (*RustSQLParser) ColumnLineage ¶ added in v0.11.488
func (s *RustSQLParser) ColumnLineage(sql, dialect string, schema Schema) (*Lineage, error)
func (*RustSQLParser) GetMissingDependenciesForAsset ¶ added in v0.11.488
func (s *RustSQLParser) GetMissingDependenciesForAsset(asset *pipeline.Asset, pipeline *pipeline.Pipeline, renderer jinja.RendererInterface) ([]string, error)
func (*RustSQLParser) HoistDeclares ¶ added in v0.11.587
HoistDeclares reorders top-level DECLARE statements to the front of a multi-statement script via the in-process Rust SQL parser. Each statement's original text is preserved byte-for-byte; only the order and ';\n' separators are rewritten. DECLAREs nested inside BEGIN..END / CASE..END stay put. On dialect lookup or parse failure the input is returned together with the error so callers can fall back gracefully.
func (*RustSQLParser) HoistDeclaresList ¶ added in v0.11.587
func (s *RustSQLParser) HoistDeclaresList(queries []string, assetType pipeline.AssetType) ([]string, error)
HoistDeclaresList reorders a list of pre-split SQL statements so DECLAREs lead, preserving each element's text verbatim.
func (*RustSQLParser) IsSingleSelectQuery ¶ added in v0.11.488
func (s *RustSQLParser) IsSingleSelectQuery(sql string, dialect string) (bool, error)
func (*RustSQLParser) RenameTables ¶ added in v0.11.488
func (*RustSQLParser) Start ¶ added in v0.11.488
func (s *RustSQLParser) Start() error
Start is idempotent and effectively free: the Rust SQL parser lives in-process behind CGo, with no subprocess to spin up or state to track. It only verifies that the FFI library is linked (a compile-time guarantee on darwin/linux) and otherwise returns nil. Calling it repeatedly — or not at all — has no effect. Methods like HoistDeclares do not call it internally, so there is no double-start hazard.
func (*RustSQLParser) UsedTables ¶ added in v0.11.488
func (s *RustSQLParser) UsedTables(sql, dialect string) ([]string, error)
type SQLParser ¶
type SQLParser struct {
MaxQueryLength int
// contains filtered or unexported fields
}
func NewSQLParser ¶
func NewSQLParserCached ¶ added in v0.11.497
NewSQLParserCached creates a SQLParser that reuses previously extracted embedded files from a stable temp directory path. This is significantly faster when files already exist (skips ~3s of file extraction) and is safe for concurrent reads across test packages.