Documentation ¶
Index ¶
Constants ¶
const ( FluxCompilerType = "flux" ASTCompilerType = "ast" )
Variables ¶
This section is empty.
Functions ¶
func AddCompilerMappings ¶
func AddCompilerMappings(mappings flux.CompilerMappings) error
AddCompilerMappings adds the Flux specific compiler mappings.
func IsNonNullJSON ¶ added in v0.68.0
func IsNonNullJSON(bs json.RawMessage) bool
Types ¶
type ASTCompiler ¶ added in v0.18.0
type ASTCompiler struct { Extern json.RawMessage `json:"extern,omitempty"` AST json.RawMessage `json:"ast"` Now time.Time }
ASTCompiler implements Compiler by producing a Program from an AST.
func (ASTCompiler) CompilerType ¶ added in v0.18.0
func (ASTCompiler) CompilerType() flux.CompilerType
type AstProgram ¶ added in v0.26.0
type AstProgram struct { *Program Ast flux.ASTHandle Now time.Time // A list of profilers that are profiling this query Profilers []execute.Profiler // contains filtered or unexported fields }
AstProgram wraps a Program with an AST that will be evaluated upon Start. As such, the PlanSpec is populated after Start and evaluation errors are returned by Start.
func Compile ¶ added in v0.26.0
func Compile(ctx context.Context, q string, runtime flux.Runtime, now time.Time, opts ...CompileOption) (*AstProgram, error)
Compile evaluates a Flux script producing a flux.Program. now parameter must be non-zero, that is the default now time should be set before compiling.
func CompileAST ¶ added in v0.26.0
func CompileAST(astPkg flux.ASTHandle, runtime flux.Runtime, now time.Time, opts ...CompileOption) *AstProgram
CompileAST evaluates a Flux handle to an AST and produces a flux.Program. now parameter must be non-zero, that is the default now time should be set before compiling.
type CompileOption ¶ added in v0.26.0
type CompileOption func(*compileOptions)
CompileOption represents an option for compilation.
func WithExtern ¶ added in v0.33.0
func WithExtern(extern flux.ASTHandle) CompileOption
func WithLogPlanOpts ¶ added in v0.26.0
func WithLogPlanOpts(lopts ...plan.LogicalOption) CompileOption
func WithPhysPlanOpts ¶ added in v0.26.0
func WithPhysPlanOpts(popts ...plan.PhysicalOption) CompileOption
type ExecOptsConfig ¶ added in v0.91.0
type ExecOptsConfig struct { }
The ExecOptsConfig structure implements the interpreter.ExecOptsConfig interface, which the interpreter uses to configure options relevant to the execution engine. The interpreter is able to invoke the execution engine via tableFind and others, and therefore must be able to install these options into the execution dependency state. We use an interface to break the import cycle implied by accessing the execution module from the interpreter.
func (*ExecOptsConfig) ConfigureNow ¶ added in v0.91.0
func (eoc *ExecOptsConfig) ConfigureNow(ctx context.Context, now time.Time)
func (*ExecOptsConfig) ConfigureProfiler ¶ added in v0.91.0
func (eoc *ExecOptsConfig) ConfigureProfiler(ctx context.Context, profilerNames []string)
type FluxCompiler ¶
type FluxCompiler struct { Now time.Time Extern json.RawMessage `json:"extern,omitempty"` Query string `json:"query"` }
FluxCompiler compiles a Flux script into a spec.
func (FluxCompiler) CompilerType ¶
func (c FluxCompiler) CompilerType() flux.CompilerType
type LoggingProgram ¶ added in v0.48.0
type Program ¶ added in v0.26.0
type Program struct { Logger *zap.Logger PlanSpec *plan.Spec Runtime flux.Runtime // contains filtered or unexported fields }
Program implements the flux.Program interface. It will execute a compiled plan using an executor.
func CompileTableObject ¶ added in v0.26.0
func CompileTableObject(ctx context.Context, to *flux.TableObject, now time.Time, opts ...CompileOption) (*Program, error)
CompileTableObject evaluates a TableObject and produces a flux.Program. now parameter must be non-zero, that is the default now time should be set before compiling.
type TableObjectCompiler ¶ added in v0.26.0
type TableObjectCompiler struct { Tables *flux.TableObject Now time.Time }
TableObjectCompiler compiles a TableObject into an executable flux.Program. It is not added to CompilerMappings and it is not serializable, because it is impossible to use it outside of the context of an ongoing execution.
func (*TableObjectCompiler) CompilerType ¶ added in v0.26.0
func (*TableObjectCompiler) CompilerType() flux.CompilerType