postgres
Prevent Postgres from automatically lower casing constraint names
This doesn’t work:
ALTER TABLE company DROP CONSTRAINT UQ_924dc2ee53aa15f1b16b4af12be;
Postgres says that this constraint doesn’t exist.
Solution
The problem is that Postgres will lowercase the constraint name. Use double quotes around the constraint name, like this:
ALTER TABLE company DROP CONSTRAINT "UQ_924dc2ee53aa15f1b16b4af12be";
Return empty array from aggregate in Prostgres
When you want to avoid NULL for the result of JSONB_AGG and instead you want to get an empty array.
Solution
Use COALESCE and '[]'::JSONB.
SELECT
COALESCE(
JSONB_AGG(
JSONB_BUILD_OBJECT(
'id', role.id,
'name', role.name
)
) FILTER (WHERE role.id IS NOT NULL),
'[]'::JSONB
) AS "adminRoles",
FROM ...