diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c
index d821969a7d..45e0d01a8a 100644
--- a/src/backend/parser/parse_clause.c
+++ b/src/backend/parser/parse_clause.c
@@ -1992,6 +1992,10 @@ findTargetlistEntrySQL92(ParseState *pstate, Node *node, List **tlist,
 		int			targetlist_pos = 0;
 		int			target_pos;
 
+		if (IsA(&aconst->val, Boolean))
+			/* treat booleans as expressions */
+			return findTargetlistEntrySQL99(pstate, node, tlist, exprKind);
+
 		if (!IsA(&aconst->val, Integer))
 			ereport(ERROR,
 					(errcode(ERRCODE_SYNTAX_ERROR),
