on dev help sign in
move stuff
commitdebb295fcab80586b21f3da24c5253ccaf9c4700 authorEitan Chatav <eitan.chatav@gmail.com> dateSat 22 Apr 2017, 10:18 (10 years ago) parent1f40b4d
1 file changed+18−18
squeel-postgresql/src/Squeel/PostgreSQL/Query.hs+18−18
squeel-postgresql/src/Squeel/PostgreSQL/Query.hs+18−18
@@ -30,20 +30,6 @@ import qualified Data.ByteString.Char8 as Char8
3030
3131import Squeel.PostgreSQL.Type
3232
33−newtype Expression ps xs y =
34− UnsafeExpression { renderExpression :: ByteString }
35−
36−param1 :: Expression (p1:ps) cols p1
37−param1 = UnsafeExpression "$1"
38−param2 :: Expression (p1:p2:ps) cols p2
39−param2 = UnsafeExpression "$2"
40−param3 :: Expression (p1:p2:p3:ps) cols p3
41−param3 = UnsafeExpression "$3"
42−param4 :: Expression (p1:p2:p3:p4:ps) cols p4
43−param4 = UnsafeExpression "$4"
44−param5 :: Expression (p1:p2:p3:p4:p5:ps) cols p5
45−param5 = UnsafeExpression "$5"
46−
4733class HasField label xs x where
4834 fieldName :: Proxy label -> Proxy xs -> Proxy x -> ByteString
4935instance {-# OVERLAPPING #-} KnownSymbol label
@@ -53,10 +39,6 @@ instance {-# OVERLAPPABLE #-} HasField label xs y
5339 => HasField label (x ': xs) y where
5440 fieldName _ _ _ = fieldName (Proxy @label) (Proxy @xs) (Proxy @y)
5541
56−instance HasField label xs x => IsLabel label (Expression ps xs x) where
57− fromLabel _ = UnsafeExpression $
58− fieldName (Proxy @label) (Proxy @xs) (Proxy @x)
59−
6042data Alias label = Alias
6143data Aliased obj labeled where
6244 As :: obj x -> Alias label -> Aliased obj '(label, x)
@@ -94,6 +76,24 @@ instance (KnownSymbol label, AllAliased (x' ': xs))
9476 (x :& xs :: Rec (Aliased obj) ('(label, x) ': x' : xs)) =
9577 renderAliased render x <> ", " <> renderAllAliased render xs
9678
79+newtype Expression ps xs y =
80+ UnsafeExpression { renderExpression :: ByteString }
81+
82+param1 :: Expression (p1:ps) cols p1
83+param1 = UnsafeExpression "$1"
84+param2 :: Expression (p1:p2:ps) cols p2
85+param2 = UnsafeExpression "$2"
86+param3 :: Expression (p1:p2:p3:ps) cols p3
87+param3 = UnsafeExpression "$3"
88+param4 :: Expression (p1:p2:p3:p4:ps) cols p4
89+param4 = UnsafeExpression "$4"
90+param5 :: Expression (p1:p2:p3:p4:p5:ps) cols p5
91+param5 = UnsafeExpression "$5"
92+
93+instance HasField label xs x => IsLabel label (Expression ps xs x) where
94+ fromLabel _ = UnsafeExpression $
95+ fieldName (Proxy @label) (Proxy @xs) (Proxy @x)
96+
9797instance IsString (Expression ps xs 'PGText) where
9898 fromString str = UnsafeExpression $ "\'" <> fromString str <> "\'"
9999