on 89cf883 help sign in
project-m36/RelationTupleSet.hs
20 lines 774 B history raw
1module RelationTupleSet where
2import RelationType
3import qualified Data.Map as M
4import qualified Data.Set as S
5import qualified Data.List as L
6import qualified Data.HashSet as HS
8emptyTupleSet = HS.empty
9emptyAttributeSet = M.empty
11--ensure that all maps have the same keys and key count
12verifyRelationTuple :: RelationTupleSet -> (Bool,String)
13verifyRelationTuple tupleSet = if HS.size failedTupleSet > 0
14 then (False,"Tuple count or key mismatch: " ++ show failedTupleSet)
15 else (True, "")
16 where
17 allKeys = HS.foldr allKeysFolder S.empty tupleSet
18 allKeysFolder (RelationTuple m) = (S.union . M.keysSet) m
19 failedTupleSet = HS.filter (\(RelationTuple m) -> (M.keysSet m) == allKeys) tupleSet