1
0
mirror of https://github.com/postgres/postgres.git synced 2025-08-18 12:22:09 +03:00

Fix log_statement to properly recognize SELECT INTO and CREATE TABLE AS

and DDL statements.

Backpatch fix to 8.0.X.

Per report from Murthy Kambhampaty
This commit is contained in:
Bruce Momjian
2005-06-01 23:27:12 +00:00
parent 64f40008ec
commit 7b21f26ea7

View File

@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.440 2004/12/31 22:01:16 pgsql Exp $
* $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.440.4.1 2005/06/01 23:27:12 momjian Exp $
*
* NOTES
* this is the "main" module of the postgres backend and
@@ -495,7 +495,8 @@ pg_parse_query(const char *query_string)
if (IsA(parsetree, PrepareStmt))
parsetree = (Node *) (((PrepareStmt *) parsetree)->query);
if (IsA(parsetree, SelectStmt))
if (IsA(parsetree, SelectStmt) &&
((SelectStmt *) parsetree)->into == NULL)
continue; /* optimization for frequent command */
if (log_statement == LOGSTMT_MOD &&
@@ -513,6 +514,7 @@ pg_parse_query(const char *query_string)
}
commandTag = CreateCommandTag(parsetree);
if (strncmp(commandTag, "CREATE ", strlen("CREATE ")) == 0 ||
IsA(parsetree, SelectStmt) || /* SELECT INTO, CREATE AS */
strncmp(commandTag, "ALTER ", strlen("ALTER ")) == 0 ||
strncmp(commandTag, "DROP ", strlen("DROP ")) == 0 ||
IsA(parsetree, GrantStmt) || /* GRANT or REVOKE */