@@ -80,12 +80,6 @@ instance (HasColumn column columns ty, tables ~ '[table ::: columns])
80 => IsLabel column (Expression params tables 'Ungrouped ty) where
80 => IsLabel column (Expression params tables 'Ungrouped ty) where
81 fromLabel = getColumn
81 fromLabel = getColumn
84− :: (HasTable table tables columns, HasColumn column columns ty)
85− => Alias table -> Alias column -> Expression params tables 'Ungrouped ty
86−table &. column = UnsafeExpression $
87− renderAlias table <> "." <> renderAlias column
89def :: Expression params '[] grouping ('Optional (nullity ty))
83def :: Expression params '[] grouping ('Optional (nullity ty))
90def = UnsafeExpression "DEFAULT"
84def = UnsafeExpression "DEFAULT"
@@ -386,7 +380,7 @@ class (KnownSymbol table, KnownSymbol column)
386 :: (HasTable table tables columns, HasColumn column columns ty)
380 :: (HasTable table tables columns, HasColumn column columns ty)
387 => Alias table
381 => Alias table
388 -> Alias column
382 -> Alias column
389− -> Expression params tables ('Grouped distincts) ty
383+ -> Expression params tables ('Grouped distincts) ty
391class (KnownSymbol table, KnownSymbol column)
385class (KnownSymbol table, KnownSymbol column)
392 => Aggregated table column distincts ty where
386 => Aggregated table column distincts ty where
@@ -397,6 +391,30 @@ class (KnownSymbol table, KnownSymbol column)
397 -> Aggregate ty0 ty
391 -> Aggregate ty0 ty
398 -> Expression params tables ('Grouped distincts) ty
392 -> Expression params tables ('Grouped distincts) ty
394+class TableColumn table column expression where
395+ (&.) :: Alias table -> Alias column -> expression
396+instance (HasTable table tables columns, HasColumn column columns ty)
397+ => TableColumn table column (Expression params tables 'Ungrouped ty) where
398+ table &. column = UnsafeExpression $
399+ renderAlias table <> "." <> renderAlias column
400+instance (HasTable table tables columns, HasColumn column columns ty)
401+ => TableColumn table column (By tables (table ::: (column ::: ty))) where
404+ ( HasTable table tables columns
405+ , HasColumn column columns ty
406+ , GroupedBy table column distincts ty
407+ ) => TableColumn table column
408+ (Expression params tables ('Grouped distincts) ty) where
411+ ( HasTable table tables columns
412+ , HasColumn column columns ty0
413+ , Aggregated table column distincts ty
414+ ) => TableColumn table column
415+ (Aggregate ty0 ty -> Expression params tables ('Grouped distincts) ty) where
400{-----------------------------------------
418{-----------------------------------------
402-----------------------------------------}
420-----------------------------------------}