[Haskell-cafe] handling NULL value in database query with Maybe (or other ...)

Damien Mattei mattei at oca.eu
Tue Dec 18 15:44:09 UTC 2018


forM_ bd_rows_WDS $ \(Only x) ->
putStrLn $ "x =" ++ maybe "NULL" Text.unpack x

it worked...
thank you , i will which on i use because i need to forget all NULL
values ,get just an answer

strange lazy evaluation at runtime i had error at this:
putStrLn "before query WDS"
    bd_rows_WDS <- query conn qry_head_WDS (Only (name::String))

 putStrLn "after query WDS"

and it has been solved 20 lines below withe maybe:
forM_ bd_rows_WDS $ \(Only x) ->
putStrLn $ "x =" ++ maybe "NULL" Text.unpack x

that now deal with NULL values

i suppose it's  because until some printing is done nothing is evaluated
before in lazy programming...

Le 18/12/2018 16:22, Neil Mayhew a écrit :
> On 2018-12-18 7:43 AM, Damien Mattei wrote:
>> i hoped asked could avoid using sort of Null pointer as mentioned in
>> this article:
>> https://www.lucidchart.com/techblog/2015/08/31/the-worst-mistake-of-computer-science/
>> if someone else have a simpler solution email me
> You can avoid it: make the DNUM column non-NULL in your database schema.
> That "worst mistake" applies to databases as well as programming
> languages! :-)
> If you have to allow NULL in the database, then you have to handle
> Nothing in your code. However, a neater way of doing it is to use the
> maybe function:
> forM_ bd_rows_WDS $ \(Only x) ->
>       putStrLn $ "x =" ++ maybe "" Text.unpack x
> This allows you to provide a default value in your code for when the
> column is NULL.
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.

Damien.Mattei at unice.fr, Damien.Mattei at oca.eu, UNS / OCA / CNRS

More information about the Haskell-Cafe mailing list