mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-30 19:00:29 +08:00
Keep exec_simple_check_plan() from thinking "SELECT foo INTO bar" is simple.
It's not clear if this situation can occur in plpgsql other than via the EXECUTE USING case Heikki illustrated, which I will shortly close off. However, ignoring the intoClause if it's there is surely wrong, so let's patch it for safety. Backpatch to 8.3, which is as far back as this code has a PlannedStmt to deal with. There might be another way to make an equivalent test before that, but since this is just preventing hypothetical bugs, I'm not going to obsess about it.
This commit is contained in:
parent
3869e9aecb
commit
f4b4a46f01
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.265 2010/08/19 17:31:43 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.266 2010/08/19 18:10:48 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -5280,6 +5280,8 @@ exec_simple_check_plan(PLpgSQL_expr *expr)
|
||||
*/
|
||||
if (!IsA(stmt, PlannedStmt))
|
||||
return;
|
||||
if (stmt->commandType != CMD_SELECT || stmt->intoClause)
|
||||
return;
|
||||
plan = stmt->planTree;
|
||||
if (!IsA(plan, Result))
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user