@@ -80,6 +80,11 @@ instance (HasColumn column columns ty, tables ~ '[table ::: columns])
8080 => IsLabel column (Expression params tables 'Ungrouped ty) where
8181 fromLabel = getColumn
8282
83+instance (HasTable table tables columns, HasColumn column columns ty)
84+ => TableColumn table column (Expression params tables 'Ungrouped ty) where
85+ table &. column = UnsafeExpression $
86+ renderAlias table <> "." <> renderAlias column
87+
8388def :: Expression params '[] grouping ('Optional (nullity ty))
8489def = UnsafeExpression "DEFAULT"
8590
@@ -382,6 +387,14 @@ class (KnownSymbol table, KnownSymbol column)
382387 -> Alias column
383388 -> Expression params tables ('Grouped distincts) ty
384389
390+instance
391+ ( HasTable table tables columns
392+ , HasColumn column columns ty
393+ , GroupedBy table column distincts ty
394+ ) => TableColumn table column
395+ (Expression params tables ('Grouped distincts) ty) where
396+ (&.) = getGroup
397+
385398class (KnownSymbol table, KnownSymbol column)
386399 => Aggregated table column distincts ty where
387400 getAggregate
@@ -391,22 +404,6 @@ class (KnownSymbol table, KnownSymbol column)
391404 -> Aggregate ty0 ty
392405 -> Expression params tables ('Grouped distincts) ty
393406
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
402− (&.) = By
403−instance
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
409− (&.) = getGroup
410407instance
411408 ( HasTable table tables columns
412409 , HasColumn column columns ty0
@@ -517,6 +514,10 @@ data By tables tabcolty where
517514 -> Alias column
518515 -> By tables (table ::: (column ::: ty))
519516
517+instance (HasTable table tables columns, HasColumn column columns ty)
518+ => TableColumn table column (By tables (table ::: (column ::: ty))) where
519+ (&.) = By
520+
520521renderBy :: By tables tabcolty -> ByteString
521522renderBy (By table column) = renderAlias table <> "." <> renderAlias column
522523