Обсуждение: The age() of a column?
What does it mean, and where is it documented? The only place in the docs I see reference to age() is https://www.postgresql.org/docs/9.6/functions-datetime.html and this doesn't seem to fit that use case. Thanks TAPb=# select COALESCE(ta.schemaname, 'pg_toast') || '.' || cl.relname, cl.relfrozenxid, age(cl.relfrozenxid) from pg_class cl FULL JOIN pg_tables ta ON ta.tablename = cl.relname where not cl.relfrozenxid = xid '0' --and age(cl.relfrozenxid) > 4000000 order by 1 limit 30; ?column? | relfrozenxid | age -------------------------------+--------------+--------- cds.ach_return_batch | 58569152 | 2111005 cds.ach_return_detail | 58569152 | 2111005 cds.all_day_event | 58569152 | 2111005 cds.all_day_event_trigger | 58569152 | 2111005 [snip] cds.bank_ftp | 58569152 | 2111005 cds.bank_health_care_job | 58569152 | 2111005 cds.bank_inbound_file | 58569152 | 2111005 cds.bank_input_format | 58569152 | 2111005 (30 rows) -- Angular momentum makes the world go 'round.
Ron <ronljohnsonjr@gmail.com> writes: > What does it mean, and where is it documented? age(xid) returns the difference between the given xid and the current xid. It's not terribly well documented, but psql's \df gives some info: regression=# \df+ age Schema | Name | Result data type | Argument data types | Type | Volatility | Parallel | Owner | Security | Access privileges | Language | Source code | Description ... pg_catalog | age | integer | xid | func | stable | restricted| postgres | invoker | | internal | xid_age | age of a transaction ID, in transactions before current transaction The only reference I could find in the SGML docs is in the maintenance chapter. regards, tom lane
On 11/28/18 7:32 PM, Ron wrote: > What does it mean, and where is it documented? The only place in the https://www.postgresql.org/docs/10/routine-vacuuming.html "The age column measures the number of transactions from the cutoff XID to the current transaction's XID." > docs I see reference to age() is > https://www.postgresql.org/docs/9.6/functions-datetime.html and this > doesn't seem to fit that use case. > > Thanks > > TAPb=# select COALESCE(ta.schemaname, 'pg_toast') || '.' || cl.relname, > cl.relfrozenxid, > age(cl.relfrozenxid) > from pg_class cl FULL JOIN pg_tables ta > ON ta.tablename = cl.relname > where not cl.relfrozenxid = xid '0' > --and age(cl.relfrozenxid) > 4000000 > order by 1 > limit 30; > ?column? | relfrozenxid | age > -------------------------------+--------------+--------- > cds.ach_return_batch | 58569152 | 2111005 > cds.ach_return_detail | 58569152 | 2111005 > cds.all_day_event | 58569152 | 2111005 > cds.all_day_event_trigger | 58569152 | 2111005 > [snip] > cds.bank_ftp | 58569152 | 2111005 > cds.bank_health_care_job | 58569152 | 2111005 > cds.bank_inbound_file | 58569152 | 2111005 > cds.bank_input_format | 58569152 | 2111005 > (30 rows) > > -- Adrian Klaver adrian.klaver@aklaver.com