@@ -47,7 +47,7 @@ param5 = UnsafeExpression "$5"
47class HasField label xs x where
47class HasField label xs x where
48 fieldName :: Proxy label -> Proxy xs -> Proxy x -> ByteString
48 fieldName :: Proxy label -> Proxy xs -> Proxy x -> ByteString
49instance {-# OVERLAPPING #-} KnownSymbol label
49instance {-# OVERLAPPING #-} KnownSymbol label
50− => HasField label ((label ':= x) ': xs) x where
50+ => HasField label ('(label, x) ': xs) x where
51 fieldName _ _ _ = Char8.pack (symbolVal (Proxy @label))
51 fieldName _ _ _ = Char8.pack (symbolVal (Proxy @label))
52instance {-# OVERLAPPABLE #-} HasField label xs y
52instance {-# OVERLAPPABLE #-} HasField label xs y
53 => HasField label (x ': xs) y where
53 => HasField label (x ': xs) y where
@@ -57,23 +57,22 @@ instance HasField label xs x => IsLabel label (Expression ps xs x) where
57 fromLabel _ = UnsafeExpression $
57 fromLabel _ = UnsafeExpression $
58 fieldName (Proxy @label) (Proxy @xs) (Proxy @x)
58 fieldName (Proxy @label) (Proxy @xs) (Proxy @x)
60−data Identified ident x = (:=) ident x
61data Alias label = Alias
60data Alias label = Alias
62−data Aliased obj named where
61+data Aliased obj labeled where
63− As :: obj x -> Alias name -> Aliased obj (name ':= x)
62+ As :: obj x -> Alias label -> Aliased obj '(label, x)
64instance IsLabel label (Alias label) where fromLabel _ = Alias
63instance IsLabel label (Alias label) where fromLabel _ = Alias
66−unalias :: Aliased obj (name ':= x) -> obj x
65+unalias :: Aliased obj '(label, x) -> obj x
67unalias (obj `As` _) = obj
66unalias (obj `As` _) = obj
69instance HasField label xs x =>
68instance HasField label xs x =>
70− IsLabel label (Aliased (Expression ps xs) (label ':= x)) where
69+ IsLabel label (Aliased (Expression ps xs) '(label, x)) where
71 fromLabel p = fromLabel p `As` fromLabel p
70 fromLabel p = fromLabel p `As` fromLabel p
73renderAliased
72renderAliased
74− :: KnownSymbol name
73+ :: KnownSymbol label
75 => (obj x -> ByteString)
74 => (obj x -> ByteString)
76− -> Aliased obj (name ':= x)
75+ -> Aliased obj '(label, x)
77 -> ByteString
76 -> ByteString
78renderAliased render (obj `As` label) =
77renderAliased render (obj `As` label) =
79 render obj <> " AS " <> Char8.pack (symbolVal label)
78 render obj <> " AS " <> Char8.pack (symbolVal label)
@@ -83,14 +82,14 @@ class AllAliased xs where
83 :: (forall x. obj x -> ByteString)
82 :: (forall x. obj x -> ByteString)
84 -> Rec (Aliased obj) xs
83 -> Rec (Aliased obj) xs
85 -> ByteString
84 -> ByteString
86−instance KnownSymbol name => AllAliased '[name ':= x] where
85+instance KnownSymbol label => AllAliased '[ '(label, x)] where
87 renderAllAliased render
86 renderAllAliased render
88− (aliased :& RNil :: Rec (Aliased obj) '[name ':= x]) =
87+ (aliased :& RNil :: Rec (Aliased obj) '[ '(label, x)]) =
89 renderAliased render aliased
88 renderAliased render aliased
90−instance (KnownSymbol name, AllAliased (x' ': xs))
89+instance (KnownSymbol label, AllAliased (x' ': xs))
91− => AllAliased ((name ':= x) ': (x' ': xs)) where
90+ => AllAliased ('(label, x) ': (x' ': xs)) where
92 renderAllAliased render
91 renderAllAliased render
93− (x :& xs :: Rec (Aliased obj) ((name ':= x) ': (x' : xs))) =
92+ (x :& xs :: Rec (Aliased obj) ('(label, x) ': x' : xs)) =
94 renderAliased render x <> ", " <> renderAllAliased render xs
93 renderAliased render x <> ", " <> renderAllAliased render xs
96instance IsString (Expression ps xs 'PGText) where
95instance IsString (Expression ps xs 'PGText) where
@@ -155,7 +154,7 @@ instance HasField label xss xs
155 fieldName (Proxy @label) (Proxy @xss) (Proxy @xs)
154 fieldName (Proxy @label) (Proxy @xss) (Proxy @xs)
157instance HasField label xss xs
156instance HasField label xss xs
158− => IsLabel label (Aliased (Relation ps xss) (label ':= xs)) where
157+ => IsLabel label (Aliased (Relation ps xss) '(label, xs)) where
159 fromLabel p = fromLabel p `As` fromLabel p
158 fromLabel p = fromLabel p `As` fromLabel p
161data Selection ps xss xs ys = Selection
160data Selection ps xss xs ys = Selection