yesodweb/persistent

newtype interferes with unique constraints in MySQL

Aberta

#100 aberto em 29 de out. de 2012

 (11 comentários) (0 reação) (0 responsável)Haskell (302 forks)auto 404
Feature RequestMySQLgood first issue

Métricas do repositório

Stars
 (484 estrelas)
Métricas de merge de PR
 (Métricas PR pendentes)

Description

Text fields can have unique constraints over them.

However, when a Text field is newtype'd, for extra type safety, this facility appears to break:

In Model.hs with GeneralizedNewtypeDeriving:

newtype Hash = Hash { unHash :: Text }
    deriving (Show, Read, Eq, PathPiece, PersistField)

In config/models:

Profile
  hash Hash
  UniqueHash hash

On initial database migration with mysql, we see:

Migrating: ALTER TABLE `profile` ADD CONSTRAINT `unique_hash` UNIQUE(`hash`)
hpd3js: ConnectionError {errFunction = "query", errNumber = 1170, errMessage = "BLOB/TEXT column 'hash' used in key specification without a key length"}

Uncaught instance of overlapping instances floating around, perhaps? (Am I missing a deriving statement?)

Guia do colaborador