On Wednesday, June 13, 2012 9:29:54 AM UTC-7, Rodrigo Rosenfeld Rosas wrote:
>
> I second this. I often want to do queries like (field is not null and 
> field <> ''). But when using an ORM, I'd prefer to generate such queries 
> with statements like:
>
> ds.exclude(field: [nil, ''])
>
> instead of
>
> ds.exclude(field: nil).exclude(field: '')
>
> I just think this feels more natural than just converting to "field NOT IN 
> (NULL, '')".
>
> While the SQL IN behavior makes sense given that NULL == NULL is the 
> unknown state in Sql, I'd really prefer to use the Ruby behavior when doing 
> ORM (ie, nil == nil is true).
>
> Maybe you could provide some "Sequel.smart_nil_handling_on_in_list = true" 
> option?
>
>
As I posted earlier, I consider automatically using OR IS NULL for IN 
incorrect behavior, and I feel the same way (though not as strongly) for 
AND IS NOT NULL for NOT IN.  However, considering that :field=>nil does IS 
NULL and not = NULL, I can see why some people would find the behavior you 
propose desirable.  I'll probably implement it as an extension instead of a 
setting, though.

Thanks,
Jeremy

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sequel-talk/-/gpKTa22FhAEJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sequel-talk?hl=en.

Reply via email to