mirror of
https://github.com/postgres/postgres.git
synced 2025-05-08 07:21:33 +03:00
Fix omission of DiscardStmt in GetCommandLogLevel, per report from Hubert
Depesz Lubaczewski. In HEAD, also move a couple of other cases to make the code ordering match up with ProcessUtility.
This commit is contained in:
parent
9d3275e59d
commit
8fc4197f7d
@ -10,7 +10,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.298 2008/09/01 20:42:45 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.299 2008/10/10 13:48:05 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -147,7 +147,8 @@ check_xact_readonly(Node *parsetree)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Note: Commands that need to do more complicated checking are handled
|
* Note: Commands that need to do more complicated checking are handled
|
||||||
* elsewhere.
|
* elsewhere, in particular COPY and plannable statements do their
|
||||||
|
* own checking.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
switch (nodeTag(parsetree))
|
switch (nodeTag(parsetree))
|
||||||
@ -2015,10 +2016,6 @@ GetCommandLogLevel(Node *parsetree)
|
|||||||
lev = LOGSTMT_ALL;
|
lev = LOGSTMT_ALL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_CreateDomainStmt:
|
|
||||||
lev = LOGSTMT_DDL;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case T_CreateSchemaStmt:
|
case T_CreateSchemaStmt:
|
||||||
lev = LOGSTMT_DDL;
|
lev = LOGSTMT_DDL;
|
||||||
break;
|
break;
|
||||||
@ -2054,6 +2051,33 @@ GetCommandLogLevel(Node *parsetree)
|
|||||||
lev = LOGSTMT_ALL;
|
lev = LOGSTMT_ALL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case T_PrepareStmt:
|
||||||
|
{
|
||||||
|
PrepareStmt *stmt = (PrepareStmt *) parsetree;
|
||||||
|
|
||||||
|
/* Look through a PREPARE to the contained stmt */
|
||||||
|
lev = GetCommandLogLevel(stmt->query);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case T_ExecuteStmt:
|
||||||
|
{
|
||||||
|
ExecuteStmt *stmt = (ExecuteStmt *) parsetree;
|
||||||
|
PreparedStatement *ps;
|
||||||
|
|
||||||
|
/* Look through an EXECUTE to the referenced stmt */
|
||||||
|
ps = FetchPreparedStatement(stmt->name, false);
|
||||||
|
if (ps)
|
||||||
|
lev = GetCommandLogLevel(ps->plansource->raw_parse_tree);
|
||||||
|
else
|
||||||
|
lev = LOGSTMT_ALL;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case T_DeallocateStmt:
|
||||||
|
lev = LOGSTMT_ALL;
|
||||||
|
break;
|
||||||
|
|
||||||
case T_RenameStmt:
|
case T_RenameStmt:
|
||||||
lev = LOGSTMT_DDL;
|
lev = LOGSTMT_DDL;
|
||||||
break;
|
break;
|
||||||
@ -2074,10 +2098,6 @@ GetCommandLogLevel(Node *parsetree)
|
|||||||
lev = LOGSTMT_DDL;
|
lev = LOGSTMT_DDL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_AlterFunctionStmt:
|
|
||||||
lev = LOGSTMT_DDL;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case T_GrantStmt:
|
case T_GrantStmt:
|
||||||
lev = LOGSTMT_DDL;
|
lev = LOGSTMT_DDL;
|
||||||
break;
|
break;
|
||||||
@ -2106,6 +2126,10 @@ GetCommandLogLevel(Node *parsetree)
|
|||||||
lev = LOGSTMT_DDL;
|
lev = LOGSTMT_DDL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case T_AlterFunctionStmt:
|
||||||
|
lev = LOGSTMT_DDL;
|
||||||
|
break;
|
||||||
|
|
||||||
case T_IndexStmt:
|
case T_IndexStmt:
|
||||||
lev = LOGSTMT_DDL;
|
lev = LOGSTMT_DDL;
|
||||||
break;
|
break;
|
||||||
@ -2186,6 +2210,10 @@ GetCommandLogLevel(Node *parsetree)
|
|||||||
lev = LOGSTMT_ALL;
|
lev = LOGSTMT_ALL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case T_DiscardStmt:
|
||||||
|
lev = LOGSTMT_ALL;
|
||||||
|
break;
|
||||||
|
|
||||||
case T_CreateTrigStmt:
|
case T_CreateTrigStmt:
|
||||||
lev = LOGSTMT_DDL;
|
lev = LOGSTMT_DDL;
|
||||||
break;
|
break;
|
||||||
@ -2202,6 +2230,10 @@ GetCommandLogLevel(Node *parsetree)
|
|||||||
lev = LOGSTMT_DDL;
|
lev = LOGSTMT_DDL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case T_CreateDomainStmt:
|
||||||
|
lev = LOGSTMT_DDL;
|
||||||
|
break;
|
||||||
|
|
||||||
case T_CreateRoleStmt:
|
case T_CreateRoleStmt:
|
||||||
lev = LOGSTMT_DDL;
|
lev = LOGSTMT_DDL;
|
||||||
break;
|
break;
|
||||||
@ -2282,33 +2314,6 @@ GetCommandLogLevel(Node *parsetree)
|
|||||||
lev = LOGSTMT_DDL;
|
lev = LOGSTMT_DDL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_PrepareStmt:
|
|
||||||
{
|
|
||||||
PrepareStmt *stmt = (PrepareStmt *) parsetree;
|
|
||||||
|
|
||||||
/* Look through a PREPARE to the contained stmt */
|
|
||||||
lev = GetCommandLogLevel(stmt->query);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case T_ExecuteStmt:
|
|
||||||
{
|
|
||||||
ExecuteStmt *stmt = (ExecuteStmt *) parsetree;
|
|
||||||
PreparedStatement *ps;
|
|
||||||
|
|
||||||
/* Look through an EXECUTE to the referenced stmt */
|
|
||||||
ps = FetchPreparedStatement(stmt->name, false);
|
|
||||||
if (ps)
|
|
||||||
lev = GetCommandLogLevel(ps->plansource->raw_parse_tree);
|
|
||||||
else
|
|
||||||
lev = LOGSTMT_ALL;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case T_DeallocateStmt:
|
|
||||||
lev = LOGSTMT_ALL;
|
|
||||||
break;
|
|
||||||
|
|
||||||
/* already-planned queries */
|
/* already-planned queries */
|
||||||
case T_PlannedStmt:
|
case T_PlannedStmt:
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user