@@ -8,6 +8,7 @@
8module Rel8.Table.Name
8module Rel8.Table.Name
9 ( namesFromLabels
9 ( namesFromLabels
10 , namesFromLabelsWith
10 , namesFromLabelsWith
11 , showLabels
12 , showLabels
12 , showNames
13 , showNames
@@ -23,6 +24,7 @@ import Prelude
23import Text.Casing ( quietSnake )
24import Text.Casing ( quietSnake )
27+import Rel8.Expr ( Expr )
26import Rel8.Kind.Labels ( renderLabels )
28import Rel8.Kind.Labels ( renderLabels )
27import Rel8.Schema.Context ( Col'(..), Name( Name ) )
29import Rel8.Schema.Context ( Col'(..), Name( Name ) )
28import Rel8.Schema.HTable ( htabulate, htabulateA, hfield, hspecs )
30import Rel8.Schema.HTable ( htabulate, htabulateA, hfield, hspecs )
@@ -43,6 +45,13 @@ namesFromLabelsWith f = fromColumns $ htabulate $ \field ->
43 SSpec {labels} -> Col (Name (f (renderLabels labels)))
45 SSpec {labels} -> Col (Name (f (renderLabels labels)))
48+showExprs :: Table Expr a => a -> [(String, String)]
49+showExprs as = case (namesFromLabels, toColumns as) of
50+ (names, exprs) -> getConst $ htabulateA $ \field ->
51+ case (hfield names field, hfield exprs field) of
52+ (Col (Name name), DB expr) -> Const [(name, show expr)]
46showLabels :: forall a. Table (Context a) a => a -> [NonEmpty String]
55showLabels :: forall a. Table (Context a) a => a -> [NonEmpty String]
47showLabels _ = getConst $
56showLabels _ = getConst $
48 htabulateA @(Columns a) $ \field -> case hfield hspecs field of
57 htabulateA @(Columns a) $ \field -> case hfield hspecs field of