Provide interfaces to store and fetch undo records.
authorDilip Kumar <dilipkumar@localhost.localdomain>
Thu, 2 May 2019 05:58:13 +0000 (11:28 +0530)
committerDilip Kumar <dilip.kumar@enterprisedb.com>
Wed, 17 Jul 2019 11:55:48 +0000 (17:25 +0530)
commitb4c7d6041f2d7f46814e8bdd3d37e22d5e9c3c05
tree40e43893b69b681afd43003efb5341428c7e6445
parent126e9cc8da96ffa1a0c9842961db78b96d920917
Provide interfaces to store and fetch undo records.

Add the capability to form undo records and store them in undo logs.  We
also provide the capability to fetch the undo records.  This layer will use
undo-log-storage to reserve the space for the undo records and buffer
management routines to write and read the undo records.

Undo records are stored in sequential order in the undo log.  Each undo
record consists of a variable length header, tuple data, and payload
information.  The undo records are stored without any sort of alignment
padding and a undo record can span across multiple pages.  The undo records
for a transaction can span across multiple undo logs.

Author: Dilip Kumar with contributions from Robert Haas, Amit Kapila,
        Thomas Munro, Vignesh C and Rafia Sabih
Reviewed-by: Earlier version of this patch is reviewed by Amit Kapila
Tested-by: Neha Sharma
Discussion: https://www.postgresql.org/message-id/CAFiTN-uVxxopn0UZ64%3DF-sydbETBbGjWapnBikNo1%3DXv78UeFw%40mail.gmail.com
src/backend/access/undo/Makefile
src/backend/access/undo/README.undointerface [new file with mode: 0644]
src/backend/access/undo/undoaccess.c [new file with mode: 0644]
src/backend/access/undo/undorecord.c [new file with mode: 0755]
src/backend/storage/page/bufpage.c
src/include/access/transam.h
src/include/access/undoaccess.h [new file with mode: 0644]
src/include/access/undolog.h
src/include/access/undorecord.h [new file with mode: 0644]
src/include/storage/bufpage.h