Re: [PATCH] Do not use StdRdOptions in Access Methods

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Amit Langote <amitlangote09@gmail.com>
Cc: Nikolay Shaplov <dhyan@nataraj.su>, Dent John <denty@qqdd.eu>, Thomas Munro <thomas.munro@gmail.com>, Tomas Vondra <tomas.vondra@2ndquadrant.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, "Iwata, Aya" <iwata.aya@jp.fujitsu.com>, Alvaro Herrera <alvherre@2ndquadrant.com>, Dmitry Dolgov <9erthalion6@gmail.com>
Date: 2019-10-26T02:45:46Z
Lists: pgsql-hackers
On Fri, Oct 25, 2019 at 04:42:24PM +0900, Amit Langote wrote:
> Hmm, if we're inventing a new API to replace the old one, why not use
> that opportunity to be consistent with our general style, which
> predominantly seems to be either words_separated_by_underscore() or
> UpperCamelCase().  Thoughts?

Not wrong.  Using small-case characters separated with underscores
would be more consistent with the rest perhaps?  We use that for the
initialization of custom variables and for all the relkind-related
interfaces.

> You might know already, but in short, the values in the passed-in
> relopt_parse_elts array (relopt_elems) must fit within
> relopt_struct_size.  Writing an Assert turned out to be tricky given
> that alignment must be considered, but I have tried to add one.  Pleas
> check, it very well might be wrong. ;)

Hmm.  I didn't expect it to be this confusing with relopt_type_size[].
I'll try to think about something :(

+ *     Parses reloptions provided by the caller in text array format and
+ *     fills and returns a struct containing the parsed option values
The sentence structure is weird, perhaps:
This routine parses "reloptions" provided by the caller in text-array
format.  The parsing is done with a table describing the allowed
options, defined by "relopt_elems" of length "num_relopt_elems".  The
returned result is a structure containing all the parsed option
values.

> Attached updated patch.  It would be nice to hear whether this patch
> is really what Nikolay intended to eventually do with this code.

Okay, let's check if Nikolay likes this idea.
--
Michael

Commits

  1. Refactor reloption handling for index AMs in-core

  2. Cleanup code in reloptions.h regarding reloption handling

  3. Refactor code building relation options

  4. Add some assertions to view reloption macros