CurryInfo: ertools-3.0.0 / Database.ERD.Generic.requiredForeignDBKey

definition: Info
 
requiredForeignDBKey :: (Read t, Show t, Eq k, Show k) =>
                        String -> (Key -> t -> Dynamic) -> (Key -> t -> en)
                     -> (en -> k) -> k -> Transaction ()
requiredForeignDBKey ename entrypred info2entry keyf key =
  getDB (getAllEntities entrypred info2entry) |>>= \ens ->
  if null (filter (\e -> keyf e == key) ens)
   then doneT
   else errorT (TError KeyRequiredError
                       ("key: "++show key ++ " required in table: " ++ ename))
demand: Info
 no demanded arguments
deterministic: Info
 deterministic operation
documentation: Info
 
If a given key occurs in a (foreign key) attribute of an entity,
raise a transaction error.
failfree: Info
 <FAILING>
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_,_,_,_,_,_,_,_,_) |-> _}
name: Info
 requiredForeignDBKey
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 (Prelude.Read a, Prelude.Show a, Prelude.Eq c, Prelude.Show c) => String
-> (Prelude.Int -> a -> Database.KeyDatabaseSQLite.Dynamic) -> (Prelude.Int -> a
-> b) -> (b -> c) -> c -> Database.KeyDatabaseSQLite.Transaction ()
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term