Persist updateWhere cast error

Skip to first unread message

kees Bleijenberg

Jan 18, 2022, 8:30:52 AM1/18/22
to Yesod Web Framework
This is my persistmodel for postgresql:

   naam Text
   contents Text
   deriving Eq Show
This is what I do: runDB $ updateWhere  [SettingsdbNaam ==. "xxx"] [SettingsdbContents *=. "yyy"]
and I get:    
SqlError {sqlState = "42883", sqlExecStatus = FatalError, sqlErrorMsg = "operator does not exist: character varying
 * unknown", sqlErrorDetail = "", sqlErrorHint = "No operator matches the given name and argument type(s). You might need to add explicit type casts."}

This is the generated SQL:
[Debug#SQL] UPDATE "settingsdb" SET "contents"="contents"*? WHERE ("naam"=?); [PersistText "yyy",PersistText "xxx"]

What's wrong?


Michael Snoyman

Jan 18, 2022, 10:08:51 AM1/18/22
It looks like you're trying to multiple a string by a string, which seems to be the error message you're observing. What is it you're trying to accomplish?
You received this message because you are subscribed to the Google Groups "Yesod Web Framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email to

kees Bleijenberg

Jan 18, 2022, 10:31:04 AM1/18/22
to Yesod Web Framework
Ah, I see.   SettingsdbContents *=. "yyy"  does not mean 'store "yyy" in the field SettingsdbContents. 
In your book you write:
updateWhere [PersonFirstName ==. "Michael"] [PersonAge *=. 2]
as a simple example for updating a record. But is was too complicated for me :-). I thought this code sets the PersonAge to 2, but it is not.
Problem solved. Thanks.

Jan 18, 2022, 4:07:53 PM1/18/22
to Yesod Web Framework
Haha, nice one! No C and pointer dereferencing anymore ;-)
Reply all
Reply to author
0 new messages