Peter Eisentraut <peter_e@gmx.net> writes:
> ... But again, this is data type specific knowledge.
Actually, now that I think about it, the planner already has
datatype-specific knowledge about boolean equality (see
simplify_boolean_equality). It would take just a few more lines of code
there to recognize "x <> true" and "x <> false" as additional variant
spellings of the generic "x" or "NOT x" constructs. Not sure if it's
worth the trouble though; how many people really write such things?
If you really wanted to take it to extremes, you could also reduce
cases like "x > false", but that's starting to get a bit silly.
regards, tom lane