VictoriaMetrics/app/vmselect/promql
Nikolay 8357c22cc8
app/vmselect: properly return binary pow function result (#7619)
Previously, for `^` aka pow function calls, VictoriaMetrics returned `1`
if left arg was Nan. For example, given query=`(hour()==2)^1` returns 1
for NaN produced by hour() == 2 function. It added additional non-exist
datapoints to the timeseries.

This commit port bugfix from `metricql` package and adds test for it.
Now, VictoriaMetrics
correctly returns `NaN` for such cases.

Related issue:
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/7359

Signed-off-by: f41gh7 <nik@victoriametrics.com>
(cherry picked from commit bb399518db)
2024-11-21 15:23:49 +01:00
..
active_queries.go vmselect: add support of multi-tenant queries (#6346) 2024-10-01 16:37:18 +02:00
aggr.go all: fix golangci-lint(revive) warnings after 0c0ed61ce7 2024-04-03 03:00:45 +03:00
aggr_incremental.go app/vmselect/promql/aggr_incremental.go: eliminate unnecessary memory allocation in incrementalAggrFuncContext.updateTimeseries 2024-01-23 02:29:13 +02:00
aggr_incremental_test.go app/vmselect/promql: fix TestIncrementalAggr test on systems less than 3 CPU cores 2023-03-20 20:37:44 -07:00
aggr_test.go app/vmselect/promql: simplify the code after 388d020b7c 2024-01-16 22:35:51 +02:00
binary_op.go app/vmselect: use strings.EqualFold instead of strings.ToLower where appropriate 2024-05-12 10:21:24 +02:00
eval.go app/vmselect: fixes possible panics for multitenant queries 2024-11-15 16:12:30 +01:00
eval_test.go vmselect: add support of multi-tenant queries (#6346) 2024-10-01 16:37:18 +02:00
exec.go promql: exclude limit_offset from default by metric name sorting (#7402) 2024-11-06 15:27:29 +01:00
exec_test.go app/vmselect: properly return binary pow function result (#7619) 2024-11-21 15:23:49 +01:00
memory_limiter.go app/vmselect: return back the logic for limits the amounts of memory occupied by concurrently executed queries if -search.maxMemoryPerQuery isn't set 2022-10-10 21:54:18 +03:00
memory_limiter_test.go app/vmselect: return back the logic for limits the amounts of memory occupied by concurrently executed queries if -search.maxMemoryPerQuery isn't set 2022-10-10 21:54:18 +03:00
parser.go all: add support for or filters in series selectors 2023-07-15 23:56:18 -07:00
rollup.go vmselect: add support of multi-tenant queries (#6346) 2024-10-01 16:37:18 +02:00
rollup_result_cache.go app/vmselect: fixes possible panics for multitenant queries 2024-11-15 16:12:30 +01:00
rollup_result_cache_test.go vmselect: add support of multi-tenant queries (#6346) 2024-10-01 16:37:18 +02:00
rollup_test.go all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
rollup_timing_test.go app/vmselect: use consistent randomizer in tests 2023-01-23 19:27:40 -08:00
timeseries.go vmselect: add support of multi-tenant queries (#6346) 2024-10-01 16:37:18 +02:00
timeseries_test.go app/vmselect/promql: use unsafe.Slice instead of deprecated reflect.SliceHeader 2024-02-29 17:51:16 +02:00
transform.go app/vmselect/promql: consistently replace NaN data points with non-NaN values for range_first and range_last functions 2024-09-23 15:00:05 +02:00
transform_test.go app/vmseleсt/promql: fix calculation of histogram buckets 2024-08-15 10:13:54 +02:00
tzdata.go all: cleanup: remove // +build ... lines, since they are no longer needed after Go1.17, and the minimum supported Go version for VictoriaMetrics source code is Go1.20 2023-11-13 19:15:42 +01:00