The following bug has been logged online:

Bug reference:      3799
Logged by:          depesz
Email address:      [EMAIL PROTECTED]
PostgreSQL version: 8.3 HEAD
Operating system:   linux, 32bit
Description:        csvlog skips some logs
Details: 

when settings are set to:
# select name, setting, unit from pg_settings where name ilike 'log%' order
by name;
            name             |            setting             |  unit
-----------------------------+--------------------------------+--------
 log_autovacuum_min_duration | 0                              | ms
 log_checkpoints             | on                             | [null]
 log_connections             | on                             | [null]
 log_destination             | stderr                         | [null]
 log_directory               | pg_log                         | [null]
 log_disconnections          | off                            | [null]
 log_duration                | off                            | [null]
 log_error_verbosity         | default                        | [null]
 log_executor_stats          | off                            | [null]
 log_filename                | postgresql-%Y-%m-%d_%H%M%S.log | [null]
 logging_collector           | on                             | [null]
 log_hostname                | off                            | [null]
 log_line_prefix             | [%t] [%p] <[EMAIL PROTECTED]>              | 
[null]
 log_lock_waits              | off                            | [null]
 log_min_duration_statement  | 0                              | ms
 log_min_error_statement     | error                          | [null]
 log_min_messages            | notice                         | [null]
 log_parser_stats            | off                            | [null]
 log_planner_stats           | off                            | [null]
 log_rotation_age            | 1440                           | min
 log_rotation_size           | 102400                         | kB
 log_statement               | none                           | [null]
 log_statement_stats         | off                            | [null]
 log_temp_files              | -1                             | kB
 log_timezone                | Poland                         | [null]
 log_truncate_on_rotation    | off                            | [null]
(26 rows)

running faulty query in psql gives this output:
# select * from (select * from test);
ERROR:  subquery in FROM must have an alias
HINT:  For example, FROM (SELECT ...) [AS] foo.

and this is logged to logfile:
[2007-12-05 21:29:27 CET] [23689] <[EMAIL PROTECTED]> ERROR:  subquery in FROM
must have an alias
[2007-12-05 21:29:27 CET] [23689] <[EMAIL PROTECTED]> HINT:  For example, FROM
(SELECT ...) [AS] foo.
[2007-12-05 21:29:27 CET] [23689] <[EMAIL PROTECTED]> STATEMENT:  select * from
(select * from test);


but when i change settings to:
# select name, setting, unit from pg_settings where name ilike 'log%' order
by name;
            name             |            setting             |  unit
-----------------------------+--------------------------------+--------
 log_autovacuum_min_duration | 0                              | ms
 log_checkpoints             | on                             | [null]
 log_connections             | on                             | [null]
 log_destination             | csvlog                         | [null]
 log_directory               | pg_log                         | [null]
 log_disconnections          | off                            | [null]
 log_duration                | off                            | [null]
 log_error_verbosity         | default                        | [null]
 log_executor_stats          | off                            | [null]
 log_filename                | postgresql-%Y-%m-%d_%H%M%S.log | [null]
 logging_collector           | on                             | [null]
 log_hostname                | off                            | [null]
 log_line_prefix             | [%t] [%p] <[EMAIL PROTECTED]>              | 
[null]
 log_lock_waits              | off                            | [null]
 log_min_duration_statement  | 0                              | ms
 log_min_error_statement     | error                          | [null]
 log_min_messages            | notice                         | [null]
 log_parser_stats            | off                            | [null]
 log_planner_stats           | off                            | [null]
 log_rotation_age            | 1440                           | min
 log_rotation_size           | 102400                         | kB
 log_statement               | none                           | [null]
 log_statement_stats         | off                            | [null]
 log_temp_files              | -1                             | kB
 log_timezone                | Poland                         | [null]
 log_truncate_on_rotation    | off                            | [null]
(26 rows)
(only log_destination changed), and issue the same query only this gets
logged:

2007-12-05 21:30:42.148
CET,"depesz","depesz",47570a4e.5cfb,[local],23803,5,"idle",2007-12-05
21:30:06 CET,1/4,0,ERROR,42601,"subquery in FROM must have an alias"

output on console is the same:
# select * from (select * from test);
ERROR:  subquery in FROM must have an alias
HINT:  For example, FROM (SELECT ...) [AS] foo.


documentation doesn't inform about this kind of change (i.e. skiping parts
of logs), so it looks like a bug.

depesz

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to