Closed MichaHoffmann closed 6 months ago
Adding this test to TestQueriesAgainstOldEngine results in failure
TestQueriesAgainstOldEngine
+ { + name: "subquery in binary expression", + load: `load 30s + http_requests_total{pod="nginx-1", route="/"} 1.00+0.20x40 + http_requests_total{pod="nginx-2", route="/"} -44+2.00x40`, + query: ` + avg_over_time(http_requests_total @ end()[1h:1m] offset 3m3s) + or + absent_over_time(http_requests_total @ end()[1h:1m] offset 3m1s) + `, + },
--- FAIL: TestQueriesAgainstOldEngine/subquery_in_binary_expression#04/disableOptimizers=false/disableFallback=true (0.00s) testutil.go:91: engine_test.go:1879: "Query: avg_over_time(http_requests_total @ 1800.000[1h:1m] offset 3m3s) or absent_over_time(http_requests_total @ 1800.000[1h:1m] offset 3m1s) Explanation: [*vectorOperator] or - many-to-many, ignoring: false, group: []: ├──[*subqueryOperator] avg_over_time(): │ └──[*stepInvariantOperator]: │ └──[*coalesce]: │ ├──[*concurrencyOperator(buff=2)]: │ │ └──[*vectorSelector] {[__name__="http_requests_total"]} 0 mod 4 │ ├──[*concurrencyOperator(buff=2)]: │ │ └──[*vectorSelector] {[__name__="http_requests_total"]} 1 mod 4 │ ├──[*concurrencyOperator(buff=2)]: │ │ └──[*vectorSelector] {[__name__="http_requests_total"]} 2 mod 4 │ └──[*concurrencyOperator(buff=2)]: │ └──[*vectorSelector] {[__name__="http_requests_total"]} 3 mod 4 └──[*absentOperator] " exp: &promql.Result{Err:error(nil), Value:promql.Matrix{promql.Series{Metric:labels.Labels{labels.Label{Name:"pod", Value:"nginx-1"}, labels.Label{Name:"route", Value:"/"}}, Floats:[]promql.FPoint{promql.FPoint{T:0, F:9}, promql.FPoint{T:30000, F:9}, promql.FPoint{T:60000, F:9}, promql.FPoint{T:90000, F:9}, promql.FPoint{T:120000, F:9}, promql.FPoint{T:150000, F:9}, promql.FPoint{T:180000, F:9}, promql.FPoint{T:210000, F:9}, promql.FPoint{T:240000, F:9}, promql.FPoint{T:270000, F:9}, promql.FPoint{T:300000, F:9}, promql.FPoint{T:330000, F:9}, promql.FPoint{T:360000, F:9}, promql.FPoint{T:390000, F:9}, promql.FPoint{T:420000, F:9}, promql.FPoint{T:450000, F:9}, promql.FPoint{T:480000, F:9}, promql.FPoint{T:510000, F:9}, promql.FPoint{T:540000, F:9}, promql.FPoint{T:570000, F:9}, promql.FPoint{T:600000, F:9}, promql.FPoint{T:630000, F:9}, promql.FPoint{T:660000, F:9}, promql.FPoint{T:690000, F:9}, promql.FPoint{T:720000, F:9}, promql.FPoint{T:750000, F:9}, promql.FPoint{T:780000, F:9}, promql...(output trimmed) got: &promql.Result{Err:error(nil), Value:promql.Matrix{promql.Series{Metric:labels.Labels{}, Floats:[]promql.FPoint{promql.FPoint{T:0, F:1}, promql.FPoint{T:30000, F:1}, promql.FPoint{T:60000, F:1}, promql.FPoint{T:90000, F:1}, promql.FPoint{T:120000, F:1}, promql.FPoint{T:150000, F:1}, promql.FPoint{T:180000, F:1}, promql.FPoint{T:210000, F:1}, promql.FPoint{T:240000, F:1}, promql.FPoint{T:270000, F:1}, promql.FPoint{T:300000, F:1}, promql.FPoint{T:330000, F:1}, promql.FPoint{T:360000, F:1}, promql.FPoint{T:390000, F:1}, promql.FPoint{T:420000, F:1}, promql.FPoint{T:450000, F:1}, promql.FPoint{T:480000, F:1}, promql.FPoint{T:510000, F:1}, promql.FPoint{T:540000, F:1}, promql.FPoint{T:570000, F:1}, promql.FPoint{T:600000, F:1}, promql.FPoint{T:630000, F:1}, promql.FPoint{T:660000, F:1}, promql.FPoint{T:690000, F:1}, promql.FPoint{T:720000, F:1}, promql.FPoint{T:750000, F:1}, promql.FPoint{T:780000, F:1}, promql.FPoint{T:810000, F:1}, promql.FPoint{T:840000, F:1}, promql.FPoint{T:870000, F:...(output trimmed)
Note that LHS and RHS are passing on their own but in the "or" they start failing
Adding this test to
TestQueriesAgainstOldEngine
results in failure