Avoid possibilities of null for our chosen decoder
This commit is contained in:
@@ -123,7 +123,7 @@ createWriteStatement _ _ mutateQuery _ None
|
|||||||
where
|
where
|
||||||
sql = [qc|
|
sql = [qc|
|
||||||
WITH {sourceCTEName} AS ({mutateQuery})
|
WITH {sourceCTEName} AS ({mutateQuery})
|
||||||
SELECT null, 0, null, null |]
|
SELECT '', 0, '', '' |]
|
||||||
|
|
||||||
createWriteStatement qi _ mutateQuery isSingle HeadersOnly
|
createWriteStatement qi _ mutateQuery isSingle HeadersOnly
|
||||||
pKeys _ (PayloadJSON (UniformObjects _)) =
|
pKeys _ (PayloadJSON (UniformObjects _)) =
|
||||||
@@ -134,10 +134,10 @@ createWriteStatement qi _ mutateQuery isSingle HeadersOnly
|
|||||||
SELECT {cols}
|
SELECT {cols}
|
||||||
FROM (SELECT 1 FROM {sourceCTEName}) t |]
|
FROM (SELECT 1 FROM {sourceCTEName}) t |]
|
||||||
cols = intercalate ", " [
|
cols = intercalate ", " [
|
||||||
"null AS total_result_set",
|
"'' AS total_result_set",
|
||||||
"pg_catalog.count(t) AS page_total",
|
"pg_catalog.count(t) AS page_total",
|
||||||
if isSingle then locationF pKeys else "null",
|
if isSingle then locationF pKeys else "''",
|
||||||
"null"
|
"''"
|
||||||
]
|
]
|
||||||
|
|
||||||
createWriteStatement qi selectQuery mutateQuery isSingle Full
|
createWriteStatement qi selectQuery mutateQuery isSingle Full
|
||||||
@@ -149,9 +149,9 @@ createWriteStatement qi selectQuery mutateQuery isSingle Full
|
|||||||
SELECT {cols}
|
SELECT {cols}
|
||||||
FROM ({selectQuery}) t |]
|
FROM ({selectQuery}) t |]
|
||||||
cols = intercalate ", " [
|
cols = intercalate ", " [
|
||||||
"null AS total_result_set", -- when updateing it does not make sense
|
"'' AS total_result_set", -- when updateing it does not make sense
|
||||||
"pg_catalog.count(t) AS page_total",
|
"pg_catalog.count(t) AS page_total",
|
||||||
if isSingle then locationF pKeys else "null" <> " AS header",
|
if isSingle then locationF pKeys else "''" <> " AS header",
|
||||||
bodyF <> " AS body"
|
bodyF <> " AS body"
|
||||||
]
|
]
|
||||||
bodyF
|
bodyF
|
||||||
@@ -387,7 +387,7 @@ asCsvF = asCsvHeaderF <> " || '\n' || " <> asCsvBodyF
|
|||||||
asCsvBodyF = "coalesce(string_agg(substring(t::text, 2, length(t::text) - 2), '\n'), '')"
|
asCsvBodyF = "coalesce(string_agg(substring(t::text, 2, length(t::text) - 2), '\n'), '')"
|
||||||
|
|
||||||
asJsonF :: SqlFragment
|
asJsonF :: SqlFragment
|
||||||
asJsonF = "array_to_json(array_agg(row_to_json(t)))::character varying"
|
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 :: 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 = "string_agg(row_to_json(t)::text, ',')::character varying "
|
||||||
|
|||||||
Reference in New Issue
Block a user