1{-# language DataKinds #-}
3{-# options_ghc -fno-warn-redundant-constraints #-}
14import Data.Bifunctor ( first )
18import Opaleye.Internal.HaskellDB.PrimQuery ( OrderOp( orderDirection, orderNulls ) )
19import qualified Opaleye.Internal.HaskellDB.PrimQuery as Opaleye
20import qualified Opaleye.Internal.Order as Opaleye
23import Rel8.Expr ( Expr )
24import Rel8.Expr.Null ( unsafeUnnullify )
25import Rel8.Expr.Opaleye ( toPrimExpr )
26import Rel8.Order ( Order( Order ) )
27import Rel8.Type.Ord ( DBOrd )
30asc :: DBOrd a => Order (Expr a)
31asc = Order $ Opaleye.Order (\expr -> [(orderOp, toPrimExpr expr)])
33 orderOp :: Opaleye.OrderOp
34 orderOp = Opaleye.OrderOp
35 { orderDirection = Opaleye.OpAsc
36 , orderNulls = Opaleye.NullsLast
40desc :: DBOrd a => Order (Expr a)
41desc = Order $ Opaleye.Order (\expr -> [(orderOp, toPrimExpr expr)])
43 orderOp :: Opaleye.OrderOp
44 orderOp = Opaleye.OrderOp
45 { orderDirection = Opaleye.OpDesc
46 , orderNulls = Opaleye.NullsFirst
50nullsFirst :: Order (Expr a) -> Order (Expr (Maybe a))
51nullsFirst (Order (Opaleye.Order f)) =
52 Order $ Opaleye.Order $ fmap (first g) . f . unsafeUnnullify
54 g :: Opaleye.OrderOp -> Opaleye.OrderOp
55 g orderOp = orderOp { Opaleye.orderNulls = Opaleye.NullsFirst }
58nullsLast :: Order (Expr a) -> Order (Expr (Maybe a))
59nullsLast (Order (Opaleye.Order f)) =
60 Order $ Opaleye.Order $ fmap (first g) . f . unsafeUnnullify
62 g :: Opaleye.OrderOp -> Opaleye.OrderOp
63 g orderOp = orderOp { Opaleye.orderNulls = Opaleye.NullsLast }
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list