feat: Allow limit=0 in query params to return an empty array

This commit is contained in:
Laurence Isla
2022-04-28 17:14:29 -05:00
committed by GitHub
parent d2aa50be52
commit 5ad8800773
4 changed files with 27 additions and 7 deletions
+11
View File
@@ -10,6 +10,8 @@ module PostgREST.RangeQuery (
, restrictRange
, rangeGeq
, allRange
, limitZeroRange
, hasLimitZero
, NonnegRange
, rangeStatusHeader
, contentRangeH
@@ -74,6 +76,15 @@ rangeLeq :: Integer -> NonnegRange
rangeLeq n =
Range BoundaryBelowAll (BoundaryAbove n)
-- Special case to allow limit 0 queries
-- https://github.com/PostgREST/postgrest/issues/1121
-- 0 <= x <= -1
limitZeroRange :: Range Integer
limitZeroRange = Range (BoundaryBelow 0) (BoundaryAbove (-1))
hasLimitZero :: Range Integer -> Bool
hasLimitZero r = rangeUpper r == rangeUpper limitZeroRange
rangeStatusHeader :: NonnegRange -> Int64 -> Maybe Int64 -> (Status, Header)
rangeStatusHeader topLevelRange queryTotal tableTotal =
let lower = rangeOffset topLevelRange