IS NULL と = NULL の挙動の違いはよく言われるけど、IS TRUE と = TRUE の違いも注意が必要。

$ psql83
Welcome to psql83 8.3.1, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

juno=# SELECT TRUE = TRUE;
 ?column? 
----------
 t
(1 row)

juno=# SELECT NULL = TRUE;
 ?column? 
----------

(1 row)

juno=# SELECT TRUE IS TRUE;
 ?column? 
----------
 t
(1 row)

juno=# SELECT NULL IS TRUE;
 ?column? 
----------
 f
(1 row)