Documentation ¶
Index ¶
- Constants
- Variables
- func NewChangesTransformation(d execute.Dataset, cache execute.TableBuilderCache, spec *ChangesProcedureSpec) *changesTransformation
- func NewExtrapolatedRateTransformation(d execute.Dataset, cache execute.TableBuilderCache, ...) *extrapolatedRateTransformation
- func NewHistogramQuantileTransformation(d execute.Dataset, cache execute.TableBuilderCache, ...) execute.Transformation
- func NewHoltWintersTransformation(d execute.Dataset, cache execute.TableBuilderCache, ...) *holtWintersTransformation
- func NewInstantRateTransformation(d execute.Dataset, cache execute.TableBuilderCache, ...) *instantRateTransformation
- func NewLabelReplaceTransformation(d execute.Dataset, cache execute.TableBuilderCache, ...) *labelReplaceTransformation
- func NewLinearRegressionTransformation(d execute.Dataset, cache execute.TableBuilderCache, ...) *linearRegressionTransformation
- func NewResetsTransformation(d execute.Dataset, cache execute.TableBuilderCache, spec *ResetsProcedureSpec) *resetsTransformation
- func NewTimestampTransformation(d execute.Dataset, cache execute.TableBuilderCache, ...) *timestampTransformation
- type ChangesOpSpec
- type ChangesProcedureSpec
- type EmptyTableOpSpec
- type EmptyTableProcedureSpec
- type EmptyTableSource
- type ExtrapolatedRateOpSpec
- type ExtrapolatedRateProcedureSpec
- type HistogramQuantileOpSpec
- type HistogramQuantileProcedureSpec
- type HoltWintersOpSpec
- type HoltWintersProcedureSpec
- type InstantRateOpSpec
- type InstantRateProcedureSpec
- type LabelReplaceOpSpec
- type LabelReplaceProcedureSpec
- type LinearRegressionOpSpec
- type LinearRegressionProcedureSpec
- type ResetsOpSpec
- type ResetsProcedureSpec
- type TimestampOpSpec
- type TimestampProcedureSpec
Constants ¶
View Source
const ChangesKind = "changes"
View Source
const DefaultUpperBoundColumnLabel = "le"
View Source
const EmptyTableKind = "emptyTable"
View Source
const ExtrapolatedRateKind = "extrapolatedRate"
View Source
const HistogramQuantileKind = "promHistogramQuantile"
TODO: Added "prom" prefix to avoid duplicate registration error. Decide whether to remove universe version of this function.
View Source
const HoltWintersKind = "promHoltWinters"
View Source
const InstantRateKind = "instantRate"
View Source
const (
// LabelReplaceKind is the Kind for the LabelReplace Flux function
LabelReplaceKind = "labelReplace"
)
View Source
const LinearRegressionKind = "linearRegression"
View Source
const ResetsKind = "resets"
View Source
const (
// TimestampKind is the Kind for the Timestamp Flux function
TimestampKind = "timestamp"
)
Variables ¶
View Source
var FluxTestPackages = []*ast.Package{&ast.Package{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: nil, }, Files: []*ast.File{&ast.File{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 103, Line: 108, }, File: "join_test.flux", Source: "package promql_test\n\n\nimport \"internal/promql\"\nimport \"testing\"\n\ninData =\n \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,0,2018-12-19T22:13:30Z,_m,a,t,1\n,,0,2018-12-19T22:13:40Z,_m,a,t,2\n,,0,2018-12-19T22:13:50Z,_m,a,t,3\n,,0,2018-12-19T22:14:00Z,_m,a,t,4\n,,0,2018-12-19T22:14:10Z,_m,a,t,5\n,,0,2018-12-19T22:14:20Z,_m,a,t,6\n,,1,2018-12-19T22:13:30Z,_m,a,g,2\n,,1,2018-12-19T22:13:40Z,_m,a,g,3\n,,1,2018-12-19T22:13:50Z,_m,a,g,4\n,,1,2018-12-19T22:14:00Z,_m,a,g,5\n,,1,2018-12-19T22:14:10Z,_m,a,g,6\n,,1,2018-12-19T22:14:20Z,_m,a,g,7\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,2,2018-12-19T22:13:30Z,_m,a,t,1\n,,2,2018-12-19T22:13:40Z,_m,a,t,2\n,,2,2018-12-19T22:13:50Z,_m,a,t,3\n,,2,2018-12-19T22:14:00Z,_m,a,t,4\n,,2,2018-12-19T22:14:10Z,_m,a,t,5\n,,2,2018-12-19T22:14:20Z,_m,a,t,6\n,,3,2018-12-19T22:13:30Z,_m,a,g,1\n,,3,2018-12-19T22:13:40Z,_m,a,g,2\n,,3,2018-12-19T22:13:50Z,_m,a,g,3\n,,3,2018-12-19T22:14:00Z,_m,a,g,4\n,,3,2018-12-19T22:14:10Z,_m,a,g,5\n,,3,2018-12-19T22:14:20Z,_m,a,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,4,2018-12-19T22:13:30Z,_m,b,s,1\n,,4,2018-12-19T22:13:40Z,_m,b,s,2\n,,4,2018-12-19T22:13:50Z,_m,b,s,3\n,,4,2018-12-19T22:14:00Z,_m,b,s,4\n,,4,2018-12-19T22:14:10Z,_m,b,s,5\n,,4,2018-12-19T22:14:20Z,_m,b,s,6\n,,5,2018-12-19T22:13:30Z,_m,b,g,1\n,,5,2018-12-19T22:13:40Z,_m,b,g,2\n,,5,2018-12-19T22:13:50Z,_m,b,g,3\n,,5,2018-12-19T22:14:00Z,_m,b,g,4\n,,5,2018-12-19T22:14:10Z,_m,b,g,5\n,,5,2018-12-19T22:14:20Z,_m,b,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,6,2018-12-19T22:13:30Z,_m,b,s,1\n,,6,2018-12-19T22:13:40Z,_m,b,s,2\n,,6,2018-12-19T22:13:50Z,_m,b,s,3\n,,6,2018-12-19T22:14:00Z,_m,b,s,4\n,,6,2018-12-19T22:14:10Z,_m,b,s,5\n,,6,2018-12-19T22:14:20Z,_m,b,s,6\n,,7,2018-12-19T22:13:30Z,_m,b,p,1\n,,7,2018-12-19T22:13:40Z,_m,b,p,2\n,,7,2018-12-19T22:13:50Z,_m,b,p,3\n,,7,2018-12-19T22:14:00Z,_m,b,p,4\n,,7,2018-12-19T22:14:10Z,_m,b,p,5\n,,7,2018-12-19T22:14:20Z,_m,b,p,6\n\"\noutData =\n \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,string,double,double\n#group,false,false,true,true,false,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_measurement,tag0,value_a,value_b\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:30Z,_m,g,2,1\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:40Z,_m,g,3,2\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:50Z,_m,g,4,3\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:00Z,_m,g,5,4\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:10Z,_m,g,6,5\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:20Z,_m,g,7,6\n\"\njoin_test_fn = (table=<-) => {\n a =\n table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"a\")\n |> drop(columns: [\"_field\"])\n |> rename(columns: {_value: \"value_a\"})\n b =\n table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"b\")\n |> drop(columns: [\"_field\"])\n |> rename(columns: {_value: \"value_b\"})\n\n return promql.join(left: a, right: b, fn: (left, right) => ({left with value_b: right.value_b}))\n}\n\ntest prom_join = () =>\n ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})", Start: ast.Position{ Column: 1, Line: 1, }, }, }, Body: []ast.Statement{&ast.VariableAssignment{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 2, Line: 76, }, File: "join_test.flux", Source: "inData =\n \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,0,2018-12-19T22:13:30Z,_m,a,t,1\n,,0,2018-12-19T22:13:40Z,_m,a,t,2\n,,0,2018-12-19T22:13:50Z,_m,a,t,3\n,,0,2018-12-19T22:14:00Z,_m,a,t,4\n,,0,2018-12-19T22:14:10Z,_m,a,t,5\n,,0,2018-12-19T22:14:20Z,_m,a,t,6\n,,1,2018-12-19T22:13:30Z,_m,a,g,2\n,,1,2018-12-19T22:13:40Z,_m,a,g,3\n,,1,2018-12-19T22:13:50Z,_m,a,g,4\n,,1,2018-12-19T22:14:00Z,_m,a,g,5\n,,1,2018-12-19T22:14:10Z,_m,a,g,6\n,,1,2018-12-19T22:14:20Z,_m,a,g,7\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,2,2018-12-19T22:13:30Z,_m,a,t,1\n,,2,2018-12-19T22:13:40Z,_m,a,t,2\n,,2,2018-12-19T22:13:50Z,_m,a,t,3\n,,2,2018-12-19T22:14:00Z,_m,a,t,4\n,,2,2018-12-19T22:14:10Z,_m,a,t,5\n,,2,2018-12-19T22:14:20Z,_m,a,t,6\n,,3,2018-12-19T22:13:30Z,_m,a,g,1\n,,3,2018-12-19T22:13:40Z,_m,a,g,2\n,,3,2018-12-19T22:13:50Z,_m,a,g,3\n,,3,2018-12-19T22:14:00Z,_m,a,g,4\n,,3,2018-12-19T22:14:10Z,_m,a,g,5\n,,3,2018-12-19T22:14:20Z,_m,a,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,4,2018-12-19T22:13:30Z,_m,b,s,1\n,,4,2018-12-19T22:13:40Z,_m,b,s,2\n,,4,2018-12-19T22:13:50Z,_m,b,s,3\n,,4,2018-12-19T22:14:00Z,_m,b,s,4\n,,4,2018-12-19T22:14:10Z,_m,b,s,5\n,,4,2018-12-19T22:14:20Z,_m,b,s,6\n,,5,2018-12-19T22:13:30Z,_m,b,g,1\n,,5,2018-12-19T22:13:40Z,_m,b,g,2\n,,5,2018-12-19T22:13:50Z,_m,b,g,3\n,,5,2018-12-19T22:14:00Z,_m,b,g,4\n,,5,2018-12-19T22:14:10Z,_m,b,g,5\n,,5,2018-12-19T22:14:20Z,_m,b,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,6,2018-12-19T22:13:30Z,_m,b,s,1\n,,6,2018-12-19T22:13:40Z,_m,b,s,2\n,,6,2018-12-19T22:13:50Z,_m,b,s,3\n,,6,2018-12-19T22:14:00Z,_m,b,s,4\n,,6,2018-12-19T22:14:10Z,_m,b,s,5\n,,6,2018-12-19T22:14:20Z,_m,b,s,6\n,,7,2018-12-19T22:13:30Z,_m,b,p,1\n,,7,2018-12-19T22:13:40Z,_m,b,p,2\n,,7,2018-12-19T22:13:50Z,_m,b,p,3\n,,7,2018-12-19T22:14:00Z,_m,b,p,4\n,,7,2018-12-19T22:14:10Z,_m,b,p,5\n,,7,2018-12-19T22:14:20Z,_m,b,p,6\n\"", Start: ast.Position{ Column: 1, Line: 7, }, }, }, ID: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 7, Line: 7, }, File: "join_test.flux", Source: "inData", Start: ast.Position{ Column: 1, Line: 7, }, }, }, Name: "inData", }, Init: &ast.StringLiteral{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 2, Line: 76, }, File: "join_test.flux", Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,0,2018-12-19T22:13:30Z,_m,a,t,1\n,,0,2018-12-19T22:13:40Z,_m,a,t,2\n,,0,2018-12-19T22:13:50Z,_m,a,t,3\n,,0,2018-12-19T22:14:00Z,_m,a,t,4\n,,0,2018-12-19T22:14:10Z,_m,a,t,5\n,,0,2018-12-19T22:14:20Z,_m,a,t,6\n,,1,2018-12-19T22:13:30Z,_m,a,g,2\n,,1,2018-12-19T22:13:40Z,_m,a,g,3\n,,1,2018-12-19T22:13:50Z,_m,a,g,4\n,,1,2018-12-19T22:14:00Z,_m,a,g,5\n,,1,2018-12-19T22:14:10Z,_m,a,g,6\n,,1,2018-12-19T22:14:20Z,_m,a,g,7\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,2,2018-12-19T22:13:30Z,_m,a,t,1\n,,2,2018-12-19T22:13:40Z,_m,a,t,2\n,,2,2018-12-19T22:13:50Z,_m,a,t,3\n,,2,2018-12-19T22:14:00Z,_m,a,t,4\n,,2,2018-12-19T22:14:10Z,_m,a,t,5\n,,2,2018-12-19T22:14:20Z,_m,a,t,6\n,,3,2018-12-19T22:13:30Z,_m,a,g,1\n,,3,2018-12-19T22:13:40Z,_m,a,g,2\n,,3,2018-12-19T22:13:50Z,_m,a,g,3\n,,3,2018-12-19T22:14:00Z,_m,a,g,4\n,,3,2018-12-19T22:14:10Z,_m,a,g,5\n,,3,2018-12-19T22:14:20Z,_m,a,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,4,2018-12-19T22:13:30Z,_m,b,s,1\n,,4,2018-12-19T22:13:40Z,_m,b,s,2\n,,4,2018-12-19T22:13:50Z,_m,b,s,3\n,,4,2018-12-19T22:14:00Z,_m,b,s,4\n,,4,2018-12-19T22:14:10Z,_m,b,s,5\n,,4,2018-12-19T22:14:20Z,_m,b,s,6\n,,5,2018-12-19T22:13:30Z,_m,b,g,1\n,,5,2018-12-19T22:13:40Z,_m,b,g,2\n,,5,2018-12-19T22:13:50Z,_m,b,g,3\n,,5,2018-12-19T22:14:00Z,_m,b,g,4\n,,5,2018-12-19T22:14:10Z,_m,b,g,5\n,,5,2018-12-19T22:14:20Z,_m,b,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,6,2018-12-19T22:13:30Z,_m,b,s,1\n,,6,2018-12-19T22:13:40Z,_m,b,s,2\n,,6,2018-12-19T22:13:50Z,_m,b,s,3\n,,6,2018-12-19T22:14:00Z,_m,b,s,4\n,,6,2018-12-19T22:14:10Z,_m,b,s,5\n,,6,2018-12-19T22:14:20Z,_m,b,s,6\n,,7,2018-12-19T22:13:30Z,_m,b,p,1\n,,7,2018-12-19T22:13:40Z,_m,b,p,2\n,,7,2018-12-19T22:13:50Z,_m,b,p,3\n,,7,2018-12-19T22:14:00Z,_m,b,p,4\n,,7,2018-12-19T22:14:10Z,_m,b,p,5\n,,7,2018-12-19T22:14:20Z,_m,b,p,6\n\"", Start: ast.Position{ Column: 5, Line: 8, }, }, }, Value: "\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,0,2018-12-19T22:13:30Z,_m,a,t,1\n,,0,2018-12-19T22:13:40Z,_m,a,t,2\n,,0,2018-12-19T22:13:50Z,_m,a,t,3\n,,0,2018-12-19T22:14:00Z,_m,a,t,4\n,,0,2018-12-19T22:14:10Z,_m,a,t,5\n,,0,2018-12-19T22:14:20Z,_m,a,t,6\n,,1,2018-12-19T22:13:30Z,_m,a,g,2\n,,1,2018-12-19T22:13:40Z,_m,a,g,3\n,,1,2018-12-19T22:13:50Z,_m,a,g,4\n,,1,2018-12-19T22:14:00Z,_m,a,g,5\n,,1,2018-12-19T22:14:10Z,_m,a,g,6\n,,1,2018-12-19T22:14:20Z,_m,a,g,7\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,2,2018-12-19T22:13:30Z,_m,a,t,1\n,,2,2018-12-19T22:13:40Z,_m,a,t,2\n,,2,2018-12-19T22:13:50Z,_m,a,t,3\n,,2,2018-12-19T22:14:00Z,_m,a,t,4\n,,2,2018-12-19T22:14:10Z,_m,a,t,5\n,,2,2018-12-19T22:14:20Z,_m,a,t,6\n,,3,2018-12-19T22:13:30Z,_m,a,g,1\n,,3,2018-12-19T22:13:40Z,_m,a,g,2\n,,3,2018-12-19T22:13:50Z,_m,a,g,3\n,,3,2018-12-19T22:14:00Z,_m,a,g,4\n,,3,2018-12-19T22:14:10Z,_m,a,g,5\n,,3,2018-12-19T22:14:20Z,_m,a,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,4,2018-12-19T22:13:30Z,_m,b,s,1\n,,4,2018-12-19T22:13:40Z,_m,b,s,2\n,,4,2018-12-19T22:13:50Z,_m,b,s,3\n,,4,2018-12-19T22:14:00Z,_m,b,s,4\n,,4,2018-12-19T22:14:10Z,_m,b,s,5\n,,4,2018-12-19T22:14:20Z,_m,b,s,6\n,,5,2018-12-19T22:13:30Z,_m,b,g,1\n,,5,2018-12-19T22:13:40Z,_m,b,g,2\n,,5,2018-12-19T22:13:50Z,_m,b,g,3\n,,5,2018-12-19T22:14:00Z,_m,b,g,4\n,,5,2018-12-19T22:14:10Z,_m,b,g,5\n,,5,2018-12-19T22:14:20Z,_m,b,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,6,2018-12-19T22:13:30Z,_m,b,s,1\n,,6,2018-12-19T22:13:40Z,_m,b,s,2\n,,6,2018-12-19T22:13:50Z,_m,b,s,3\n,,6,2018-12-19T22:14:00Z,_m,b,s,4\n,,6,2018-12-19T22:14:10Z,_m,b,s,5\n,,6,2018-12-19T22:14:20Z,_m,b,s,6\n,,7,2018-12-19T22:13:30Z,_m,b,p,1\n,,7,2018-12-19T22:13:40Z,_m,b,p,2\n,,7,2018-12-19T22:13:50Z,_m,b,p,3\n,,7,2018-12-19T22:14:00Z,_m,b,p,4\n,,7,2018-12-19T22:14:10Z,_m,b,p,5\n,,7,2018-12-19T22:14:20Z,_m,b,p,6\n", }, }, &ast.VariableAssignment{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 2, Line: 89, }, File: "join_test.flux", Source: "outData =\n \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,string,double,double\n#group,false,false,true,true,false,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_measurement,tag0,value_a,value_b\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:30Z,_m,g,2,1\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:40Z,_m,g,3,2\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:50Z,_m,g,4,3\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:00Z,_m,g,5,4\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:10Z,_m,g,6,5\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:20Z,_m,g,7,6\n\"", Start: ast.Position{ Column: 1, Line: 77, }, }, }, ID: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 8, Line: 77, }, File: "join_test.flux", Source: "outData", Start: ast.Position{ Column: 1, Line: 77, }, }, }, Name: "outData", }, Init: &ast.StringLiteral{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 2, Line: 89, }, File: "join_test.flux", Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,string,double,double\n#group,false,false,true,true,false,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_measurement,tag0,value_a,value_b\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:30Z,_m,g,2,1\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:40Z,_m,g,3,2\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:50Z,_m,g,4,3\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:00Z,_m,g,5,4\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:10Z,_m,g,6,5\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:20Z,_m,g,7,6\n\"", Start: ast.Position{ Column: 5, Line: 78, }, }, }, Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,string,double,double\n#group,false,false,true,true,false,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_measurement,tag0,value_a,value_b\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:30Z,_m,g,2,1\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:40Z,_m,g,3,2\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:50Z,_m,g,4,3\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:00Z,_m,g,5,4\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:10Z,_m,g,6,5\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:20Z,_m,g,7,6\n", }, }, &ast.VariableAssignment{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 2, Line: 105, }, File: "join_test.flux", Source: "join_test_fn = (table=<-) => {\n a =\n table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"a\")\n |> drop(columns: [\"_field\"])\n |> rename(columns: {_value: \"value_a\"})\n b =\n table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"b\")\n |> drop(columns: [\"_field\"])\n |> rename(columns: {_value: \"value_b\"})\n\n return promql.join(left: a, right: b, fn: (left, right) => ({left with value_b: right.value_b}))\n}", Start: ast.Position{ Column: 1, Line: 90, }, }, }, ID: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 13, Line: 90, }, File: "join_test.flux", Source: "join_test_fn", Start: ast.Position{ Column: 1, Line: 90, }, }, }, Name: "join_test_fn", }, Init: &ast.FunctionExpression{ Arrow: nil, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 2, Line: 105, }, File: "join_test.flux", Source: "(table=<-) => {\n a =\n table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"a\")\n |> drop(columns: [\"_field\"])\n |> rename(columns: {_value: \"value_a\"})\n b =\n table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"b\")\n |> drop(columns: [\"_field\"])\n |> rename(columns: {_value: \"value_b\"})\n\n return promql.join(left: a, right: b, fn: (left, right) => ({left with value_b: right.value_b}))\n}", Start: ast.Position{ Column: 16, Line: 90, }, }, }, Body: &ast.Block{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 2, Line: 105, }, File: "join_test.flux", Source: "{\n a =\n table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"a\")\n |> drop(columns: [\"_field\"])\n |> rename(columns: {_value: \"value_a\"})\n b =\n table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"b\")\n |> drop(columns: [\"_field\"])\n |> rename(columns: {_value: \"value_b\"})\n\n return promql.join(left: a, right: b, fn: (left, right) => ({left with value_b: right.value_b}))\n}", Start: ast.Position{ Column: 30, Line: 90, }, }, }, Body: []ast.Statement{&ast.VariableAssignment{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 52, Line: 96, }, File: "join_test.flux", Source: "a =\n table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"a\")\n |> drop(columns: [\"_field\"])\n |> rename(columns: {_value: \"value_a\"})", Start: ast.Position{ Column: 5, Line: 91, }, }, }, ID: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 6, Line: 91, }, File: "join_test.flux", Source: "a", Start: ast.Position{ Column: 5, Line: 91, }, }, }, Name: "a", }, Init: &ast.PipeExpression{ Argument: &ast.PipeExpression{ Argument: &ast.PipeExpression{ Argument: &ast.PipeExpression{ Argument: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 14, Line: 92, }, File: "join_test.flux", Source: "table", Start: ast.Position{ Column: 9, Line: 92, }, }, }, Name: "table", }, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 78, Line: 93, }, File: "join_test.flux", Source: "table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)", Start: ast.Position{ Column: 9, Line: 92, }, }, }, Call: &ast.CallExpression{ Arguments: []ast.Expression{&ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 77, Line: 93, }, File: "join_test.flux", Source: "start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z", Start: ast.Position{ Column: 22, Line: 93, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 49, Line: 93, }, File: "join_test.flux", Source: "start: 2018-12-19T00:00:00Z", Start: ast.Position{ Column: 22, Line: 93, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 27, Line: 93, }, File: "join_test.flux", Source: "start", Start: ast.Position{ Column: 22, Line: 93, }, }, }, Name: "start", }, Separator: nil, Value: &ast.DateTimeLiteral{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 49, Line: 93, }, File: "join_test.flux", Source: "2018-12-19T00:00:00Z", Start: ast.Position{ Column: 29, Line: 93, }, }, }, Value: parser.MustParseTime("2018-12-19T00:00:00Z"), }, }, &ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 77, Line: 93, }, File: "join_test.flux", Source: "stop: 2018-12-20T00:00:00Z", Start: ast.Position{ Column: 51, Line: 93, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 55, Line: 93, }, File: "join_test.flux", Source: "stop", Start: ast.Position{ Column: 51, Line: 93, }, }, }, Name: "stop", }, Separator: nil, Value: &ast.DateTimeLiteral{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 77, Line: 93, }, File: "join_test.flux", Source: "2018-12-20T00:00:00Z", Start: ast.Position{ Column: 57, Line: 93, }, }, }, Value: parser.MustParseTime("2018-12-20T00:00:00Z"), }, }}, Rbrace: nil, With: nil, }}, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 78, Line: 93, }, File: "join_test.flux", Source: "range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)", Start: ast.Position{ Column: 16, Line: 93, }, }, }, Callee: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 21, Line: 93, }, File: "join_test.flux", Source: "range", Start: ast.Position{ Column: 16, Line: 93, }, }, }, Name: "range", }, Lparen: nil, Rparen: nil, }, }, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 50, Line: 94, }, File: "join_test.flux", Source: "table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"a\")", Start: ast.Position{ Column: 9, Line: 92, }, }, }, Call: &ast.CallExpression{ Arguments: []ast.Expression{&ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 49, Line: 94, }, File: "join_test.flux", Source: "fn: (r) => r._field == \"a\"", Start: ast.Position{ Column: 23, Line: 94, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 49, Line: 94, }, File: "join_test.flux", Source: "fn: (r) => r._field == \"a\"", Start: ast.Position{ Column: 23, Line: 94, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 25, Line: 94, }, File: "join_test.flux", Source: "fn", Start: ast.Position{ Column: 23, Line: 94, }, }, }, Name: "fn", }, Separator: nil, Value: &ast.FunctionExpression{ Arrow: nil, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 49, Line: 94, }, File: "join_test.flux", Source: "(r) => r._field == \"a\"", Start: ast.Position{ Column: 27, Line: 94, }, }, }, Body: &ast.BinaryExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 49, Line: 94, }, File: "join_test.flux", Source: "r._field == \"a\"", Start: ast.Position{ Column: 34, Line: 94, }, }, }, Left: &ast.MemberExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 42, Line: 94, }, File: "join_test.flux", Source: "r._field", Start: ast.Position{ Column: 34, Line: 94, }, }, }, Lbrack: nil, Object: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 35, Line: 94, }, File: "join_test.flux", Source: "r", Start: ast.Position{ Column: 34, Line: 94, }, }, }, Name: "r", }, Property: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 42, Line: 94, }, File: "join_test.flux", Source: "_field", Start: ast.Position{ Column: 36, Line: 94, }, }, }, Name: "_field", }, Rbrack: nil, }, Operator: 17, Right: &ast.StringLiteral{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 49, Line: 94, }, File: "join_test.flux", Source: "\"a\"", Start: ast.Position{ Column: 46, Line: 94, }, }, }, Value: "a", }, }, Lparen: nil, Params: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 29, Line: 94, }, File: "join_test.flux", Source: "r", Start: ast.Position{ Column: 28, Line: 94, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 29, Line: 94, }, File: "join_test.flux", Source: "r", Start: ast.Position{ Column: 28, Line: 94, }, }, }, Name: "r", }, Separator: nil, Value: nil, }}, Rparan: nil, }, }}, Rbrace: nil, With: nil, }}, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 50, Line: 94, }, File: "join_test.flux", Source: "filter(fn: (r) => r._field == \"a\")", Start: ast.Position{ Column: 16, Line: 94, }, }, }, Callee: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 22, Line: 94, }, File: "join_test.flux", Source: "filter", Start: ast.Position{ Column: 16, Line: 94, }, }, }, Name: "filter", }, Lparen: nil, Rparen: nil, }, }, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 41, Line: 95, }, File: "join_test.flux", Source: "table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"a\")\n |> drop(columns: [\"_field\"])", Start: ast.Position{ Column: 9, Line: 92, }, }, }, Call: &ast.CallExpression{ Arguments: []ast.Expression{&ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 40, Line: 95, }, File: "join_test.flux", Source: "columns: [\"_field\"]", Start: ast.Position{ Column: 21, Line: 95, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 40, Line: 95, }, File: "join_test.flux", Source: "columns: [\"_field\"]", Start: ast.Position{ Column: 21, Line: 95, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 28, Line: 95, }, File: "join_test.flux", Source: "columns", Start: ast.Position{ Column: 21, Line: 95, }, }, }, Name: "columns", }, Separator: nil, Value: &ast.ArrayExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 40, Line: 95, }, File: "join_test.flux", Source: "[\"_field\"]", Start: ast.Position{ Column: 30, Line: 95, }, }, }, Elements: []ast.Expression{&ast.StringLiteral{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 39, Line: 95, }, File: "join_test.flux", Source: "\"_field\"", Start: ast.Position{ Column: 31, Line: 95, }, }, }, Value: "_field", }}, Lbrack: nil, Rbrack: nil, }, }}, Rbrace: nil, With: nil, }}, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 41, Line: 95, }, File: "join_test.flux", Source: "drop(columns: [\"_field\"])", Start: ast.Position{ Column: 16, Line: 95, }, }, }, Callee: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 20, Line: 95, }, File: "join_test.flux", Source: "drop", Start: ast.Position{ Column: 16, Line: 95, }, }, }, Name: "drop", }, Lparen: nil, Rparen: nil, }, }, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 52, Line: 96, }, File: "join_test.flux", Source: "table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"a\")\n |> drop(columns: [\"_field\"])\n |> rename(columns: {_value: \"value_a\"})", Start: ast.Position{ Column: 9, Line: 92, }, }, }, Call: &ast.CallExpression{ Arguments: []ast.Expression{&ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 51, Line: 96, }, File: "join_test.flux", Source: "columns: {_value: \"value_a\"}", Start: ast.Position{ Column: 23, Line: 96, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 51, Line: 96, }, File: "join_test.flux", Source: "columns: {_value: \"value_a\"}", Start: ast.Position{ Column: 23, Line: 96, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 30, Line: 96, }, File: "join_test.flux", Source: "columns", Start: ast.Position{ Column: 23, Line: 96, }, }, }, Name: "columns", }, Separator: nil, Value: &ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 51, Line: 96, }, File: "join_test.flux", Source: "{_value: \"value_a\"}", Start: ast.Position{ Column: 32, Line: 96, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 50, Line: 96, }, File: "join_test.flux", Source: "_value: \"value_a\"", Start: ast.Position{ Column: 33, Line: 96, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 39, Line: 96, }, File: "join_test.flux", Source: "_value", Start: ast.Position{ Column: 33, Line: 96, }, }, }, Name: "_value", }, Separator: nil, Value: &ast.StringLiteral{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 50, Line: 96, }, File: "join_test.flux", Source: "\"value_a\"", Start: ast.Position{ Column: 41, Line: 96, }, }, }, Value: "value_a", }, }}, Rbrace: nil, With: nil, }, }}, Rbrace: nil, With: nil, }}, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 52, Line: 96, }, File: "join_test.flux", Source: "rename(columns: {_value: \"value_a\"})", Start: ast.Position{ Column: 16, Line: 96, }, }, }, Callee: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 22, Line: 96, }, File: "join_test.flux", Source: "rename", Start: ast.Position{ Column: 16, Line: 96, }, }, }, Name: "rename", }, Lparen: nil, Rparen: nil, }, }, }, &ast.VariableAssignment{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 52, Line: 102, }, File: "join_test.flux", Source: "b =\n table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"b\")\n |> drop(columns: [\"_field\"])\n |> rename(columns: {_value: \"value_b\"})", Start: ast.Position{ Column: 5, Line: 97, }, }, }, ID: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 6, Line: 97, }, File: "join_test.flux", Source: "b", Start: ast.Position{ Column: 5, Line: 97, }, }, }, Name: "b", }, Init: &ast.PipeExpression{ Argument: &ast.PipeExpression{ Argument: &ast.PipeExpression{ Argument: &ast.PipeExpression{ Argument: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 14, Line: 98, }, File: "join_test.flux", Source: "table", Start: ast.Position{ Column: 9, Line: 98, }, }, }, Name: "table", }, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 78, Line: 99, }, File: "join_test.flux", Source: "table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)", Start: ast.Position{ Column: 9, Line: 98, }, }, }, Call: &ast.CallExpression{ Arguments: []ast.Expression{&ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 77, Line: 99, }, File: "join_test.flux", Source: "start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z", Start: ast.Position{ Column: 22, Line: 99, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 49, Line: 99, }, File: "join_test.flux", Source: "start: 2018-12-19T00:00:00Z", Start: ast.Position{ Column: 22, Line: 99, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 27, Line: 99, }, File: "join_test.flux", Source: "start", Start: ast.Position{ Column: 22, Line: 99, }, }, }, Name: "start", }, Separator: nil, Value: &ast.DateTimeLiteral{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 49, Line: 99, }, File: "join_test.flux", Source: "2018-12-19T00:00:00Z", Start: ast.Position{ Column: 29, Line: 99, }, }, }, Value: parser.MustParseTime("2018-12-19T00:00:00Z"), }, }, &ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 77, Line: 99, }, File: "join_test.flux", Source: "stop: 2018-12-20T00:00:00Z", Start: ast.Position{ Column: 51, Line: 99, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 55, Line: 99, }, File: "join_test.flux", Source: "stop", Start: ast.Position{ Column: 51, Line: 99, }, }, }, Name: "stop", }, Separator: nil, Value: &ast.DateTimeLiteral{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 77, Line: 99, }, File: "join_test.flux", Source: "2018-12-20T00:00:00Z", Start: ast.Position{ Column: 57, Line: 99, }, }, }, Value: parser.MustParseTime("2018-12-20T00:00:00Z"), }, }}, Rbrace: nil, With: nil, }}, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 78, Line: 99, }, File: "join_test.flux", Source: "range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)", Start: ast.Position{ Column: 16, Line: 99, }, }, }, Callee: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 21, Line: 99, }, File: "join_test.flux", Source: "range", Start: ast.Position{ Column: 16, Line: 99, }, }, }, Name: "range", }, Lparen: nil, Rparen: nil, }, }, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 50, Line: 100, }, File: "join_test.flux", Source: "table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"b\")", Start: ast.Position{ Column: 9, Line: 98, }, }, }, Call: &ast.CallExpression{ Arguments: []ast.Expression{&ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 49, Line: 100, }, File: "join_test.flux", Source: "fn: (r) => r._field == \"b\"", Start: ast.Position{ Column: 23, Line: 100, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 49, Line: 100, }, File: "join_test.flux", Source: "fn: (r) => r._field == \"b\"", Start: ast.Position{ Column: 23, Line: 100, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 25, Line: 100, }, File: "join_test.flux", Source: "fn", Start: ast.Position{ Column: 23, Line: 100, }, }, }, Name: "fn", }, Separator: nil, Value: &ast.FunctionExpression{ Arrow: nil, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 49, Line: 100, }, File: "join_test.flux", Source: "(r) => r._field == \"b\"", Start: ast.Position{ Column: 27, Line: 100, }, }, }, Body: &ast.BinaryExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 49, Line: 100, }, File: "join_test.flux", Source: "r._field == \"b\"", Start: ast.Position{ Column: 34, Line: 100, }, }, }, Left: &ast.MemberExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 42, Line: 100, }, File: "join_test.flux", Source: "r._field", Start: ast.Position{ Column: 34, Line: 100, }, }, }, Lbrack: nil, Object: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 35, Line: 100, }, File: "join_test.flux", Source: "r", Start: ast.Position{ Column: 34, Line: 100, }, }, }, Name: "r", }, Property: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 42, Line: 100, }, File: "join_test.flux", Source: "_field", Start: ast.Position{ Column: 36, Line: 100, }, }, }, Name: "_field", }, Rbrack: nil, }, Operator: 17, Right: &ast.StringLiteral{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 49, Line: 100, }, File: "join_test.flux", Source: "\"b\"", Start: ast.Position{ Column: 46, Line: 100, }, }, }, Value: "b", }, }, Lparen: nil, Params: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 29, Line: 100, }, File: "join_test.flux", Source: "r", Start: ast.Position{ Column: 28, Line: 100, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 29, Line: 100, }, File: "join_test.flux", Source: "r", Start: ast.Position{ Column: 28, Line: 100, }, }, }, Name: "r", }, Separator: nil, Value: nil, }}, Rparan: nil, }, }}, Rbrace: nil, With: nil, }}, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 50, Line: 100, }, File: "join_test.flux", Source: "filter(fn: (r) => r._field == \"b\")", Start: ast.Position{ Column: 16, Line: 100, }, }, }, Callee: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 22, Line: 100, }, File: "join_test.flux", Source: "filter", Start: ast.Position{ Column: 16, Line: 100, }, }, }, Name: "filter", }, Lparen: nil, Rparen: nil, }, }, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 41, Line: 101, }, File: "join_test.flux", Source: "table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"b\")\n |> drop(columns: [\"_field\"])", Start: ast.Position{ Column: 9, Line: 98, }, }, }, Call: &ast.CallExpression{ Arguments: []ast.Expression{&ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 40, Line: 101, }, File: "join_test.flux", Source: "columns: [\"_field\"]", Start: ast.Position{ Column: 21, Line: 101, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 40, Line: 101, }, File: "join_test.flux", Source: "columns: [\"_field\"]", Start: ast.Position{ Column: 21, Line: 101, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 28, Line: 101, }, File: "join_test.flux", Source: "columns", Start: ast.Position{ Column: 21, Line: 101, }, }, }, Name: "columns", }, Separator: nil, Value: &ast.ArrayExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 40, Line: 101, }, File: "join_test.flux", Source: "[\"_field\"]", Start: ast.Position{ Column: 30, Line: 101, }, }, }, Elements: []ast.Expression{&ast.StringLiteral{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 39, Line: 101, }, File: "join_test.flux", Source: "\"_field\"", Start: ast.Position{ Column: 31, Line: 101, }, }, }, Value: "_field", }}, Lbrack: nil, Rbrack: nil, }, }}, Rbrace: nil, With: nil, }}, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 41, Line: 101, }, File: "join_test.flux", Source: "drop(columns: [\"_field\"])", Start: ast.Position{ Column: 16, Line: 101, }, }, }, Callee: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 20, Line: 101, }, File: "join_test.flux", Source: "drop", Start: ast.Position{ Column: 16, Line: 101, }, }, }, Name: "drop", }, Lparen: nil, Rparen: nil, }, }, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 52, Line: 102, }, File: "join_test.flux", Source: "table\n |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n |> filter(fn: (r) => r._field == \"b\")\n |> drop(columns: [\"_field\"])\n |> rename(columns: {_value: \"value_b\"})", Start: ast.Position{ Column: 9, Line: 98, }, }, }, Call: &ast.CallExpression{ Arguments: []ast.Expression{&ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 51, Line: 102, }, File: "join_test.flux", Source: "columns: {_value: \"value_b\"}", Start: ast.Position{ Column: 23, Line: 102, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 51, Line: 102, }, File: "join_test.flux", Source: "columns: {_value: \"value_b\"}", Start: ast.Position{ Column: 23, Line: 102, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 30, Line: 102, }, File: "join_test.flux", Source: "columns", Start: ast.Position{ Column: 23, Line: 102, }, }, }, Name: "columns", }, Separator: nil, Value: &ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 51, Line: 102, }, File: "join_test.flux", Source: "{_value: \"value_b\"}", Start: ast.Position{ Column: 32, Line: 102, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 50, Line: 102, }, File: "join_test.flux", Source: "_value: \"value_b\"", Start: ast.Position{ Column: 33, Line: 102, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 39, Line: 102, }, File: "join_test.flux", Source: "_value", Start: ast.Position{ Column: 33, Line: 102, }, }, }, Name: "_value", }, Separator: nil, Value: &ast.StringLiteral{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 50, Line: 102, }, File: "join_test.flux", Source: "\"value_b\"", Start: ast.Position{ Column: 41, Line: 102, }, }, }, Value: "value_b", }, }}, Rbrace: nil, With: nil, }, }}, Rbrace: nil, With: nil, }}, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 52, Line: 102, }, File: "join_test.flux", Source: "rename(columns: {_value: \"value_b\"})", Start: ast.Position{ Column: 16, Line: 102, }, }, }, Callee: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 22, Line: 102, }, File: "join_test.flux", Source: "rename", Start: ast.Position{ Column: 16, Line: 102, }, }, }, Name: "rename", }, Lparen: nil, Rparen: nil, }, }, }, &ast.ReturnStatement{ Argument: &ast.CallExpression{ Arguments: []ast.Expression{&ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 100, Line: 104, }, File: "join_test.flux", Source: "left: a, right: b, fn: (left, right) => ({left with value_b: right.value_b})", Start: ast.Position{ Column: 24, Line: 104, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 31, Line: 104, }, File: "join_test.flux", Source: "left: a", Start: ast.Position{ Column: 24, Line: 104, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 28, Line: 104, }, File: "join_test.flux", Source: "left", Start: ast.Position{ Column: 24, Line: 104, }, }, }, Name: "left", }, Separator: nil, Value: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 31, Line: 104, }, File: "join_test.flux", Source: "a", Start: ast.Position{ Column: 30, Line: 104, }, }, }, Name: "a", }, }, &ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 41, Line: 104, }, File: "join_test.flux", Source: "right: b", Start: ast.Position{ Column: 33, Line: 104, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 38, Line: 104, }, File: "join_test.flux", Source: "right", Start: ast.Position{ Column: 33, Line: 104, }, }, }, Name: "right", }, Separator: nil, Value: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 41, Line: 104, }, File: "join_test.flux", Source: "b", Start: ast.Position{ Column: 40, Line: 104, }, }, }, Name: "b", }, }, &ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 100, Line: 104, }, File: "join_test.flux", Source: "fn: (left, right) => ({left with value_b: right.value_b})", Start: ast.Position{ Column: 43, Line: 104, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 45, Line: 104, }, File: "join_test.flux", Source: "fn", Start: ast.Position{ Column: 43, Line: 104, }, }, }, Name: "fn", }, Separator: nil, Value: &ast.FunctionExpression{ Arrow: nil, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 100, Line: 104, }, File: "join_test.flux", Source: "(left, right) => ({left with value_b: right.value_b})", Start: ast.Position{ Column: 47, Line: 104, }, }, }, Body: &ast.ParenExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 100, Line: 104, }, File: "join_test.flux", Source: "({left with value_b: right.value_b})", Start: ast.Position{ Column: 64, Line: 104, }, }, }, Expression: &ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 99, Line: 104, }, File: "join_test.flux", Source: "{left with value_b: right.value_b}", Start: ast.Position{ Column: 65, Line: 104, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 98, Line: 104, }, File: "join_test.flux", Source: "value_b: right.value_b", Start: ast.Position{ Column: 76, Line: 104, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 83, Line: 104, }, File: "join_test.flux", Source: "value_b", Start: ast.Position{ Column: 76, Line: 104, }, }, }, Name: "value_b", }, Separator: nil, Value: &ast.MemberExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 98, Line: 104, }, File: "join_test.flux", Source: "right.value_b", Start: ast.Position{ Column: 85, Line: 104, }, }, }, Lbrack: nil, Object: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 90, Line: 104, }, File: "join_test.flux", Source: "right", Start: ast.Position{ Column: 85, Line: 104, }, }, }, Name: "right", }, Property: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 98, Line: 104, }, File: "join_test.flux", Source: "value_b", Start: ast.Position{ Column: 91, Line: 104, }, }, }, Name: "value_b", }, Rbrack: nil, }, }}, Rbrace: nil, With: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 70, Line: 104, }, File: "join_test.flux", Source: "left", Start: ast.Position{ Column: 66, Line: 104, }, }, }, Name: "left", }, }, Lparen: nil, Rparen: nil, }, Lparen: nil, Params: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 52, Line: 104, }, File: "join_test.flux", Source: "left", Start: ast.Position{ Column: 48, Line: 104, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 52, Line: 104, }, File: "join_test.flux", Source: "left", Start: ast.Position{ Column: 48, Line: 104, }, }, }, Name: "left", }, Separator: nil, Value: nil, }, &ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 59, Line: 104, }, File: "join_test.flux", Source: "right", Start: ast.Position{ Column: 54, Line: 104, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 59, Line: 104, }, File: "join_test.flux", Source: "right", Start: ast.Position{ Column: 54, Line: 104, }, }, }, Name: "right", }, Separator: nil, Value: nil, }}, Rparan: nil, }, }}, Rbrace: nil, With: nil, }}, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 101, Line: 104, }, File: "join_test.flux", Source: "promql.join(left: a, right: b, fn: (left, right) => ({left with value_b: right.value_b}))", Start: ast.Position{ Column: 12, Line: 104, }, }, }, Callee: &ast.MemberExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 23, Line: 104, }, File: "join_test.flux", Source: "promql.join", Start: ast.Position{ Column: 12, Line: 104, }, }, }, Lbrack: nil, Object: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 18, Line: 104, }, File: "join_test.flux", Source: "promql", Start: ast.Position{ Column: 12, Line: 104, }, }, }, Name: "promql", }, Property: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 23, Line: 104, }, File: "join_test.flux", Source: "join", Start: ast.Position{ Column: 19, Line: 104, }, }, }, Name: "join", }, Rbrack: nil, }, Lparen: nil, Rparen: nil, }, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 101, Line: 104, }, File: "join_test.flux", Source: "return promql.join(left: a, right: b, fn: (left, right) => ({left with value_b: right.value_b}))", Start: ast.Position{ Column: 5, Line: 104, }, }, }, }}, Lbrace: nil, Rbrace: nil, }, Lparen: nil, Params: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 25, Line: 90, }, File: "join_test.flux", Source: "table=<-", Start: ast.Position{ Column: 17, Line: 90, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 22, Line: 90, }, File: "join_test.flux", Source: "table", Start: ast.Position{ Column: 17, Line: 90, }, }, }, Name: "table", }, Separator: nil, Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 25, Line: 90, }, File: "join_test.flux", Source: "<-", Start: ast.Position{ Column: 23, Line: 90, }, }, }}, }}, Rparan: nil, }, }, &ast.TestStatement{ Assignment: &ast.VariableAssignment{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 103, Line: 108, }, File: "join_test.flux", Source: "prom_join = () =>\n ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})", Start: ast.Position{ Column: 6, Line: 107, }, }, }, ID: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 15, Line: 107, }, File: "join_test.flux", Source: "prom_join", Start: ast.Position{ Column: 6, Line: 107, }, }, }, Name: "prom_join", }, Init: &ast.FunctionExpression{ Arrow: nil, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 103, Line: 108, }, File: "join_test.flux", Source: "() =>\n ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})", Start: ast.Position{ Column: 18, Line: 107, }, }, }, Body: &ast.ParenExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 103, Line: 108, }, File: "join_test.flux", Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})", Start: ast.Position{ Column: 5, Line: 108, }, }, }, Expression: &ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 102, Line: 108, }, File: "join_test.flux", Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn}", Start: ast.Position{ Column: 6, Line: 108, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 46, Line: 108, }, File: "join_test.flux", Source: "input: testing.loadStorage(csv: inData)", Start: ast.Position{ Column: 7, Line: 108, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 12, Line: 108, }, File: "join_test.flux", Source: "input", Start: ast.Position{ Column: 7, Line: 108, }, }, }, Name: "input", }, Separator: nil, Value: &ast.CallExpression{ Arguments: []ast.Expression{&ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 45, Line: 108, }, File: "join_test.flux", Source: "csv: inData", Start: ast.Position{ Column: 34, Line: 108, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 45, Line: 108, }, File: "join_test.flux", Source: "csv: inData", Start: ast.Position{ Column: 34, Line: 108, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 37, Line: 108, }, File: "join_test.flux", Source: "csv", Start: ast.Position{ Column: 34, Line: 108, }, }, }, Name: "csv", }, Separator: nil, Value: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 45, Line: 108, }, File: "join_test.flux", Source: "inData", Start: ast.Position{ Column: 39, Line: 108, }, }, }, Name: "inData", }, }}, Rbrace: nil, With: nil, }}, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 46, Line: 108, }, File: "join_test.flux", Source: "testing.loadStorage(csv: inData)", Start: ast.Position{ Column: 14, Line: 108, }, }, }, Callee: &ast.MemberExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 33, Line: 108, }, File: "join_test.flux", Source: "testing.loadStorage", Start: ast.Position{ Column: 14, Line: 108, }, }, }, Lbrack: nil, Object: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 21, Line: 108, }, File: "join_test.flux", Source: "testing", Start: ast.Position{ Column: 14, Line: 108, }, }, }, Name: "testing", }, Property: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 33, Line: 108, }, File: "join_test.flux", Source: "loadStorage", Start: ast.Position{ Column: 22, Line: 108, }, }, }, Name: "loadStorage", }, Rbrack: nil, }, Lparen: nil, Rparen: nil, }, }, &ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 83, Line: 108, }, File: "join_test.flux", Source: "want: testing.loadMem(csv: outData)", Start: ast.Position{ Column: 48, Line: 108, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 52, Line: 108, }, File: "join_test.flux", Source: "want", Start: ast.Position{ Column: 48, Line: 108, }, }, }, Name: "want", }, Separator: nil, Value: &ast.CallExpression{ Arguments: []ast.Expression{&ast.ObjectExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 82, Line: 108, }, File: "join_test.flux", Source: "csv: outData", Start: ast.Position{ Column: 70, Line: 108, }, }, }, Lbrace: nil, Properties: []*ast.Property{&ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 82, Line: 108, }, File: "join_test.flux", Source: "csv: outData", Start: ast.Position{ Column: 70, Line: 108, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 73, Line: 108, }, File: "join_test.flux", Source: "csv", Start: ast.Position{ Column: 70, Line: 108, }, }, }, Name: "csv", }, Separator: nil, Value: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 82, Line: 108, }, File: "join_test.flux", Source: "outData", Start: ast.Position{ Column: 75, Line: 108, }, }, }, Name: "outData", }, }}, Rbrace: nil, With: nil, }}, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 83, Line: 108, }, File: "join_test.flux", Source: "testing.loadMem(csv: outData)", Start: ast.Position{ Column: 54, Line: 108, }, }, }, Callee: &ast.MemberExpression{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 69, Line: 108, }, File: "join_test.flux", Source: "testing.loadMem", Start: ast.Position{ Column: 54, Line: 108, }, }, }, Lbrack: nil, Object: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 61, Line: 108, }, File: "join_test.flux", Source: "testing", Start: ast.Position{ Column: 54, Line: 108, }, }, }, Name: "testing", }, Property: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 69, Line: 108, }, File: "join_test.flux", Source: "loadMem", Start: ast.Position{ Column: 62, Line: 108, }, }, }, Name: "loadMem", }, Rbrack: nil, }, Lparen: nil, Rparen: nil, }, }, &ast.Property{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 101, Line: 108, }, File: "join_test.flux", Source: "fn: join_test_fn", Start: ast.Position{ Column: 85, Line: 108, }, }, }, Comma: nil, Key: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 87, Line: 108, }, File: "join_test.flux", Source: "fn", Start: ast.Position{ Column: 85, Line: 108, }, }, }, Name: "fn", }, Separator: nil, Value: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 101, Line: 108, }, File: "join_test.flux", Source: "join_test_fn", Start: ast.Position{ Column: 89, Line: 108, }, }, }, Name: "join_test_fn", }, }}, Rbrace: nil, With: nil, }, Lparen: nil, Rparen: nil, }, Lparen: nil, Params: []*ast.Property{}, Rparan: nil, }, }, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 103, Line: 108, }, File: "join_test.flux", Source: "test prom_join = () =>\n ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})", Start: ast.Position{ Column: 1, Line: 107, }, }, }, }}, Eof: nil, Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{ As: nil, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 25, Line: 4, }, File: "join_test.flux", Source: "import \"internal/promql\"", Start: ast.Position{ Column: 1, Line: 4, }, }, }, Path: &ast.StringLiteral{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 25, Line: 4, }, File: "join_test.flux", Source: "\"internal/promql\"", Start: ast.Position{ Column: 8, Line: 4, }, }, }, Value: "internal/promql", }, }, &ast.ImportDeclaration{ As: nil, BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 17, Line: 5, }, File: "join_test.flux", Source: "import \"testing\"", Start: ast.Position{ Column: 1, Line: 5, }, }, }, Path: &ast.StringLiteral{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 17, Line: 5, }, File: "join_test.flux", Source: "\"testing\"", Start: ast.Position{ Column: 8, Line: 5, }, }, }, Value: "testing", }, }}, Metadata: "parser-type=rust", Name: "join_test.flux", Package: &ast.PackageClause{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 20, Line: 1, }, File: "join_test.flux", Source: "package promql_test", Start: ast.Position{ Column: 1, Line: 1, }, }, }, Name: &ast.Identifier{ BaseNode: ast.BaseNode{ Comments: nil, Errors: nil, Loc: &ast.SourceLocation{ End: ast.Position{ Column: 20, Line: 1, }, File: "join_test.flux", Source: "promql_test", Start: ast.Position{ Column: 9, Line: 1, }, }, }, Name: "promql_test", }, }, }}, Package: "promql_test", Path: "internal/promql", }}
Functions ¶
func NewChangesTransformation ¶
func NewChangesTransformation(d execute.Dataset, cache execute.TableBuilderCache, spec *ChangesProcedureSpec) *changesTransformation
func NewExtrapolatedRateTransformation ¶
func NewExtrapolatedRateTransformation(d execute.Dataset, cache execute.TableBuilderCache, spec *ExtrapolatedRateProcedureSpec) *extrapolatedRateTransformation
func NewHistogramQuantileTransformation ¶
func NewHistogramQuantileTransformation( d execute.Dataset, cache execute.TableBuilderCache, spec *HistogramQuantileProcedureSpec, ) execute.Transformation
func NewHoltWintersTransformation ¶
func NewHoltWintersTransformation(d execute.Dataset, cache execute.TableBuilderCache, spec *HoltWintersProcedureSpec) *holtWintersTransformation
func NewInstantRateTransformation ¶
func NewInstantRateTransformation(d execute.Dataset, cache execute.TableBuilderCache, spec *InstantRateProcedureSpec) *instantRateTransformation
func NewLabelReplaceTransformation ¶
func NewLabelReplaceTransformation(d execute.Dataset, cache execute.TableBuilderCache, spec *LabelReplaceProcedureSpec) *labelReplaceTransformation
func NewLinearRegressionTransformation ¶
func NewLinearRegressionTransformation(d execute.Dataset, cache execute.TableBuilderCache, spec *LinearRegressionProcedureSpec) *linearRegressionTransformation
func NewResetsTransformation ¶
func NewResetsTransformation(d execute.Dataset, cache execute.TableBuilderCache, spec *ResetsProcedureSpec) *resetsTransformation
func NewTimestampTransformation ¶
func NewTimestampTransformation(d execute.Dataset, cache execute.TableBuilderCache, spec *TimestampProcedureSpec) *timestampTransformation
Types ¶
type ChangesOpSpec ¶
type ChangesOpSpec struct{}
func (*ChangesOpSpec) Kind ¶
func (s *ChangesOpSpec) Kind() flux.OperationKind
type ChangesProcedureSpec ¶
type ChangesProcedureSpec struct {
plan.DefaultCost
}
func (*ChangesProcedureSpec) Copy ¶
func (s *ChangesProcedureSpec) Copy() plan.ProcedureSpec
func (*ChangesProcedureSpec) Kind ¶
func (s *ChangesProcedureSpec) Kind() plan.ProcedureKind
func (*ChangesProcedureSpec) TriggerSpec ¶
func (s *ChangesProcedureSpec) TriggerSpec() plan.TriggerSpec
TriggerSpec implements plan.TriggerAwareProcedureSpec
type EmptyTableOpSpec ¶
type EmptyTableOpSpec struct{}
func (*EmptyTableOpSpec) Kind ¶
func (s *EmptyTableOpSpec) Kind() flux.OperationKind
type EmptyTableProcedureSpec ¶
type EmptyTableProcedureSpec struct {
plan.DefaultCost
}
func (*EmptyTableProcedureSpec) Copy ¶
func (s *EmptyTableProcedureSpec) Copy() plan.ProcedureSpec
func (*EmptyTableProcedureSpec) Kind ¶
func (s *EmptyTableProcedureSpec) Kind() plan.ProcedureKind
type EmptyTableSource ¶
type EmptyTableSource struct { execute.ExecutionNode // contains filtered or unexported fields }
func (*EmptyTableSource) AddTransformation ¶
func (s *EmptyTableSource) AddTransformation(t execute.Transformation)
func (*EmptyTableSource) Run ¶
func (s *EmptyTableSource) Run(ctx context.Context)
type ExtrapolatedRateOpSpec ¶
type ExtrapolatedRateOpSpec struct { IsCounter bool `json:"isCounter"` IsRate bool `json:"isRate"` }
func (*ExtrapolatedRateOpSpec) Kind ¶
func (s *ExtrapolatedRateOpSpec) Kind() flux.OperationKind
type ExtrapolatedRateProcedureSpec ¶
type ExtrapolatedRateProcedureSpec struct { plan.DefaultCost IsCounter bool IsRate bool }
func (*ExtrapolatedRateProcedureSpec) Copy ¶
func (s *ExtrapolatedRateProcedureSpec) Copy() plan.ProcedureSpec
func (*ExtrapolatedRateProcedureSpec) Kind ¶
func (s *ExtrapolatedRateProcedureSpec) Kind() plan.ProcedureKind
func (*ExtrapolatedRateProcedureSpec) TriggerSpec ¶
func (s *ExtrapolatedRateProcedureSpec) TriggerSpec() plan.TriggerSpec
TriggerSpec implements plan.TriggerAwareProcedureSpec
type HistogramQuantileOpSpec ¶
type HistogramQuantileOpSpec struct { Quantile float64 `json:"quantile"` CountColumn string `json:"countColumn"` UpperBoundColumn string `json:"upperBoundColumn"` ValueColumn string `json:"valueColumn"` }
func (*HistogramQuantileOpSpec) Kind ¶
func (s *HistogramQuantileOpSpec) Kind() flux.OperationKind
type HistogramQuantileProcedureSpec ¶
type HistogramQuantileProcedureSpec struct { plan.DefaultCost Quantile float64 `json:"quantile"` CountColumn string `json:"countColumn"` UpperBoundColumn string `json:"upperBoundColumn"` ValueColumn string `json:"valueColumn"` }
func (*HistogramQuantileProcedureSpec) Copy ¶
func (s *HistogramQuantileProcedureSpec) Copy() plan.ProcedureSpec
func (*HistogramQuantileProcedureSpec) Kind ¶
func (s *HistogramQuantileProcedureSpec) Kind() plan.ProcedureKind
type HoltWintersOpSpec ¶
type HoltWintersOpSpec struct { SmoothingFactor float64 `json:"smoothingFactor"` TrendFactor float64 `json:"trendFactor"` }
func (*HoltWintersOpSpec) Kind ¶
func (s *HoltWintersOpSpec) Kind() flux.OperationKind
type HoltWintersProcedureSpec ¶
type HoltWintersProcedureSpec struct { plan.DefaultCost SmoothingFactor float64 TrendFactor float64 }
func (*HoltWintersProcedureSpec) Copy ¶
func (s *HoltWintersProcedureSpec) Copy() plan.ProcedureSpec
func (*HoltWintersProcedureSpec) Kind ¶
func (s *HoltWintersProcedureSpec) Kind() plan.ProcedureKind
func (*HoltWintersProcedureSpec) TriggerSpec ¶
func (s *HoltWintersProcedureSpec) TriggerSpec() plan.TriggerSpec
TriggerSpec implements plan.TriggerAwareProcedureSpec
type InstantRateOpSpec ¶
type InstantRateOpSpec struct {
IsRate bool `json:"isRate"`
}
func (*InstantRateOpSpec) Kind ¶
func (s *InstantRateOpSpec) Kind() flux.OperationKind
type InstantRateProcedureSpec ¶
type InstantRateProcedureSpec struct { plan.DefaultCost IsRate bool }
func (*InstantRateProcedureSpec) Copy ¶
func (s *InstantRateProcedureSpec) Copy() plan.ProcedureSpec
func (*InstantRateProcedureSpec) Kind ¶
func (s *InstantRateProcedureSpec) Kind() plan.ProcedureKind
func (*InstantRateProcedureSpec) TriggerSpec ¶
func (s *InstantRateProcedureSpec) TriggerSpec() plan.TriggerSpec
TriggerSpec implements plan.TriggerAwareProcedureSpec
type LabelReplaceOpSpec ¶
type LabelReplaceOpSpec struct { Source string `json:"source"` Destination string `json:"destination"` Regex string `json:"regex"` Replacement string `json:"replacement"` }
func (*LabelReplaceOpSpec) Kind ¶
func (s *LabelReplaceOpSpec) Kind() flux.OperationKind
type LabelReplaceProcedureSpec ¶
type LabelReplaceProcedureSpec struct { plan.DefaultCost Source string Destination string Regex string Replacement string }
func (*LabelReplaceProcedureSpec) Copy ¶
func (s *LabelReplaceProcedureSpec) Copy() plan.ProcedureSpec
func (*LabelReplaceProcedureSpec) Kind ¶
func (s *LabelReplaceProcedureSpec) Kind() plan.ProcedureKind
type LinearRegressionOpSpec ¶
type LinearRegressionOpSpec struct { Predict bool `json:"predict"` // Stored as seconds in float64 to avoid back-and-forth duration conversions from PromQL. FromNow float64 `json:"fromNow"` }
func (*LinearRegressionOpSpec) Kind ¶
func (s *LinearRegressionOpSpec) Kind() flux.OperationKind
type LinearRegressionProcedureSpec ¶
type LinearRegressionProcedureSpec struct { plan.DefaultCost Predict bool FromNow float64 }
func (*LinearRegressionProcedureSpec) Copy ¶
func (s *LinearRegressionProcedureSpec) Copy() plan.ProcedureSpec
func (*LinearRegressionProcedureSpec) Kind ¶
func (s *LinearRegressionProcedureSpec) Kind() plan.ProcedureKind
func (*LinearRegressionProcedureSpec) TriggerSpec ¶
func (s *LinearRegressionProcedureSpec) TriggerSpec() plan.TriggerSpec
TriggerSpec implements plan.TriggerAwareProcedureSpec
type ResetsOpSpec ¶
type ResetsOpSpec struct{}
func (*ResetsOpSpec) Kind ¶
func (s *ResetsOpSpec) Kind() flux.OperationKind
type ResetsProcedureSpec ¶
type ResetsProcedureSpec struct {
plan.DefaultCost
}
func (*ResetsProcedureSpec) Copy ¶
func (s *ResetsProcedureSpec) Copy() plan.ProcedureSpec
func (*ResetsProcedureSpec) Kind ¶
func (s *ResetsProcedureSpec) Kind() plan.ProcedureKind
func (*ResetsProcedureSpec) TriggerSpec ¶
func (s *ResetsProcedureSpec) TriggerSpec() plan.TriggerSpec
TriggerSpec implements plan.TriggerAwareProcedureSpec
type TimestampOpSpec ¶
type TimestampOpSpec struct{}
func (*TimestampOpSpec) Kind ¶
func (s *TimestampOpSpec) Kind() flux.OperationKind
type TimestampProcedureSpec ¶
type TimestampProcedureSpec struct {
plan.DefaultCost
}
func (*TimestampProcedureSpec) Copy ¶
func (s *TimestampProcedureSpec) Copy() plan.ProcedureSpec
func (*TimestampProcedureSpec) Kind ¶
func (s *TimestampProcedureSpec) Kind() plan.ProcedureKind
Click to show internal directories.
Click to hide internal directories.