Re: in-catalog Extension Scripts and Control parameters (templates?) - Mailing list pgsql-hackers

From Hitoshi Harada
Subject Re: in-catalog Extension Scripts and Control parameters (templates?)
Date
Msg-id CAP7Qgmn6isKFCZWVagAWj7J=rP3btZYZortwmJ5QLgXeiAFEEw@mail.gmail.com
Whole thread Raw
In response to Re: in-catalog Extension Scripts and Control parameters (templates?)  (Dimitri Fontaine <dimitri@2ndQuadrant.fr>)
Responses Re: in-catalog Extension Scripts and Control parameters (templates?)
Re: in-catalog Extension Scripts and Control parameters (templates?)
List 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

pgsql-hackers by date:

Previous
From: Dean Rasheed
Date:
Subject: Re: MD5 aggregate
Next
From: Andrew Gierth
Date:
Subject: Re: FILTER for aggregates [was Re: Department of Redundancy Department: makeNode(FuncCall) division]