Re: Should pg_current_wal_location() become pg_current_wal_lsn()
Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>
From: Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>
To: david.rowley@2ndquadrant.com
Cc: pgsql-hackers@postgresql.org
Date: 2017-04-14T08:28:40Z
Lists: pgsql-hackers
At Mon, 10 Apr 2017 19:26:11 +1200, David Rowley <david.rowley@2ndquadrant.com> wrote in <CAKJS1f8O0njDKe8ePFQ-LK5-EjwThsDws6ohJ-+c6nWK+oUxtg@mail.gmail.com>
> ... and of course the other functions matching *wal*location*
>
> My thoughts here are that we're already breaking backward
> compatibility of these functions for PG10, so thought we might want to
> use this as an opportunity to fix the naming a bit more.
>
> I feel that the "location" word not the best choice. We also have a
> function called pg_tablespace_location() to give us the path that a
> tablespace is stored in, so I could understand anyone who's confused
> about what pg_current_wal_location() might do if they're looking at
> the function name only, and not the docs.
>
> For me, "lsn" suits these function names much better, so I'd like to
> see what other's think.
>
> It would be sad to miss this opportunity without at least discussing this first.
>
> The functions in question are:
>
> postgres=# \dfS *wal*location*
> List of functions
> Schema | Name | Result data type |
> Argument data types | Type
> ------------+--------------------------------+------------------+---------------------+--------
> pg_catalog | pg_current_wal_flush_location | pg_lsn |
> | normal
> pg_catalog | pg_current_wal_insert_location | pg_lsn |
> | normal
> pg_catalog | pg_current_wal_location | pg_lsn |
> | normal
> pg_catalog | pg_last_wal_receive_location | pg_lsn |
> | normal
> pg_catalog | pg_last_wal_replay_location | pg_lsn |
> | normal
> pg_catalog | pg_wal_location_diff | numeric |
> pg_lsn, pg_lsn | normal
> (6 rows)
>
> Opinions?
Similariliy, these columns may need renaming.
s=# select attname, attrelid::regclass from pg_attribute where attname like '%location%';
attname | attrelid
-----------------+---------------------
sent_location | pg_stat_replication
write_location | pg_stat_replication
flush_location | pg_stat_replication
replay_location | pg_stat_replication
(4 rows)
Currently the following functions and columns are using 'lsn'.
=# \dfS *lsn*
List of functions
Schema | Name | Result data type | Argument data types | Type
------------+-------------+------------------+---------------------+--------
pg_catalog | pg_lsn_cmp | integer | pg_lsn, pg_lsn | normal
pg_catalog | pg_lsn_eq | boolean | pg_lsn, pg_lsn | normal
...
pg_catalog | pg_lsn_recv | pg_lsn | internal | normal
pg_catalog | pg_lsn_send | bytea | pg_lsn | normal
(13 rows)
=# select distinct attname from pg_attribute where attname like '%lsn%';
attname
---------------------
confirmed_flush_lsn
latest_end_lsn
local_lsn
receive_start_lsn
received_lsn
remote_lsn
restart_lsn
srsublsn
(8 rows)
Feature is already frozen, but this seems inconsistent a bit..
regards,
--
Kyotaro Horiguchi
NTT Open Source Software Center
Commits
-
Rename WAL-related functions and views to use "lsn" not "location".
- d10c626de47d 10.0 landed