1

What is the equivalent for coalesce in the new jOOQ 3.14 SQL/JSON supporting version (in PostgreSQL)?

select coalesce(json_agg(t.*), '[]'::json)
from (select 'test' as mycol where 1 = 2) t;

The following unfortunately fails with the error "COALESCE types json and uuid[] cannot be matched".

coalesce(jsonArrayAgg(mycol), emptyArray<type>())
Lukas Eder
  • 211,314
  • 129
  • 689
  • 1,509
Tobias Marschall
  • 2,355
  • 3
  • 22
  • 40

1 Answers1

1

JSON.json() or JSONB.jsonb(), e.g.:

coalesce(jsonArrayAgg(mycol), inline(json("[]")))
coalesce(jsonbArrayAgg(mycol), inline(jsonb("[]")))

But you can also use the jsonArray() or jsonbArray() constructors:

coalesce(jsonArrayAgg(mycol), jsonArray())
coalesce(jsonbArrayAgg(mycol), jsonbArray())
Lukas Eder
  • 211,314
  • 129
  • 689
  • 1,509