Helps if you vary the primary key

This commit is contained in:
Chris Allen 2017-05-04 21:45:35 -05:00
parent 43813cdfe2
commit 5609d78de4
2 changed files with 20 additions and 9 deletions

View File

@ -5,3 +5,12 @@ build-7.10:
build-8.0: build-8.0:
STACK_YAML="stack-8.0.yaml" stack build STACK_YAML="stack-8.0.yaml" stack build
ghci:
stack ghci
test:
stack test
test-ghci:
stack ghci esqueleto:test:test

View File

@ -1098,20 +1098,22 @@ main = do
l1k <- insert l1 l1k <- insert l1
l2k <- insert l2 l2k <- insert l2
l3k <- insert l3 l3k <- insert l3
liftIO $ putStrLn "****** l3 ******" -- liftIO $ putStrLn "****** l3 ******"
replicateM_ 3 (insert $ Deed "" l1k) mapM_ (\k -> insert $ Deed k l1k) (map show [1..3])
liftIO $ putStrLn "****** l1k ******"
replicateM_ 7 (insert $ Deed "" l3k) -- liftIO $ putStrLn "****** l1k ******"
liftIO $ putStrLn "****** l3k ******" mapM_ (\k -> insert $ Deed k l3k) (map show [4..10])
-- liftIO $ putStrLn "****** l3k ******"
(ret :: [(Value (Key Lord), Value Int)]) <- select $ from $ (ret :: [(Value (Key Lord), Value Int)]) <- select $ from $
\ ( lord `InnerJoin` deed ) -> do \ ( lord `InnerJoin` deed ) -> do
on $ lord ^. LordId ==. deed ^. DeedOwnerId on $ lord ^. LordId ==. deed ^. DeedOwnerId
groupBy (lord ^. LordId) groupBy (lord ^. LordId)
return (lord ^. LordId, count $ deed ^. DeedId) return (lord ^. LordId, count $ deed ^. DeedId)
liftIO $ putStrLn "****** ret ******" -- liftIO $ putStrLn "****** ret ******"
liftIO $ print ret -- liftIO $ print ret
liftIO $ ret `shouldBe` [ (Value l1k, Value 3) liftIO $ ret `shouldBe` [ (Value l3k, Value 7)
, (Value l3k, Value 7) ] , (Value l1k, Value 3) ]
it "GROUP BY works with HAVING" $ it "GROUP BY works with HAVING" $
run $ do run $ do