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