Hello.

I have just noticed (by accident) a semantic difference of the not-equal
operator (!=), depending on the style used. For example a query

    session.query(Foo).filter(Foo.bar_id != bar.id)

produces SQL like (expected)

    SELECT *
    FROM foo
    WHERE foo.bar_id != %(bar_id_1)s

whereas a query

    session.query(Foo).filter(Foo.bar != bar)

produces SQL like (NOT expected)

    SELECT *
    FROM foo
    WHERE (
        foo.bar_id != %(bar_id_1)s
        OR foo.bar_id IS NULL
    )

I thought that

    Foo.bar != bar

is just a shortcut for

   Foo.bar_id != bar.id

Is this difference intentional?
May I know why (i.e. the motivation)?


Thanks in advance,

Ladislav Lenart

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to