Good afternoon-
    Was there a resolution of this? I'm wondering if it is worth it for me
to submit a PR for the next commitfest.

               -Ed

On Mon, Sep 9, 2024 at 8:40 PM Ed Behn <e...@behn.us> wrote:

> Sorry for taking so long to respond. I was at my day-job.
>
> As I mentioned, I am the maintainer of the PL/Haskell language extension.
> This extension allows users to write code in the Haskell language. In order
> to use numeric types, I will need to create a Haskell type equivalent.
> Something like
>
> data Numeric = PosInfinity | NegInfinity | NaN | Number Integer Int16
>
> where the Number constructor represents a numeric's mantissa and weight.
>
> In order to get or return data, I would need to be able to access those
> fields of the numeric type.
>
> I'm not proposing giving access to the actual numeric structure. Rather,
> the data should be accessed by function call or macro. This would allow
> future changes to the inner workings without breaking compatibility as long
> as the interface is maintained. It looks to me like all of the code to
> access data exists, it should simply be made accessible. An additional
> function should exist that allows an extension to create a numeric
> structure by passing the needed data.
>
>              -Ed
>
>
> On Mon, Sep 9, 2024 at 2:45 PM Robert Haas <robertmh...@gmail.com> wrote:
>
>> On Mon, Sep 9, 2024 at 2:02 PM Tom Lane <t...@sss.pgh.pa.us> wrote:
>> > By that argument, we should move every declaration in every .c file
>> > into c.h and be done.  I'd personally be happier if we had *not*
>> > exposed the other data structure details you mention, but that
>> > ship has sailed.
>>
>> Not every declaration in every .c file is of general interest, but the
>> ones that are probably should be moved into .h files. The on-disk
>> representation of a commonly-used data type certainly qualifies.
>>
>> You can see from Chapman's reply that I'm not making this up: when we
>> don't expose things, it doesn't keep people from depending on them, it
>> just makes them copy our code into their own repository. That's not a
>> win. It makes those extensions more fragile, not less, and it makes
>> the PostgreSQL extension ecosystem worse. pg_hint_plan is another,
>> recently-discussed example of this phenomenon: refuse to give people
>> the keys, and they start hot-wiring stuff.
>>
>> > If we do do what you're advocating, I'd at least insist that the
>> > declarations go into a new file numeric_internal.h, so that it's
>> > clear to all concerned that they're playing with fire if they
>> > depend on that stuff.
>>
>> I think that's a bit pointless considering that we don't do it in any
>> of the other cases. I'd rather be consistent with our usual practice.
>> But if it ends up in a separate header file that's still better than
>> the status quo.
>>
>> --
>> Robert Haas
>> EDB: http://www.enterprisedb.com
>>
>

Reply via email to