On Fri, Dec 18, 2020 at 8:24 AM Joel Jacobson <joel@xxxxxxxxxxxx> wrote:
The || operator for the jsonb type has a surprising behaviour.Instead of appending the right operand "as is" to the left operand,it has a magic behaviour if the right operand is an array,in which case it will append the items of the array,instead of appending the array itself as a single value.
It's not magic, and it is documented clearly.
I'll agree that the description could discuss the case explicitly, and the array||scalar case could be added to the examples.
Suggestions welcome if there is a better way to solve this problem.
As you are writing literals just put an array in the to-be-merged array.
select '["a","b"]'::jsonb || '[["c","d"]]'::jsonb
David J.