mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
Re-allow CREATE AS (but not SELECT INTO) in EXECUTE.
This commit is contained in:
parent
0441ce5e9f
commit
eb77ad55ed
@ -3,7 +3,7 @@
|
|||||||
* procedural language
|
* procedural language
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.54 2002/03/06 06:10:46 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.55 2002/03/25 07:41:10 tgl Exp $
|
||||||
*
|
*
|
||||||
* This software is copyrighted by Jan Wieck - Hamburg.
|
* This software is copyrighted by Jan Wieck - Hamburg.
|
||||||
*
|
*
|
||||||
@ -2019,13 +2019,25 @@ exec_stmt_dynexecute(PLpgSQL_execstate * estate,
|
|||||||
case SPI_OK_SELINTO:
|
case SPI_OK_SELINTO:
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Disallow this for now, because its behavior is not
|
* We want to disallow SELECT INTO for now, because its behavior
|
||||||
* consistent with SELECT INTO in a normal plpgsql context. We
|
* is not consistent with SELECT INTO in a normal plpgsql
|
||||||
* need to reimplement EXECUTE to parse the string as a
|
* context. (We need to reimplement EXECUTE to parse the string
|
||||||
* plpgsql command, not just feed it to SPI_exec.
|
* as a plpgsql command, not just feed it to SPI_exec.)
|
||||||
|
* However, CREATE AS should be allowed ... and since it produces
|
||||||
|
* the same parsetree as SELECT INTO, there's no way to tell
|
||||||
|
* the difference except to look at the source text. Wotta
|
||||||
|
* kluge!
|
||||||
*/
|
*/
|
||||||
|
{
|
||||||
|
char *ptr;
|
||||||
|
|
||||||
|
for (ptr = querystr; *ptr; ptr++)
|
||||||
|
if (!isspace((unsigned char) *ptr))
|
||||||
|
break;
|
||||||
|
if (*ptr == 'S' || *ptr == 's')
|
||||||
elog(ERROR, "EXECUTE of SELECT ... INTO is not implemented yet");
|
elog(ERROR, "EXECUTE of SELECT ... INTO is not implemented yet");
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
elog(ERROR, "unexpected error %d in EXECUTE of query '%s'",
|
elog(ERROR, "unexpected error %d in EXECUTE of query '%s'",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user