module Opaleye.Order (module Opaleye.Order, O.Order) where
import qualified Opaleye.Column as C
import Opaleye.QueryArr (Query)
import qualified Opaleye.Internal.QueryArr as Q
import qualified Opaleye.Internal.Order as O
import qualified Opaleye.Internal.HaskellDB.PrimQuery as HPQ
orderBy :: O.Order a -> Query a -> Query a
orderBy os q =
Q.simpleQueryArr (O.orderByU os . Q.runSimpleQueryArr q)
asc :: (a -> C.Column b) -> O.Order a
asc = O.order HPQ.OpAsc
desc :: (a -> C.Column b) -> O.Order a
desc = O.order HPQ.OpDesc
limit :: Int -> Query a -> Query a
limit n a = Q.simpleQueryArr (O.limit' n . Q.runSimpleQueryArr a)
offset :: Int -> Query a -> Query a
offset n a = Q.simpleQueryArr (O.offset' n . Q.runSimpleQueryArr a)