At Tue, 12 Jan 2021 07:09:28 +0000, "osumi.takami...@fujitsu.com" 
<osumi.takami...@fujitsu.com> wrote in 
> On Tuesday, January 12, 2021 12:52 PM Takayuki/綱川 貴之 
> <tsunakawa.ta...@fujitsu.com> wrote:
> > From: Osumi, Takamichi/大墨 昂道 <osumi.takami...@fujitsu.com>
> > > I updated the patch following this discussion, and fixed the
> > > documentation as well.
> > 
> > 
> > +             (rmid == RM_GIST_ID && info == RM_GIST_ID) ||
> > +             (rmid == RM_GENERIC_ID)))
> > 
> > info is wrong for GiST, and one pair of parenthesis is unnecessary.  The 
> > above
> > would be:
> > 
> > +             (rmid == RM_GIST_ID && info ==
> > XLOG_GIST_ASSIGN_LSN) ||
> > +             rmid == RM_GENERIC_ID))
> Oops, sorry for this careless mistake.
> Fixed. And again, regression test produces no failure.

@@ -449,6 +450,18 @@ XLogInsert(RmgrId rmid, uint8 info)
                return EndPos;
        }
 
+       /* Issues only limited types of WAL when wal logging is disabled */
+       if (wal_level == WAL_LEVEL_NONE &&
+               !((rmid == RM_XLOG_ID && info == XLOG_CHECKPOINT_SHUTDOWN) ||
+                 (rmid == RM_XLOG_ID && info == XLOG_PARAMETER_CHANGE) ||
+                 (rmid == RM_XACT_ID && info == XLOG_XACT_PREPARE) ||
+                 (rmid == RM_GIST_ID && info == XLOG_GIST_ASSIGN_LSN) ||
+                 rmid == RM_GENERIC_ID))

As Sawada-san mentioned, this prevents future index AMs from being
pluggable.  Providing an interface would work but seems a bit too
invasive.  The record insertion flags is there for this very purpose.

XLogBeginInsert();
XLogSetRecrodFlags(XLOG_MARK_ESSENTIAL);  # new flag value
XLOGInsert(....);

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center


Reply via email to