From: | jian he <jian(dot)universality(at)gmail(dot)com> |
---|---|
To: | Quan Zongliang <quanzongliang(at)yeah(dot)net> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Fix log_line_prefix to display the transaction id (%x) for statements not in a transaction block |
Date: | 2024-01-11 13:18:15 |
Message-ID: | CACJufxHJdmEu24nZ==-bko1vCcC4CvLKSC481EV+CL4s5k0sSQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi.
+ /* Log immediately if dictated by log_statement and XID assigned. */
+ if (GetTopTransactionIdIfAny() != InvalidTransactionId &&
+ check_log_statement(parsetree_list))
change to
+ /* Log immediately if dictated by log_statement and XID assigned. */
+ if ( check_log_statement(parsetree_list) &&
+ GetTopTransactionIdIfAny() != InvalidTransactionId)
I think it would reduce GetTopTransactionIdIfAny() calls.
I guess people will have different opinion that
simple query like:
`explain(analyze) select g from generate_series(1,1e6) g, pg_sleep(10);`
The log output will only be generated after 10 seconds.
of course, there is pg_stat_activity and other ways to view the running query.
playing around with the patch.
The patch is better than the current HEAD, in some cases.
both under condition:
alter system set log_line_prefix = '%m [%p] %q%u(at)%d/%a XID:%x ';
set log_statement = 'all';
select pg_reload_conf();
With Patch:
src3=# create table x1(a int);
2024-01-11 17:11:51.150 CST [115782] jian(at)src3/psql XID:814 LOG:
statement: create table x1(a int);
CREATE TABLE
src3=#
src3=# insert into x1 select 100;
2024-01-11 17:12:06.953 CST [115782] jian(at)src3/psql XID:815 LOG:
statement: insert into x1 select 100;
INSERT 0 1
src3=# begin;
2024-01-11 17:12:17.543 CST [115782] jian(at)src3/psql XID:0 LOG:
statement: begin;
BEGIN
src3=*# insert into x1 select 100;
2024-01-11 17:12:24.779 CST [115782] jian(at)src3/psql XID:816 LOG:
statement: insert into x1 select 100;
INSERT 0 1
src3=*# commit;
2024-01-11 17:12:29.851 CST [115782] jian(at)src3/psql XID:816 LOG:
statement: commit;
COMMIT
src3=# select 11;
2024-01-11 17:14:22.909 CST [115782] jian(at)src3/psql XID:0 LOG:
statement: select 11;
?column?
----------
11
(1 row)
src3=# drop table x1;
2024-01-11 17:15:01.409 CST [115782] jian(at)src3/psql XID:817 LOG:
statement: drop table x1;
DROP TABLE
src3=# select pg_current_xact_id();
2024-01-11 17:21:55.602 CST [115782] jian(at)src3/psql XID:818 LOG:
statement: select pg_current_xact_id();
pg_current_xact_id
--------------------
818
(1 row)
---------------------------------------------------------------------------------
without patch:
src4=# insert into x1 select 100;
2024-01-11 17:07:13.556 CST [115240] jian(at)src4/psql XID:0 LOG:
statement: insert into x1 select 100;
INSERT 0 1
src4=# begin;
2024-01-11 17:07:31.345 CST [115240] jian(at)src4/psql XID:0 LOG:
statement: begin;
BEGIN
src4=*# insert into x1 select 100;
2024-01-11 17:07:35.475 CST [115240] jian(at)src4/psql XID:0 LOG:
statement: insert into x1 select 100;
INSERT 0 1
src4=*# commit;
2024-01-11 17:07:39.095 CST [115240] jian(at)src4/psql XID:863 LOG:
statement: commit;
COMMIT
src4=# show logging_collector;
2024-01-11 17:09:59.307 CST [115240] jian(at)src4/psql XID:0 LOG:
statement: show logging_collector;
logging_collector
-------------------
off
(1 row)
src4=# select 11;
2024-01-11 17:14:30.001 CST [115240] jian(at)src4/psql XID:0 LOG:
statement: select 11;
?column?
----------
11
(1 row)
src4=# drop table x1;
2024-01-11 17:15:08.010 CST [115240] jian(at)src4/psql XID:0 LOG:
statement: drop table x1;
DROP TABLE
src4=# select pg_current_xact_id();
2024-01-11 17:21:22.085 CST [115240] jian(at)src4/psql XID:0 LOG:
statement: select pg_current_xact_id();
pg_current_xact_id
--------------------
867
(1 row)
From | Date | Subject | |
---|---|---|---|
Next Message | Magnus Hagander | 2024-01-11 13:24:58 | Re: System username in pg_stat_activity |
Previous Message | Alvaro Herrera | 2024-01-11 12:41:49 | Re: tablecmds.c/MergeAttributes() cleanup |