Fix POST, PATCH, DELETE with ?select= and empty body or return=minimal (#1471)

* add tests for POST, PATCH, DELETE when using ?select= with empty bodies or ret=min

* fix select with empty bodies and ret=min

* improved tests for default cases, fixed computed overloaded columns on empty-body?select= PATCH
This commit is contained in:
Wolfgang Walther
2020-04-13 12:32:35 -05:00
committed by GitHub
parent 052843ac9b
commit be674eb41d
5 changed files with 159 additions and 21 deletions
+6 -1
View File
@@ -55,7 +55,7 @@ createWriteStatement selectQuery mutateQuery wantSingle isInsert asCsv rep pKeys
{locF} AS header,
{bodyF} AS body,
{responseHeadersF pgVer} AS response_headers
FROM ({selectQuery}) _postgrest_t |]
FROM ({selectF}) _postgrest_t |]
locF =
if isInsert && rep `elem` [Full, HeadersOnly]
@@ -72,6 +72,11 @@ createWriteStatement selectQuery mutateQuery wantSingle isInsert asCsv rep pKeys
| wantSingle = asJsonSingleF
| otherwise = asJsonF
selectF
-- prevent using any of the column names in ?select= when no response is returned from the CTE
| rep `elem` [None, HeadersOnly] = "SELECT * FROM " <> sourceCTEName
| otherwise = selectQuery
decodeStandard :: HD.Result ResultsWithCount
decodeStandard =
fromMaybe (Nothing, 0, [], mempty, Right []) <$> HD.rowMaybe standardRow