on dev help sign in
TableColumn
commit44d2580652f6f8d10795de7e3739a0e5fd46be20 authorEitan Chatav <eitan.chatav@gmail.com> dateMon 7 Aug 2017, 12:38 (9 years ago) parent6a62475
1 file changed+25−7
squeel-postgresql/src/Squeel/PostgreSQL/Statement.hs+25−7
squeel-postgresql/src/Squeel/PostgreSQL/Statement.hs+25−7
@@ -80,12 +80,6 @@ instance (HasColumn column columns ty, tables ~ '[table ::: columns])
8080 => IsLabel column (Expression params tables 'Ungrouped ty) where
8181 fromLabel = getColumn
8282
83−(&.)
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
88−
8983def :: Expression params '[] grouping ('Optional (nullity ty))
9084def = UnsafeExpression "DEFAULT"
9185
@@ -386,7 +380,7 @@ class (KnownSymbol table, KnownSymbol column)
386380 :: (HasTable table tables columns, HasColumn column columns ty)
387381 => Alias table
388382 -> Alias column
389− -> Expression params tables ('Grouped distincts) ty
383+ -> Expression params tables ('Grouped distincts) ty
390384
391385class (KnownSymbol table, KnownSymbol column)
392386 => Aggregated table column distincts ty where
@@ -397,6 +391,30 @@ class (KnownSymbol table, KnownSymbol column)
397391 -> Aggregate ty0 ty
398392 -> Expression params tables ('Grouped distincts) ty
399393
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
410+instance
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
416+ (&.) = getAggregate
417+
400418{-----------------------------------------
401419tables
402420-----------------------------------------}