In PostgreSQL 18, SELECT NULL::boolean AND false; and SELECT NULL::boolean AND true; are run. What do they return, in that order?
Explanation
AND is not symmetric with respect to unknown operands: a single false makes the conjunction false no matter what the other operand is, while an unknown combined with true stays unknown. Answering NULL and NULL treats null as infectious in all cases, which is true for arithmetic but not for the logical operators.