Re: Drop type "smgr"? - Mailing list pgsql-hackers

From Shawn Debnath
Subject Re: Drop type "smgr"?
Date
Msg-id 20190228230349.GC62457@f01898859afd.ant.amazon.com
Whole thread Raw
In response to Re: Drop type "smgr"?  (Thomas Munro <thomas.munro@gmail.com>)
List pgsql-hackers
On Fri, Mar 01, 2019 at 11:38:49AM +1300, Thomas Munro wrote:

> > Food for thought: if we are going to muck with the smgr APIs, would it
> > make sense to move away from SMgrRelation to something a bit more
> > generic like, say,  SMgrHandle to better organize the internal contents
> > of this structure? Internally, we could move things into an union and
> > based on type of handle: relation, undo, slru/generic, translate the
> > contents correctly. As you can guess, SMgrRelationData today is very
> > specific to relations and holding md specific information whose memory
> > would be better served re-used for the other storage managers.
> >
> > Thoughts?
> 
> Right, it does contain some md-specific stuff without even
> apologising.  Also smgropen() was rendered non-virtual at some point
> (I mean that implementations don't even get a chance to initialise
> anything, which works out only because md-specific code has leaked
> into smgr.c).  In one of my undo patches (which I'll post an updated
> version of on the appropriate thread soon) I added a void * called
> private_data so that undo_file.c can keep track of some stuff, but
> yeah I agree that more tidying up could be done.

I can send out a patch for this (on a separate thread!) to unblock us 
both. Unless you are closer to completion on this.

I prefer the union approach to make it more readable. I was considering 
re-factoring the structure to SMgrHandle and having the relation 
specific structure retain SMgrRelationData. For undo we could have
SMgrUndoData, and similarly for SLRU (I will come up with a better name 
than generic).  Then have these be in the union instead of the 
individual members of the struct.

-- 
Shawn Debnath
Amazon Web Services (AWS)


pgsql-hackers by date:

Previous
From: Thomas Munro
Date:
Subject: Re: Index Skip Scan
Next
From: Tom Lane
Date:
Subject: Re: Why don't we have a small reserved OID range for patch revisions?