Andrei Lepikhov <lepi...@gmail.com> writes: > I think, the expression_returns_set examination doesn't necessary and we > can replace it with an assertion, if needed (see attachment).
I think you may be right that this test is not really necessary given the upstream parser test, but nonetheless I'm not inclined to remove it. The upstream test is very far away in code terms, and there are nearby steps like SQL-function inlining that make it less than 100% obvious that an expression that was SRF-free at parse time still is when we get here. I also don't care for destroying the parallel that the comment mentions to the checks done before pulling up a subquery. I'm reminded of Weinberg’s Law: If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. Unless there's a demonstrable, nontrivial performance hit from this check, I think we should leave it alone. regards, tom lane