Re: [PATCH] Store Extension Options

Lists: pgsql-hackers
From: Fabrízio de Royes Mello <fabriziomello(at)gmail(dot)com>
To: Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: [PATCH] Store Extension Options
Date: 2013-11-20 18:52:04
Message-ID: CAFcNs+rqCq1H5eXW-cvdti6T-xo2STEkhjREx=OdmAkK5tiOOw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Hi all,

The main goal of this patch is enable to an user the capability to store
options
(relations and attributes) related to extensions by using a fixed prefix
called 'ext' in
the defined name. It's cant be useful for replication solutions.

So, with this patch we can do that:

ALTER TABLE foo
SET (ext.somext.do_replicate=true);

When 'ext' is the fixed prefix, 'somext' is the extension name,
'do_replicate' is the
extension option and 'true' is the value.

Also we can use this form to define storage options to indexes and
per-attribute
options.

Regards,

--
Fabrízio de Royes Mello
Consultoria/Coaching PostgreSQL
>> Timbira: http://www.timbira.com.br
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
>> Twitter: http://twitter.com/fabriziomello

Attachment Content-Type Size
store-extension-options.patch text/x-diff 19.6 KB

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Fabrízio Mello <fabriziomello(at)gmail(dot)com>
Cc: Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [PATCH] Store Extension Options
Date: 2013-11-21 02:05:25
Message-ID: CA+TgmoaYjnxNgy0OcOFh8OL1uGRROe764SBqBJGDEb8wA4fNkQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Wed, Nov 20, 2013 at 1:52 PM, Fabrízio de Royes Mello
<fabriziomello(at)gmail(dot)com> wrote:
> The main goal of this patch is enable to an user the capability to store
> options
> (relations and attributes) related to extensions by using a fixed prefix
> called 'ext' in
> the defined name. It's cant be useful for replication solutions.
>
> So, with this patch we can do that:
>
> ALTER TABLE foo
> SET (ext.somext.do_replicate=true);
>
> When 'ext' is the fixed prefix, 'somext' is the extension name,
> 'do_replicate' is the
> extension option and 'true' is the value.

This doesn't seem like a particular good choice of syntax; and I also
have my doubts about the usefulness of the feature.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


From: Fabrízio de Royes Mello <fabriziomello(at)gmail(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [PATCH] Store Extension Options
Date: 2013-11-21 02:35:56
Message-ID: CAFcNs+peZkCNu_HDGin+EgGUdC7ZtPd+KY5NisvGbQkEPTDVgg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Thu, Nov 21, 2013 at 12:05 AM, Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
>
> On Wed, Nov 20, 2013 at 1:52 PM, Fabrízio de Royes Mello
> <fabriziomello(at)gmail(dot)com> wrote:
> > The main goal of this patch is enable to an user the capability to store
> > options
> > (relations and attributes) related to extensions by using a fixed prefix
> > called 'ext' in
> > the defined name. It's cant be useful for replication solutions.
> >
> > So, with this patch we can do that:
> >
> > ALTER TABLE foo
> > SET (ext.somext.do_replicate=true);
> >
> > When 'ext' is the fixed prefix, 'somext' is the extension name,
> > 'do_replicate' is the
> > extension option and 'true' is the value.
>
> This doesn't seem like a particular good choice of syntax;

What's your syntax suggestion?

> and I also have my doubts about the usefulness of the feature.
>

This feature can be used for replication solutions, but also can be used
for any extension that need do some specific configuration about tables,
attributes and/or indexes.

Regards,

--
Fabrízio de Royes Mello
Consultoria/Coaching PostgreSQL
>> Timbira: http://www.timbira.com.br
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
>> Twitter: http://twitter.com/fabriziomello


From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Fabrízio Mello <fabriziomello(at)gmail(dot)com>
Cc: Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [PATCH] Store Extension Options
Date: 2013-11-21 13:06:07
Message-ID: CA+TgmoY=Mnnr+2_sFxvYWdqU_T_AaYkm+ZYsorBY0S+aSZUj2g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Wed, Nov 20, 2013 at 9:35 PM, Fabrízio de Royes Mello
<fabriziomello(at)gmail(dot)com> wrote:
>> > So, with this patch we can do that:
>> >
>> > ALTER TABLE foo
>> > SET (ext.somext.do_replicate=true);
>> >
>> > When 'ext' is the fixed prefix, 'somext' is the extension name,
>> > 'do_replicate' is the
>> > extension option and 'true' is the value.
>>
>> This doesn't seem like a particular good choice of syntax;
>
> What's your syntax suggestion?

I dunno, but I doubt that hardcoding ext as an abbreviation for
extension is a good decision. I also doubt that any fixed prefix is a
good decision.

>> and I also have my doubts about the usefulness of the feature.
>
> This feature can be used for replication solutions, but also can be used for
> any extension that need do some specific configuration about tables,
> attributes and/or indexes.

So, create your own configuration table with a column of type regclass.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


From: Fabrízio de Royes Mello <fabriziomello(at)gmail(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [PATCH] Store Extension Options
Date: 2013-11-22 12:25:49
Message-ID: CAFcNs+q4_7RxO_sC7GZwoEyNHW+zJbrkv9QKRO-DSv+PtORKnQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Thu, Nov 21, 2013 at 11:06 AM, Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
>
> On Wed, Nov 20, 2013 at 9:35 PM, Fabrízio de Royes Mello
> <fabriziomello(at)gmail(dot)com> wrote:
> >> > So, with this patch we can do that:
> >> >
> >> > ALTER TABLE foo
> >> > SET (ext.somext.do_replicate=true);
> >> >
> >> > When 'ext' is the fixed prefix, 'somext' is the extension name,
> >> > 'do_replicate' is the
> >> > extension option and 'true' is the value.
> >>
> >> This doesn't seem like a particular good choice of syntax;
> >
> > What's your syntax suggestion?
>
> I dunno, but I doubt that hardcoding ext as an abbreviation for
> extension is a good decision. I also doubt that any fixed prefix is a
> good decision.
>

I use this form to simplify implementation and not change sql syntax, but
we can discuss another way or syntax.

> >> and I also have my doubts about the usefulness of the feature.
> >
> > This feature can be used for replication solutions, but also can be
used for
> > any extension that need do some specific configuration about tables,
> > attributes and/or indexes.
>
> So, create your own configuration table with a column of type regclass.
>

This can be a solution, but with a config table we have some problems:
a) no dependency tracking (pg_depend)
b) no correct locking
c) no relcache
d) harder to do correctly for columns

Regards,

--
Fabrízio de Royes Mello
Consultoria/Coaching PostgreSQL
>> Timbira: http://www.timbira.com.br
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
>> Twitter: http://twitter.com/fabriziomello