‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, 1 September 2020 20:21, Jeff Davis <pg...@j-davis.com> wrote:


>
> I'm fine removing the "validate" parameter completely for the sake of
> consistency.

FWIW, the more I think about this, I would agree with the removal.
However, isn't this mechanism used for other things too, e.g. 
attribute_reloptions,
tablespace_reloptions, that rely on the validation at that layer?. If my 
understanding
is correct, then simply removing the parameter would not cut it and a more 
extensive
refactoring would be needed.

>
> > [snip]
>
> The problem case would be a situation like the following:
>
> 1.  Someone loads an extension that creates a new reloption
>     "custom_reloption" of kind RELOPT_KIND_HEAP for their table access
>     method "my_tableam".
>
> 2.  They then create a table and forget to specify "USING my_tableam",
>     but use the option "custom_reloption=123".
>
>     Ideally, that would throw an error because "custom_reloption" is only
>     valid for "my_tableam"; but with my patch, no error would be thrown
>     because the extension has already added the reloption. It would just
>     create a normal heap and "custom_reloption=123" would be ignored.

This is something that I struggle to understand as an "error". In the example,
the set RELOPT_KIND_HEAP was extended for everyone. Regardless of whether
the newly added member will be used or not.

I mean, if the intention was to add reloptions specific to the extension,
shouldn't a new RELOPT_KIND_XXX be introduced? You seem to be thinking
along the same lines. Please, correct me if I understand you wrong.

What I am trying to say, is that with the current patch, I feel the behaviour
is not strange nor unexpected.


> I went with the simple approach because fixing that problem seemed a
> bit over-engineered.

Fixing that problem seems worth it on the long run. I do see the benefit of
the simple approach on the meantime.

//Georgios

>
>     Regards,
>     Jeff Davis
>




Reply via email to