> I think that is the probable reason for the above mentioned behaviour.
> As I understand here, the problem is that 'state' of backend is shown as
> active along with 'query' which according to docs (If state is active this 
> field
> shows the currently executing query.) means that query is executing.
> 
> This statement holds true for simple query but for prepared statement
> (using message 'P', 'B', 'D', 'E', 'S') it might not be completely right as
> we update the state only after sync message which can confuse some
> users as you have stated. However I don't think it is good idea to change
> state in between different messages or at least with the current set of
> states.
> 
>> I think this inconsistency is not very intutive to users...
> 
> Do you think we can fix it in any easy way, or might be updating docs
> can make users understand the current situation better?

One idea is, calling pgstat_report_activity(STATE_IDLE) in
exec_execute_message() of postgres.c. The function has already called
pgstat_report_activity(STATE_RUNNING) which shows "active" state in
pg_stat_actviity view. So why cann't we call
pgstat_report_activity(STATE_IDLE) here.

Somebody might claim that "idle" is a transaction state term. In the
case, I propose to add new state name, say "finished". So above
proposal would calling pgstat_report_activity(STATE_FINISHED) instead.

Best regards,
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to