Isso acabou sendo causado por um bug no
persistent-mysql
pacote que agora está corrigido em persistent-mysql-2.3
. Aqui está a causa raiz para os interessados:
A biblioteca MySQL C (e por extensão o Haskell
mysql
pacote, que persistent-mysql
depende) não distingue entre dados binários e textuais no nível do tipo. Então, se você salvou um TEXT
valor para o banco de dados, quando foi pesquisado por persistente, parecia ser dados binários (um PersistByteString
). Isso foi corrigido em #451 verificando o conjunto de caracteres da coluna, que os documentos da API do MySQL recomendam como a solução apropriada.
Para obter mais detalhes, consulte essa solicitação pull ou este problema .
Obrigado por fazer esta pergunta; Eu não teria percebido que havia um bug de outra forma.