Re: Extension Templates S03E11 - Mailing list pgsql-hackers

From Jeff Davis
Subject Re: Extension Templates S03E11
Date
Msg-id 1386055511.19125.123.camel@jdavis
Whole thread Raw
In response to Re: Extension Templates S03E11  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Responses Re: Extension Templates S03E11
Re: Extension Templates S03E11
List pgsql-hackers
On Mon, 2013-12-02 at 11:07 +0200, Heikki Linnakangas wrote:
> On 12/02/2013 05:34 AM, Stephen Frost wrote:
> >>    2. When 9.4 gets released, we need some solid advice for extension
> >> authors. If they have a native shared library, I assume we just tell
> >> them to keep using the file-based templates. But if they have a SQL-only
> >> extension, do we tell them to port to the in-catalog templates? What if
> >> they port to in-catalog templates, and then decide they just want to
> >> optimize one function by writing it in native code? Do they have to port
> >> back? What should the authors of SQL-only extensions distribute on PGXN?
> >> Should there be a migration period where they offer both kinds of
> >> templates until they drop support for 9.3?
> >
> > This is one of the main things that I think Heikki was trying to drive
> > at with his comment- we really don't *want* to make extension authors
> > have to do anything different than what they do today.  With an external
> > tool, they wouldn't need to and it would just be two different ways for
> > an extension to be installed into a given database.  In the end though,
> > if we're telling people to 'port' their extensions, then I think we've
> > already lost.
> 
> Exactly.
> 
> There should be no difference between file-based extensions and 
> catalog-based extensions. It's just two different ways to install the 
> same extension. The extension author doesn't need to care about that, 
> it's the DBA that decides which method to use to install it.
> 
> I'm going to object loudly to any proposal that doesn't meet that criteria.

But we're arguably already in this position today. For a SQL-only
extension, the author can choose between:

1. Using a schema/namespace a. installable over libpq b. installable by non-superusers c. no special handling when it
comesto administration
 

2. Using an extension a. convenient metadata (e.g. "requires") b. upgrade scripts c. omitted from pg_dump so can be
managedseparately d. relocatable e. not tied to one schema
 

And if the author decides to change, it requires porting the extension
to the other form.

Note: I'm using "extension" loosely here. We might call the SQL-only,
user-installable variety something else.

So how do we get to the point where we have clear advice to the author
of a SQL-only extension? And how do we do that without asking them to
port anything?

Stephen mentioned using external tools and/or metadata, but to me that
sounds like it would require porting the extension away from what's on
PGXN today.

Regards,Jeff Davis





pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: Extension Templates S03E11
Next
From: Michael Paquier
Date:
Subject: Re: Logging WAL when updating hintbit