on fce7213 help sign in
rel8/src/Rel8/Table/Undefined.hs
26 lines 762 B history raw
1{-# language FlexibleContexts #-}
2{-# language NamedFieldPuns #-}
3{-# language TypeFamilies #-}
5module Rel8.Table.Undefined
6 ( undefined
7 )
8where
10-- base
11import Prelude hiding ( undefined )
13-- rel8
14import Rel8.Expr.Null ( snull, unsafeUnnullify )
15import Rel8.Schema.Context ( DB( DB ) )
16import Rel8.Schema.HTable ( htabulate, hfield, hspecs )
17import Rel8.Schema.Nullability ( Nullability( Nullable, NonNullable ) )
18import Rel8.Schema.Spec ( SSpec(..) )
19import Rel8.Table ( Table, fromColumns )
22undefined :: Table DB a => a
23undefined = fromColumns $ htabulate $ \field -> case hfield hspecs field of
24 SSpec {nullability, info} -> case nullability of
25 Nullable -> DB (snull Nullable info)
26 NonNullable -> DB (unsafeUnnullify (snull Nullable info))