From 1372de6f4344fa89a4ef823a65110f55a899a829 Mon Sep 17 00:00:00 2001 From: Ruslan Talpa Date: Tue, 28 Jun 2016 12:18:12 +0300 Subject: [PATCH] query simplification by @diogob --- src/PostgREST/QueryBuilder.hs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/PostgREST/QueryBuilder.hs b/src/PostgREST/QueryBuilder.hs index 37906635e..1b40ca893 100644 --- a/src/PostgREST/QueryBuilder.hs +++ b/src/PostgREST/QueryBuilder.hs @@ -212,15 +212,13 @@ callProc qi params selectQuery countQuery _ countTotal isSingle = SELECT {countResultF} AS total_result_set, pg_catalog.count(t) AS page_total, - case when pg_catalog.count(1) > 1 - then {bodyF} - else ( - select case when ((array_agg(row_to_json(t)))[1]->{_procName}) is not null - then ((array_agg(row_to_json(t)))[1]->{_procName})::character varying - else {bodyF} - end - ) - end as body + case + when pg_catalog.count(1) > 1 then + {bodyF} + else + coalesce(((array_agg(row_to_json(t)))[1]->{_procName})::character varying, {bodyF}) + + end as body FROM ({selectQuery}) t; |] -- FROM (select * from {sourceCTEName} {limitF range}) t;