Re: [HACKERS] proposal: schema variables - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: [HACKERS] proposal: schema variables
Date
Msg-id CAFj8pRD3RGW7zoHs2-4FgUKnV7TmHYbZiQYq1KS+KgwS3W30bQ@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] proposal: schema variables  (Arthur Zakirov <a.zakirov@postgrespro.ru>)
Responses Re: [HACKERS] proposal: schema variables
Re: [HACKERS] proposal: schema variables
List pgsql-hackers
Hi

2018-04-17 16:14 GMT+02:00 Arthur Zakirov <a.zakirov@postgrespro.ru>:
Hello Pavel,

On Thu, Oct 26, 2017 at 09:21:24AM +0200, Pavel Stehule wrote:
> I hope so this proposal is good enough and simple.
>
> Comments, notes?

As I understood variables are stored in pg_class table. Did you consider
storing variables in a special catalog table? It can be named as
pg_variable.

pg_variable table requires more code of course, but it would fix the issues:
- pg_class has a lot attributes which are not related with variables,
  and I think variables don't need many of them
- in a future variables might want to have some additional attributes
  which are not needed for relations, you can easily add them to
  pg_variable

What do you think?

I though about it, and I am inclined to prefer pg_class instead separate tables.

It true, so there are lot of "unused" attributes for this purpose, but there is lot of shared attributes, and lot of shared code. Semantically, I see variables in family of sequences, tables, indexes, views. Now, it shares code, and I hope in next steps more code can be shared - constraints, triggers.

There are two objective arguments for using pg_class:

1. unique name in schema - it reduces risk of collisions
2. sharing lot of code

So in this case I don't see well benefits of separate table.

Regards

Pavel

 

--
Arthur Zakirov
Postgres Professional: http://www.postgrespro.com
Russian Postgres Company

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Deadlock in multiple CIC.
Next
From: Peter Geoghegan
Date:
Subject: Re: WIP: Covering + unique indexes.