From b85fc37130dfe3c7f44b5b6b0b8f2b62fdb8b6ad Mon Sep 17 00:00:00 2001 From: Joe Nelson Date: Sun, 24 Jan 2016 17:51:37 -0800 Subject: [PATCH] Protect against nulls that choke our decoder --- src/PostgREST/QueryBuilder.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/PostgREST/QueryBuilder.hs b/src/PostgREST/QueryBuilder.hs index 5acfbd37b..0da811869 100644 --- a/src/PostgREST/QueryBuilder.hs +++ b/src/PostgREST/QueryBuilder.hs @@ -376,7 +376,7 @@ asCsvF :: SqlFragment asCsvF = asCsvHeaderF <> " || '\n' || " <> asCsvBodyF where asCsvHeaderF = - "(SELECT string_agg(a.k, ',')" <> + "(SELECT coalesce(string_agg(a.k, ','), '')" <> " FROM (" <> " SELECT json_object_keys(r)::TEXT as k" <> " FROM ( " <> @@ -390,7 +390,7 @@ asJsonF :: SqlFragment asJsonF = "coalesce(array_to_json(array_agg(row_to_json(t))), '[]')::character varying" asJsonSingleF :: SqlFragment --TODO! unsafe when the query actually returns multiple rows, used only on inserting and returning single element -asJsonSingleF = "string_agg(row_to_json(t)::text, ',')::character varying " +asJsonSingleF = "coalesce(string_agg(row_to_json(t)::text, ','), '')::character varying " locationF :: [Text] -> SqlFragment locationF pKeys =