on dev help sign in
alias labels
1f40b4dEitan Chatav
squeel-postgresql/src/Squeel/PostgreSQL/Query.hs+6−8
@@ -61,14 +61,16 @@ data Alias label = Alias
61data Aliased obj labeled where
61data Aliased obj labeled where
62 As :: obj x -> Alias label -> Aliased obj '(label, x)
62 As :: obj x -> Alias label -> Aliased obj '(label, x)
63instance IsLabel label (Alias label) where fromLabel _ = Alias
63instance IsLabel label (Alias label) where fromLabel _ = Alias
64+instance IsLabel label (obj x)
65+ => IsLabel label (Aliased obj '(label, x)) where
66+ fromLabel p = fromLabel p `As` fromLabel p
67+
68+alias :: Aliased obj '(label, x) -> Alias label
69+alias _ = Alias
64
70
65unalias :: Aliased obj '(label, x) -> obj x
71unalias :: Aliased obj '(label, x) -> obj x
66unalias (obj `As` _) = obj
72unalias (obj `As` _) = obj
67
73
68−instance HasField label xs x =>
69− IsLabel label (Aliased (Expression ps xs) '(label, x)) where
70− fromLabel p = fromLabel p `As` fromLabel p
71−
72renderAliased
74renderAliased
73 :: KnownSymbol label
75 :: KnownSymbol label
74 => (obj x -> ByteString)
76 => (obj x -> ByteString)
@@ -153,10 +155,6 @@ instance HasField label xss xs
153 fromLabel _ = UnsafeRelation $
155 fromLabel _ = UnsafeRelation $
154 fieldName (Proxy @label) (Proxy @xss) (Proxy @xs)
156 fieldName (Proxy @label) (Proxy @xss) (Proxy @xs)
155
157
156−instance HasField label xss xs
157− => IsLabel label (Aliased (Relation ps xss) '(label, xs)) where
158− fromLabel p = fromLabel p `As` fromLabel p
159−
160data Selection ps xss xs ys = Selection
158data Selection ps xss xs ys = Selection
161 { projection :: Projection ps xs ys
159 { projection :: Projection ps xs ys
162 , relation :: Relation ps xss xs
160 , relation :: Relation ps xss xs