BEGIN; \pset null 'NULL' SELECT true::ajbool, false::ajbool, NULL::bool::ajbool; ajbool | ajbool | ajbool --------+--------+-------- t | f | u (1 row) SELECT 't'::ajbool::bool, 'f'::ajbool::bool, 'u'::ajbool::bool; bool | bool | bool ------+------+------ t | f | NULL (1 row) CREATE TABLE test (i int, state ajbool); INSERT INTO test SELECT i, (CASE i%3 WHEN 0 THEN true WHEN 1 THEN false ELSE NULL END)::bool FROM generate_series(1,10) i; SELECT COUNT(1) FROM test where state; count ------- 3 (1 row) SELECT COUNT(1) FROM test where not state; count ------- 4 (1 row) ROLLBACK;