correct query on rpc count=exact
corrects bad logic on e4006da(perf: remove toSourceRel)
This commit is contained in:
committed by
Steve Chavez
parent
2905753194
commit
c445105d55
@@ -236,11 +236,12 @@ readRequestToCountQuery (Node (Select{from=mainQi, fromAlias=tblAlias, implicitJ
|
|||||||
then mempty
|
then mempty
|
||||||
else " WHERE " ) <>
|
else " WHERE " ) <>
|
||||||
intercalateSnippet " AND " (
|
intercalateSnippet " AND " (
|
||||||
map (pgFmtLogicTree mainQi) logicForest ++
|
map (pgFmtLogicTree treeQi) logicForest ++
|
||||||
map pgFmtJoinCondition joinConditions_ ++
|
map pgFmtJoinCondition joinConditions_ ++
|
||||||
subQueries
|
subQueries
|
||||||
)
|
)
|
||||||
where
|
where
|
||||||
|
treeQi = maybe mainQi (QualifiedIdentifier (qiSchema mainQi)) tblAlias
|
||||||
tabl = fromQi mainQi <> maybe mempty (\a -> " AS " <> pgFmtIdent a) tblAlias
|
tabl = fromQi mainQi <> maybe mempty (\a -> " AS " <> pgFmtIdent a) tblAlias
|
||||||
implJs = fromQi <$> implJoins
|
implJs = fromQi <$> implJoins
|
||||||
subQueries = foldr existsSubquery [] forest
|
subQueries = foldr existsSubquery [] forest
|
||||||
|
|||||||
@@ -69,6 +69,20 @@ spec actualPgVersion =
|
|||||||
, "Content-Range" <:> "0-0/2" ]
|
, "Content-Range" <:> "0-0/2" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
it "includes exact count if requested" $ do
|
||||||
|
request methodHead "/rpc/getallprojects"
|
||||||
|
[("Prefer", "count=exact")] ""
|
||||||
|
`shouldRespondWith` ""
|
||||||
|
{ matchStatus = 200
|
||||||
|
, matchHeaders = ["Content-Range" <:> "0-4/5"]
|
||||||
|
}
|
||||||
|
request methodHead "/rpc/getallprojects?select=*,clients!inner(*)&clients.id=eq.1"
|
||||||
|
[("Prefer", "count=exact")] ""
|
||||||
|
`shouldRespondWith` ""
|
||||||
|
{ matchStatus = 200
|
||||||
|
, matchHeaders = ["Content-Range" <:> "0-1/2"]
|
||||||
|
}
|
||||||
|
|
||||||
it "returns proper json" $ do
|
it "returns proper json" $ do
|
||||||
post "/rpc/getitemrange" [json| { "min": 2, "max": 4 } |] `shouldRespondWith`
|
post "/rpc/getitemrange" [json| { "min": 2, "max": 4 } |] `shouldRespondWith`
|
||||||
[json| [ {"id": 3}, {"id":4} ] |]
|
[json| [ {"id": 3}, {"id":4} ] |]
|
||||||
|
|||||||
Reference in New Issue
Block a user