Re: in-catalog Extension Scripts and Control parameters (templates?)
Hitoshi Harada <umi.tanuki@gmail.com>
From: Hitoshi Harada <umi.tanuki@gmail.com>
To: Dimitri Fontaine <dimitri@2ndquadrant.fr>
Cc: Jaime Casanova <jaime@2ndquadrant.com>,
Heikki Linnakangas <hlinnakangas@vmware.com>,
Alvaro Herrera <alvherre@2ndquadrant.com>,
Stephen Frost <sfrost@snowman.net>,
Tom Lane <tgl@sss.pgh.pa.us>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2013-06-27T08:35:43Z
Lists: pgsql-hackers
On Mon, Jun 24, 2013 at 4:20 AM, Dimitri Fontaine <dimitri@2ndquadrant.fr>wrote: > Jaime Casanova <jaime@2ndquadrant.com> writes: > > just tried to build this one, but it doesn't apply cleanly anymore... > > specially the ColId_or_Sconst contruct in gram.y > > Please find attached a new version of the patch, v7, rebased to current > master tree and with some more cleanup. I've been using the new grammar > entry NonReservedWord_or_Sconst, I'm not sure about that. > > > I played a bit with this patch. - If I have control file that has the same name as template, create extension picks up control file? Is this by design? - Though control file is kind of global information among different databases, pg_extension_template is not. Sounds a little weird to me. - Why do we need with() clause even if I don't need it? - I copied and paste from my plv8.control file to template script, and MODULE_PATHNAME didn't work. By design? - foo=# create template for extension ex2 version '1.0' with (requires ex1) as $$ $$; ERROR: template option "requires" takes an argument - create template ex2, create extension ex2, alter template ex2 rename to ex3, create extension ex3, drop template ex3; foo=# drop template for extension ex3 version '1.0'; ERROR: cannot drop unrecognized object 3179 16429 0 because other objects depend on it - a template that is created in another template script does not appear to depend on the parent template. - Without control file/template, attempt to create a new extension gives: foo=# create extension plv8; ERROR: extension "plv8" has no default control template but can it be better, like "extension plv8 has no default control file or template"? - Do we really need separate tables, pg_extension_template and pg_extension_control? - Looks like both tables don't have toast tables. Some experiment gives: ERROR: row is too big: size 8472, maximum size 8160 Thanks, -- Hitoshi Harada