Re: making relfilenodes 56 bits

Dilip Kumar <dilipbalaut@gmail.com>

From: Dilip Kumar <dilipbalaut@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Andres Freund <andres@anarazel.de>, Heikki Linnakangas <hlinnaka@iki.fi>, Thomas Munro <thomas.munro@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-06-24T11:08:13Z
Lists: pgsql-hackers

Attachments

On Fri, Jun 24, 2022 at 1:36 AM Robert Haas <robertmhaas@gmail.com> wrote:
>
> [ changing subject line so nobody misses what's under discussion ]
>
> For a quick summary of the overall idea being discussed here and some
> discussion of the problems it solves, see
> http://postgr.es/m/CA+TgmobM5FN5x0u3tSpoNvk_TZPFCdbcHxsXCoY1ytn1dXROvg@mail.gmail.com
>
> For discussion of the proposed renaming of non-user-visible references
> to relfilenode to either RelFileLocator or RelFileNumber as
> preparatory refactoring work for that change, see
> http://postgr.es/m/CA+TgmoamOtXbVAQf9hWFzonUo6bhhjS6toZQd7HZ-pmojtAmag@mail.gmail.com
>
> On Thu, Jun 23, 2022 at 3:55 AM Dilip Kumar <dilipbalaut@gmail.com> wrote:
> > I have worked on this renaming stuff first and once we agree with that
> > then I will rebase the other patches on top of this and will also work
> > on the other review comments for those patches.
> > So basically in this patch
> > - The "RelFileNode" structure to "RelFileLocator" and also renamed
> > other internal member as below
> > typedef struct RelFileLocator
> > {
> >       Oid spcOid; /* tablespace */
> >       Oid dbOid; /* database */
> >       Oid relNumber; /* relation */
> > } RelFileLocator;
>
> I like those structure member names fine, but I'd like to see this
> preliminary patch also introduce the RelFileNumber typedef as an alias
> for Oid. Then the main patch can change it to be uint64.

I have changed that. PFA, the updated patch.

-- 
Regards,
Dilip Kumar
EnterpriseDB: http://www.enterprisedb.com

Commits

  1. Fix typos in comments, code and documentation

  2. Increase width of RelFileNumbers from 32 bits to 56 bits.

  3. Move RelFileNumber declarations to common/relpath.h.

  4. Include RelFileLocator fields individually in BufferTag.

  5. Convert macros to static inline functions (buf_internals.h)

  6. Remove the restriction that the relmap must be 512 bytes.

  7. Change internal RelFileNode references to RelFileNumber or RelFileLocator.

  8. Reorder subskiplsn in pg_subscription to avoid alignment issues.

  9. Fix DROP {DATABASE,TABLESPACE} on Windows.

  10. Restructure smgr API as per recent proposal. smgr no longer depends on