on b5477e2 help sign in
project-m36/RelationTupleSet.hs
20 lines 749 B history raw
1module RelationTupleSet where
2import RelationType
3import qualified Data.Map as M
4import qualified Data.Set as S
5import qualified Data.HashSet as HS
7emptyTupleSet = HS.empty
8emptyAttributeSet = M.empty
10--ensure that all maps have the same keys and key count
12verifyRelationTupleSet :: RelationTupleSet -> (Bool,String)
13verifyRelationTupleSet 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