Re: [PATCH][PROPOSAL] Add enum releation option type

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Nikolay Shaplov <dhyan(at)nataraj(dot)su>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [PATCH][PROPOSAL] Add enum releation option type
Date: 2018-02-15 15:53:27
Message-ID: 20180215155327.52suiqdcf3f4z3ir@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Nikolay Shaplov wrote:
> В письме от 9 февраля 2018 18:45:29 пользователь Alvaro Herrera написал:
>
> > Maybe we need some in-core user to verify the string case still works.
> > A new module in src/test/modules perhaps?
> I've looked attentively in src/test/modules... To properly test all reloptions
> hooks for modules wee need to create an extension with some dummy index in it.
> This way we can properly test everything. Creating dummy index would be fun,
> but it a quite big deal to create it, so it will require a separate patch to
> deal with. So I suppose string reloptions is better to leave untested for now,
> with a notion, that it should be done sooner or later

Do we really need a dummy index? I was thinking in something that just
calls a few C functions to create and parse a string reloption should be
more than enough.

> > I don't much like the way you've represented the list of possible values
> > for each enum. I think it'd be better to have a struct that represents
> > everything about each value (string name and C symbol. Maybe the
> > numerical value too if that's needed, but is it? I suppose all code
> > should use the C symbol only, so why do we care about the numerical
> > value?).
> One more reason to keep numeric value, that came to my mind, is that it seems
> to be logical to keep enum value in postgres internals represented as C-enum.
> And C-enum is actually an int value (can be easily casted both ways). It is
> not strictly necessary, but it seems to be a bit logical...

Oh, I didn't mean to steer you away from a C enum. I just meant that we
don't need to define the numerical values ourselves -- it should be fine
to use whatever the C compiler chooses for each C symbol (enum member
name). In the code we don't refer to the values by numerical value,
only by the C symbol.

--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Konstantin Knizhnik 2018-02-15 16:00:28 Contention preventing locking
Previous Message Nikolay Shaplov 2018-02-15 15:37:20 Re: [PATCH][PROPOSAL] Add enum releation option type