on 86998f1 help sign in
project-m36/RelationTupleSet.hs
22 lines 800 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
7import Debug.Trace
9emptyTupleSet = HS.empty
10emptyAttributeSet = M.empty
12--ensure that all maps have the same keys and key count
14verifyRelationTupleSet :: RelationTupleSet -> (Bool,String)
15verifyRelationTupleSet tupleSet = if HS.size failedTupleSet > 0
16 then (False,"Tuple count or key mismatch: " ++ show failedTupleSet)
17 else (True, "")
18 where
19 allKeys = HS.foldr allKeysFolder S.empty tupleSet
20 allKeysFolder (RelationTuple m) = (S.union . M.keysSet) m
21 failedTupleSet = HS.filter (\(RelationTuple m) -> (M.keysSet m) /= allKeys) tupleSet