Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8fc4197

Browse files
committed
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.
1 parent 9d3275e commit 8fc4197

File tree

1 file changed

+42
-37
lines changed

1 file changed

+42
-37
lines changed

src/backend/tcop/utility.c

Lines changed: 42 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
*
1212
* IDENTIFICATION
13-
* $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.298 2008/09/01 20:42:45 tgl Exp $
13+
* $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.299 2008/10/10 13:48:05 tgl Exp $
1414
*
1515
*-------------------------------------------------------------------------
1616
*/
@@ -147,7 +147,8 @@ check_xact_readonly(Node *parsetree)
147147

148148
/*
149149
* Note: Commands that need to do more complicated checking are handled
150-
* elsewhere.
150+
* elsewhere, in particular COPY and plannable statements do their
151+
* own checking.
151152
*/
152153

153154
switch (nodeTag(parsetree))
@@ -2015,10 +2016,6 @@ GetCommandLogLevel(Node *parsetree)
20152016
lev = LOGSTMT_ALL;
20162017
break;
20172018

2018-
case T_CreateDomainStmt:
2019-
lev = LOGSTMT_DDL;
2020-
break;
2021-
20222019
case T_CreateSchemaStmt:
20232020
lev = LOGSTMT_DDL;
20242021
break;
@@ -2054,6 +2051,33 @@ GetCommandLogLevel(Node *parsetree)
20542051
lev = LOGSTMT_ALL;
20552052
break;
20562053

2054+
case T_PrepareStmt:
2055+
{
2056+
PrepareStmt *stmt = (PrepareStmt *) parsetree;
2057+
2058+
/* Look through a PREPARE to the contained stmt */
2059+
lev = GetCommandLogLevel(stmt->query);
2060+
}
2061+
break;
2062+
2063+
case T_ExecuteStmt:
2064+
{
2065+
ExecuteStmt *stmt = (ExecuteStmt *) parsetree;
2066+
PreparedStatement *ps;
2067+
2068+
/* Look through an EXECUTE to the referenced stmt */
2069+
ps = FetchPreparedStatement(stmt->name, false);
2070+
if (ps)
2071+
lev = GetCommandLogLevel(ps->plansource->raw_parse_tree);
2072+
else
2073+
lev = LOGSTMT_ALL;
2074+
}
2075+
break;
2076+
2077+
case T_DeallocateStmt:
2078+
lev = LOGSTMT_ALL;
2079+
break;
2080+
20572081
case T_RenameStmt:
20582082
lev = LOGSTMT_DDL;
20592083
break;
@@ -2074,10 +2098,6 @@ GetCommandLogLevel(Node *parsetree)
20742098
lev = LOGSTMT_DDL;
20752099
break;
20762100

2077-
case T_AlterFunctionStmt:
2078-
lev = LOGSTMT_DDL;
2079-
break;
2080-
20812101
case T_GrantStmt:
20822102
lev = LOGSTMT_DDL;
20832103
break;
@@ -2106,6 +2126,10 @@ GetCommandLogLevel(Node *parsetree)
21062126
lev = LOGSTMT_DDL;
21072127
break;
21082128

2129+
case T_AlterFunctionStmt:
2130+
lev = LOGSTMT_DDL;
2131+
break;
2132+
21092133
case T_IndexStmt:
21102134
lev = LOGSTMT_DDL;
21112135
break;
@@ -2186,6 +2210,10 @@ GetCommandLogLevel(Node *parsetree)
21862210
lev = LOGSTMT_ALL;
21872211
break;
21882212

2213+
case T_DiscardStmt:
2214+
lev = LOGSTMT_ALL;
2215+
break;
2216+
21892217
case T_CreateTrigStmt:
21902218
lev = LOGSTMT_DDL;
21912219
break;
@@ -2202,6 +2230,10 @@ GetCommandLogLevel(Node *parsetree)
22022230
lev = LOGSTMT_DDL;
22032231
break;
22042232

2233+
case T_CreateDomainStmt:
2234+
lev = LOGSTMT_DDL;
2235+
break;
2236+
22052237
case T_CreateRoleStmt:
22062238
lev = LOGSTMT_DDL;
22072239
break;
@@ -2282,33 +2314,6 @@ GetCommandLogLevel(Node *parsetree)
22822314
lev = LOGSTMT_DDL;
22832315
break;
22842316

2285-
case T_PrepareStmt:
2286-
{
2287-
PrepareStmt *stmt = (PrepareStmt *) parsetree;
2288-
2289-
/* Look through a PREPARE to the contained stmt */
2290-
lev = GetCommandLogLevel(stmt->query);
2291-
}
2292-
break;
2293-
2294-
case T_ExecuteStmt:
2295-
{
2296-
ExecuteStmt *stmt = (ExecuteStmt *) parsetree;
2297-
PreparedStatement *ps;
2298-
2299-
/* Look through an EXECUTE to the referenced stmt */
2300-
ps = FetchPreparedStatement(stmt->name, false);
2301-
if (ps)
2302-
lev = GetCommandLogLevel(ps->plansource->raw_parse_tree);
2303-
else
2304-
lev = LOGSTMT_ALL;
2305-
}
2306-
break;
2307-
2308-
case T_DeallocateStmt:
2309-
lev = LOGSTMT_ALL;
2310-
break;
2311-
23122317
/* already-planned queries */
23132318
case T_PlannedStmt:
23142319
{

0 commit comments

Comments
 (0)