@@ -199,10 +199,30 @@ instance (HasUnique relation relations columns, Has column columns ty)
199 => IsLabel column (Expression relations 'Ungrouped params ty) where
199 => IsLabel column (Expression relations 'Ungrouped params ty) where
200 fromLabel = UnsafeExpression $ renderAlias (Alias @column)
200 fromLabel = UnsafeExpression $ renderAlias (Alias @column)
202+instance (HasUnique relation relations columns, Has column columns ty)
204+ (Aliased (Expression relations 'Ungrouped params) (column ::: ty)) where
205+ fromLabel = fromLabel @column `As` Alias @column
207+instance (HasUnique relation relations columns, Has column columns ty)
209+ (NP (Aliased (Expression relations 'Ungrouped params)) '[column ::: ty]) where
210+ fromLabel = fromLabel @column :* Nil
202instance (Has relation relations columns, Has column columns ty)
212instance (Has relation relations columns, Has column columns ty)
203 => IsQualified relation column (Expression relations 'Ungrouped params ty) where
213 => IsQualified relation column (Expression relations 'Ungrouped params ty) where
204 relation ! column = UnsafeExpression $
214 relation ! column = UnsafeExpression $
205 renderAlias relation <> "." <> renderAlias column
215 renderAlias relation <> "." <> renderAlias column
217+instance (Has relation relations columns, Has column columns ty)
218+ => IsQualified relation column
219+ (Aliased (Expression relations 'Ungrouped params) (column ::: ty)) where
220+ relation ! column = relation ! column `As` column
222+instance (Has relation relations columns, Has column columns ty)
223+ => IsQualified relation column
224+ (NP (Aliased (Expression relations 'Ungrouped params)) '[column ::: ty]) where
225+ relation ! column = relation ! column :* Nil
208 ( HasUnique relation relations columns
228 ( HasUnique relation relations columns
@@ -211,7 +231,7 @@ instance
211 ) => IsLabel column
231 ) => IsLabel column
212 (Expression relations ('Grouped bys) params ty) where
232 (Expression relations ('Grouped bys) params ty) where
213 fromLabel = UnsafeExpression $ renderAlias (Alias @column)
233 fromLabel = UnsafeExpression $ renderAlias (Alias @column)
216 ( Has relation relations columns
236 ( Has relation relations columns
217 , Has column columns ty
237 , Has column columns ty
@@ -221,6 +241,24 @@ instance
221 relation ! column = UnsafeExpression $
241 relation ! column = UnsafeExpression $
222 renderAlias relation <> "." <> renderAlias column
242 renderAlias relation <> "." <> renderAlias column
245+ ( Has relation relations columns
246+ , Has column columns ty
247+ , GroupedBy relation column bys
248+ ) => IsQualified relation column
249+ (Aliased (Expression relations ('Grouped bys) params)
250+ (column ::: ty)) where
251+ relation ! column = relation ! column `As` column
254+ ( Has relation relations columns
255+ , Has column columns ty
256+ , GroupedBy relation column bys
257+ ) => IsQualified relation column
258+ ( NP (Aliased (Expression relations ('Grouped bys) params))
259+ '[column ::: ty]) where
260+ relation ! column = relation ! column :* Nil
224-- | analagous to `Nothing`
262-- | analagous to `Nothing`
226-- >>> renderExpression $ null_
264-- >>> renderExpression $ null_