Difference between `timeShift()` and `map()` with `date.add`/`date.sub`

Is there any difference (in result and/or performance) between timeShift() and map() with date.add() or date.sub().

In particular this:

from(bucket:"my-bucket")
  |> range(start:-1d)
  ...
  |> timeShift(duration: 1h, columns: ["_time"])

Versus this:

from(bucket:"my-bucket")
  |> range(start:-1d)
  ...
  |> map(fn: (r) => {r with _time: date.add(d: 1h, to: r._time)})

Hello @matteo-zanoni,
Welcome!
There’s often just multiple ways to do something with Flux.
I believe timeShift should be more efficient.
But that could vary on your data.
You can always use the Flux profiler to find out: