Re: [ADMIN] Config option log_statement
От | Bruce Momjian |
---|---|
Тема | Re: [ADMIN] Config option log_statement |
Дата | |
Msg-id | 200505301938.j4UJc3218101@candle.pha.pa.us обсуждение исходный текст |
Список | pgsql-patches |
S Murthy Kambhampaty wrote: > In postgresql 8.0, "create table <> as ..." statements > appear not to logged unless log_statement = 'all' in > postgresql.conf. We are trying to reduce noise in the > logs from pgAdminIII and phpPgAdmin, but we use a lot > of 'create table <> as ...' queries that need to be > logged, and their duration tracked. Is there a > combination of settings that will do the trick? Can > postgresql be upgraded to log "create table <> as ..." > statements with log_statment = 'ddl' and/or > log_statment = 'mod'? Ah, I see I forgot about SELECT INTO when doing this for 8.0. The attached patch fixes it. I will apply it to 8.0.X and CVS current. Thanks for the report. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 Index: src/backend/tcop/postgres.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/tcop/postgres.c,v retrieving revision 1.444 diff -c -c -r1.444 postgres.c *** src/backend/tcop/postgres.c 24 May 2005 04:18:04 -0000 1.444 --- src/backend/tcop/postgres.c 30 May 2005 19:37:09 -0000 *************** *** 498,504 **** if (IsA(parsetree, PrepareStmt)) parsetree = (Node *) (((PrepareStmt *) parsetree)->query); ! if (IsA(parsetree, SelectStmt)) continue; /* optimization for frequent command */ if (log_statement == LOGSTMT_MOD && --- 498,505 ---- if (IsA(parsetree, PrepareStmt)) parsetree = (Node *) (((PrepareStmt *) parsetree)->query); ! if (IsA(parsetree, SelectStmt) && ! ((SelectStmt *) parsetree)->into == NULL) continue; /* optimization for frequent command */ if (log_statement == LOGSTMT_MOD && *************** *** 514,519 **** --- 515,521 ---- if ((log_statement == LOGSTMT_MOD || log_statement == LOGSTMT_DDL) && (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 */
В списке pgsql-patches по дате отправления: