proposal: schema variables

Started by Pavel Stehuleover 8 years ago435 messages
Jump to latest
#1Pavel Stehule
pavel.stehule@gmail.com

Hi,

I propose a new database object - a variable. The variable is persistent
object, that holds unshared session based not transactional in memory value
of any type. Like variables in any other languages. The persistence is
required for possibility to do static checks, but can be limited to session
- the variables can be temporal.

My proposal is related to session variables from Sybase, MSSQL or MySQL
(based on prefix usage @ or @@), or package variables from Oracle (access
is controlled by scope), or schema variables from DB2. Any design is coming
from different sources, traditions and has some advantages or
disadvantages. The base of my proposal is usage schema variables as session
variables for stored procedures. It should to help to people who try to
port complex projects to PostgreSQL from other databases.

The Sybase (T-SQL) design is good for interactive work, but it is weak for
usage in stored procedures - the static check is not possible. Is not
possible to set some access rights on variables.

The ADA design (used on Oracle) based on scope is great, but our
environment is not nested. And we should to support other PL than PLpgSQL
more strongly.

There is not too much other possibilities - the variable that should be
accessed from different PL, different procedures (in time) should to live
somewhere over PL, and there is the schema only.

The variable can be created by CREATE statement:

CREATE VARIABLE public.myvar AS integer;
CREATE VARIABLE myschema.myvar AS mytype;

CREATE [TEMP] VARIABLE [IF NOT EXISTS] name AS type
[ DEFAULT expression ] [[NOT] NULL]
[ ON TRANSACTION END { RESET | DROP } ]
[ { VOLATILE | STABLE } ];

It is dropped by command DROP VARIABLE [ IF EXISTS] varname.

The access rights is controlled by usual access rights - by commands
GRANT/REVOKE. The possible rights are: READ, WRITE

The variables can be modified by SQL command SET (this is taken from
standard, and it natural)

SET varname = expression;

Unfortunately we use the SET command for different purpose. But I am
thinking so we can solve it with few tricks. The first is moving our GUC to
pg_catalog schema. We can control the strictness of SET command. In one
variant, we can detect custom GUC and allow it, in another we can disallow
a custom GUC and allow only schema variables. A new command LET can be
alternative.

The variables should be used in queries implicitly (without JOIN)

SELECT varname;

The SEARCH_PATH is used, when varname is located. The variables can be used
everywhere where query parameters are allowed.

I hope so this proposal is good enough and simple.

Comments, notes?

regards

Pavel

#2Nico Williams
nico@cryptonector.com
In reply to: Pavel Stehule (#1)
Re: proposal: schema variables

On Thu, Oct 26, 2017 at 09:21:24AM +0200, Pavel Stehule wrote:

Comments, notes?

I like it.

I would further like to move all of postgresql.conf into the database,
as much as possible, as well as pg_ident.conf and pg_hba.conf.

Variables like current_user have a sort of nesting context
functionality: calling a SECURITY DEFINER function "pushes" a new value
onto current_user, then when the function returns the new value of
current_user is "popped" and the previous value restored.

It might be nice to be able to generalize this.

Questions that then arise:

- can one see up the stack?
- are there permissions issues with seeing up the stack?

I recently posted proposing a feature such that SECURITY DEFINER
functions could observe the _caller_'s current_user.

Nico
--

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#3Pavel Stehule
pavel.stehule@gmail.com
In reply to: Nico Williams (#2)
Re: proposal: schema variables

Hi

2017-10-27 0:07 GMT+02:00 Nico Williams <nico@cryptonector.com>:

On Thu, Oct 26, 2017 at 09:21:24AM +0200, Pavel Stehule wrote:

Comments, notes?

I like it.

I would further like to move all of postgresql.conf into the database,
as much as possible, as well as pg_ident.conf and pg_hba.conf.

Variables like current_user have a sort of nesting context
functionality: calling a SECURITY DEFINER function "pushes" a new value
onto current_user, then when the function returns the new value of
current_user is "popped" and the previous value restored.

My proposal doesn't expecting with nesting, because there is only one scope
- schema / session - but I don't think so it is necessary

current_user is a function - it is based on parser magic in Postgres. The
origin from Oracle uses the feature of ADA language. When function has no
parameters then parenthesis are optional. So current_user, current_time are
functions current_user(), current_time().

It might be nice to be able to generalize this.

Questions that then arise:

- can one see up the stack?
- are there permissions issues with seeing up the stack?

these variables are pined to schema - so there is not any relation to
stack. It is like global variables.

Theoretically we can introduce "functional" variables, where the value is
based on immediate evaluation of expression. It can be very similar to
current current_user.

I recently posted proposing a feature such that SECURITY DEFINER
functions could observe the _caller_'s current_user.

your use case is good example - this proposed feature doesn't depend on
stack, depends on security context (security context stack) what is super
set of call stack

Regards

Pavel

Show quoted text

Nico
--

#4Tatsuo Ishii
ishii@postgresql.org
In reply to: Pavel Stehule (#1)
Re: proposal: schema variables

Hi,

I propose a new database object - a variable. The variable is persistent
object, that holds unshared session based not transactional in memory value
of any type. Like variables in any other languages. The persistence is
required for possibility to do static checks, but can be limited to session
- the variables can be temporal.

My proposal is related to session variables from Sybase, MSSQL or MySQL
(based on prefix usage @ or @@), or package variables from Oracle (access
is controlled by scope), or schema variables from DB2. Any design is coming
from different sources, traditions and has some advantages or
disadvantages. The base of my proposal is usage schema variables as session
variables for stored procedures. It should to help to people who try to
port complex projects to PostgreSQL from other databases.

The Sybase (T-SQL) design is good for interactive work, but it is weak for
usage in stored procedures - the static check is not possible. Is not
possible to set some access rights on variables.

The ADA design (used on Oracle) based on scope is great, but our
environment is not nested. And we should to support other PL than PLpgSQL
more strongly.

There is not too much other possibilities - the variable that should be
accessed from different PL, different procedures (in time) should to live
somewhere over PL, and there is the schema only.

The variable can be created by CREATE statement:

CREATE VARIABLE public.myvar AS integer;
CREATE VARIABLE myschema.myvar AS mytype;

CREATE [TEMP] VARIABLE [IF NOT EXISTS] name AS type
[ DEFAULT expression ] [[NOT] NULL]
[ ON TRANSACTION END { RESET | DROP } ]
[ { VOLATILE | STABLE } ];

It is dropped by command DROP VARIABLE [ IF EXISTS] varname.

The access rights is controlled by usual access rights - by commands
GRANT/REVOKE. The possible rights are: READ, WRITE

The variables can be modified by SQL command SET (this is taken from
standard, and it natural)

SET varname = expression;

Unfortunately we use the SET command for different purpose. But I am
thinking so we can solve it with few tricks. The first is moving our GUC to
pg_catalog schema. We can control the strictness of SET command. In one
variant, we can detect custom GUC and allow it, in another we can disallow
a custom GUC and allow only schema variables. A new command LET can be
alternative.

The variables should be used in queries implicitly (without JOIN)

SELECT varname;

The SEARCH_PATH is used, when varname is located. The variables can be used
everywhere where query parameters are allowed.

I hope so this proposal is good enough and simple.

Comments, notes?

Just q quick follow up. Looks like a greate feature!

Best regards,
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#5Tsunakawa, Takayuki
tsunakawa.takay@jp.fujitsu.com
In reply to: Pavel Stehule (#1)
Re: proposal: schema variables

From: pgsql-hackers-owner@postgresql.org

[mailto:pgsql-hackers-owner@postgresql.org] On Behalf Of Pavel Stehule
I propose a new database object - a variable. The variable is persistent
object, that holds unshared session based not transactional in memory value
of any type. Like variables in any other languages. The persistence is
required for possibility to do static checks, but can be limited to session
- the variables can be temporal.

My proposal is related to session variables from Sybase, MSSQL or MySQL
(based on prefix usage @ or @@), or package variables from Oracle (access
is controlled by scope), or schema variables from DB2. Any design is coming
from different sources, traditions and has some advantages or disadvantages.
The base of my proposal is usage schema variables as session variables for
stored procedures. It should to help to people who try to port complex
projects to PostgreSQL from other databases.

Very interesting. I hope I could join the review and testing.

How do you think this would contribute to easing the port of Oracle PL/SQL procedures? Would the combination of orafce and this feature promote auto-translation of PL/SQL procedures? I'm curious what will be the major road blocks after adding the schema variable.

Regards
Takayuki Tsunakawa

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#6Pavel Stehule
pavel.stehule@gmail.com
In reply to: Tsunakawa, Takayuki (#5)
Re: proposal: schema variables

2017-10-27 7:47 GMT+02:00 Tsunakawa, Takayuki <
tsunakawa.takay@jp.fujitsu.com>:

From: pgsql-hackers-owner@postgresql.org

[mailto:pgsql-hackers-owner@postgresql.org] On Behalf Of Pavel Stehule
I propose a new database object - a variable. The variable is persistent
object, that holds unshared session based not transactional in memory

value

of any type. Like variables in any other languages. The persistence is
required for possibility to do static checks, but can be limited to

session

- the variables can be temporal.

My proposal is related to session variables from Sybase, MSSQL or MySQL
(based on prefix usage @ or @@), or package variables from Oracle (access
is controlled by scope), or schema variables from DB2. Any design is

coming

from different sources, traditions and has some advantages or

disadvantages.

The base of my proposal is usage schema variables as session variables

for

stored procedures. It should to help to people who try to port complex
projects to PostgreSQL from other databases.

Very interesting. I hope I could join the review and testing.

you are welcome. I wrote a prototype last year based on envelope functions.
But the integration must be much more close to SQL to be some clear benefit
of this feature. So there is lot of work. I hope so I have a prototype
after this winter. It is my plan for winter.

How do you think this would contribute to easing the port of Oracle PL/SQL
procedures? Would the combination of orafce and this feature promote
auto-translation of PL/SQL procedures? I'm curious what will be the major
road blocks after adding the schema variable.

It depends on creativity of PL/SQL developers. Usual .. 80% application is
possible to migrate with current GUC - some work does ora2pg. But GUC is
little bit slower (not too important) and is not simple possibility to
secure it.

So work with variables will be similar like GUC, but significantly more
natural (not necessary to build wrap functions). It should be much better
when value is of some composite type. The migrations will need some
inteligence still, but less work and code will be more readable and cleaner.

I talked already about "schema pined" functions (schema private/public
objects) - but I didn't think about it more deeply. There can be special
access right to schema variables, the pined schema can be preferred before
search_path. With this feature the schema will have very similar behave
like Oracle Modules. Using different words - we can implement scope access
rights based on schemas. But it is far horizon. What is important -
proposal doesn't block any future enhancing in this case, and is consistent
with current state. In future you can work with schema private functions,
tables, variables, sequences. So variables are nothing special.

Regards

Pavel

Regards

Show quoted text

Takayuki Tsunakawa

#7Gilles Darold
gilles.darold@dalibo.com
In reply to: Pavel Stehule (#1)
Re: proposal: schema variables

Le 26/10/2017 à 09:21, Pavel Stehule a écrit :

Hi,

I propose a  new database object - a variable. The variable is
persistent object, that holds unshared session based not transactional
in memory value of any type. Like variables in any other languages.
The persistence is required for possibility to do static checks, but
can be limited to session - the variables can be temporal.

My proposal is related to session variables from Sybase, MSSQL or
MySQL (based on prefix usage @ or @@), or package variables from
Oracle (access is controlled by scope), or schema variables from DB2.
Any design is coming from different sources, traditions and has some
advantages or disadvantages. The base of my proposal is usage schema
variables as session variables for stored procedures. It should to
help to people who try to port complex projects to PostgreSQL from
other databases.

The Sybase  (T-SQL) design is good for interactive work, but it is
weak for usage in stored procedures - the static check is not
possible. Is not possible to set some access rights on variables.

The ADA design (used on Oracle) based on scope is great, but our
environment is not nested. And we should to support other PL than
PLpgSQL more strongly.

There is not too much other possibilities - the variable that should
be accessed from different PL, different procedures (in time) should
to live somewhere over PL, and there is the schema only.

The variable can be created by CREATE statement:

CREATE VARIABLE public.myvar AS integer;
CREATE VARIABLE myschema.myvar AS mytype;

CREATE [TEMP] VARIABLE [IF NOT EXISTS] name AS type
  [ DEFAULT expression ] [[NOT] NULL]
  [ ON TRANSACTION END { RESET | DROP } ]
  [ { VOLATILE | STABLE } ];

It is dropped by command DROP VARIABLE  [ IF EXISTS] varname.

The access rights is controlled by usual access rights - by commands
GRANT/REVOKE. The possible rights are: READ, WRITE

The variables can be modified by SQL command SET (this is taken from
standard, and it natural)

SET varname = expression;

Unfortunately we use the SET command for different purpose. But I am
thinking so we can solve it with few tricks. The first is moving our
GUC to pg_catalog schema. We can control the strictness of SET
command. In one variant, we can detect custom GUC and allow it, in
another we can disallow a custom GUC and allow only schema variables.
A new command LET can be alternative.

The variables should be used in queries implicitly (without JOIN)

SELECT varname;

The SEARCH_PATH is used, when varname is located. The variables can be
used everywhere where query parameters are allowed.

I hope so this proposal is good enough and simple.

Comments, notes?

regards

Pavel

Great feature that will help for migration. How will you handle CONSTANT
declaration? With Oracle it is possible to declare a constant as follow:

  varname     CONSTANT INTEGER    := 500;

for a variable that can't be changed. Do you plan to add a CONSTANT or
READONLY keyword or do you want use GRANT on the object to deal with
this case?

Regards

--
Gilles Darold
Consultant PostgreSQL
http://dalibo.com - http://dalibo.org

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#8Pavel Stehule
pavel.stehule@gmail.com
In reply to: Gilles Darold (#7)
Re: proposal: schema variables

2017-10-27 15:38 GMT+02:00 Gilles Darold <gilles.darold@dalibo.com>:

Le 26/10/2017 à 09:21, Pavel Stehule a écrit :

Hi,

I propose a new database object - a variable. The variable is
persistent object, that holds unshared session based not transactional
in memory value of any type. Like variables in any other languages.
The persistence is required for possibility to do static checks, but
can be limited to session - the variables can be temporal.

My proposal is related to session variables from Sybase, MSSQL or
MySQL (based on prefix usage @ or @@), or package variables from
Oracle (access is controlled by scope), or schema variables from DB2.
Any design is coming from different sources, traditions and has some
advantages or disadvantages. The base of my proposal is usage schema
variables as session variables for stored procedures. It should to
help to people who try to port complex projects to PostgreSQL from
other databases.

The Sybase (T-SQL) design is good for interactive work, but it is
weak for usage in stored procedures - the static check is not
possible. Is not possible to set some access rights on variables.

The ADA design (used on Oracle) based on scope is great, but our
environment is not nested. And we should to support other PL than
PLpgSQL more strongly.

There is not too much other possibilities - the variable that should
be accessed from different PL, different procedures (in time) should
to live somewhere over PL, and there is the schema only.

The variable can be created by CREATE statement:

CREATE VARIABLE public.myvar AS integer;
CREATE VARIABLE myschema.myvar AS mytype;

CREATE [TEMP] VARIABLE [IF NOT EXISTS] name AS type
[ DEFAULT expression ] [[NOT] NULL]
[ ON TRANSACTION END { RESET | DROP } ]
[ { VOLATILE | STABLE } ];

It is dropped by command DROP VARIABLE [ IF EXISTS] varname.

The access rights is controlled by usual access rights - by commands
GRANT/REVOKE. The possible rights are: READ, WRITE

The variables can be modified by SQL command SET (this is taken from
standard, and it natural)

SET varname = expression;

Unfortunately we use the SET command for different purpose. But I am
thinking so we can solve it with few tricks. The first is moving our
GUC to pg_catalog schema. We can control the strictness of SET
command. In one variant, we can detect custom GUC and allow it, in
another we can disallow a custom GUC and allow only schema variables.
A new command LET can be alternative.

The variables should be used in queries implicitly (without JOIN)

SELECT varname;

The SEARCH_PATH is used, when varname is located. The variables can be
used everywhere where query parameters are allowed.

I hope so this proposal is good enough and simple.

Comments, notes?

regards

Pavel

Great feature that will help for migration. How will you handle CONSTANT
declaration? With Oracle it is possible to declare a constant as follow:

varname CONSTANT INTEGER := 500;

for a variable that can't be changed. Do you plan to add a CONSTANT or
READONLY keyword or do you want use GRANT on the object to deal with
this case?

Plpgsql declaration supports CONSTANT

I forgot it. Thank you

Pavel

Show quoted text

Regards

--
Gilles Darold
Consultant PostgreSQL
http://dalibo.com - http://dalibo.org

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#9Chris Travers
chris.travers@adjust.com
In reply to: Pavel Stehule (#1)
Re: proposal: schema variables

On Thu, Oct 26, 2017 at 9:21 AM, Pavel Stehule <pavel.stehule@gmail.com>
wrote:

Hi,

I propose a new database object - a variable. The variable is persistent
object, that holds unshared session based not transactional in memory value
of any type. Like variables in any other languages. The persistence is
required for possibility to do static checks, but can be limited to session
- the variables can be temporal.

My proposal is related to session variables from Sybase, MSSQL or MySQL
(based on prefix usage @ or @@), or package variables from Oracle (access
is controlled by scope), or schema variables from DB2. Any design is coming
from different sources, traditions and has some advantages or
disadvantages. The base of my proposal is usage schema variables as session
variables for stored procedures. It should to help to people who try to
port complex projects to PostgreSQL from other databases.

The Sybase (T-SQL) design is good for interactive work, but it is weak
for usage in stored procedures - the static check is not possible. Is not
possible to set some access rights on variables.

The ADA design (used on Oracle) based on scope is great, but our
environment is not nested. And we should to support other PL than PLpgSQL
more strongly.

There is not too much other possibilities - the variable that should be
accessed from different PL, different procedures (in time) should to live
somewhere over PL, and there is the schema only.

The variable can be created by CREATE statement:

CREATE VARIABLE public.myvar AS integer;
CREATE VARIABLE myschema.myvar AS mytype;

CREATE [TEMP] VARIABLE [IF NOT EXISTS] name AS type
[ DEFAULT expression ] [[NOT] NULL]
[ ON TRANSACTION END { RESET | DROP } ]
[ { VOLATILE | STABLE } ];

It is dropped by command DROP VARIABLE [ IF EXISTS] varname.

The access rights is controlled by usual access rights - by commands
GRANT/REVOKE. The possible rights are: READ, WRITE

The variables can be modified by SQL command SET (this is taken from
standard, and it natural)

SET varname = expression;

Unfortunately we use the SET command for different purpose. But I am
thinking so we can solve it with few tricks. The first is moving our GUC to
pg_catalog schema. We can control the strictness of SET command. In one
variant, we can detect custom GUC and allow it, in another we can disallow
a custom GUC and allow only schema variables. A new command LET can be
alternative.

The variables should be used in queries implicitly (without JOIN)

SELECT varname;

The SEARCH_PATH is used, when varname is located. The variables can be
used everywhere where query parameters are allowed.

I hope so this proposal is good enough and simple.

Comments, notes?

I have a question on this. Since one can issue set commands on arbitrary
settings (and later ALTER database/role/system on settings you have created
in the current session) I am wondering how much overlap there is between a
sort of extended GUC with custom settings and variables.

Maybe it would be simpler to treat variables and GUC settings to be similar
and see what can be done to extend GUC in this way?

I mean if instead we allowed restricting SET to known settings then we
could have a CREATE SETTING command which would behave like this and then
use SET the same way across both.

In essence I am wondering if this really needs to be as separate from GUC
as you are proposing.

If done this way then:

1. You could issue grant or revoke on GUC settings, allowing some users
but not others to set things like work_mem for their queries
2. You could specify allowed types in custom settings.
3. In a subsequent stage you might be able to SELECT .... INTO
setting_name FROM ....; allowing access to setting writes based on queries.

regards

Pavel

--
Best Regards,
Chris Travers
Database Administrator

Tel: +49 162 9037 210 | Skype: einhverfr | www.adjust.com
Saarbrücker Straße 37a, 10405 Berlin

#10Pavel Stehule
pavel.stehule@gmail.com
In reply to: Chris Travers (#9)
Re: proposal: schema variables

Hi

2017-10-28 16:24 GMT+02:00 Chris Travers <chris.travers@adjust.com>:

On Thu, Oct 26, 2017 at 9:21 AM, Pavel Stehule <pavel.stehule@gmail.com>
wrote:

Hi,

I propose a new database object - a variable. The variable is persistent
object, that holds unshared session based not transactional in memory value
of any type. Like variables in any other languages. The persistence is
required for possibility to do static checks, but can be limited to session
- the variables can be temporal.

My proposal is related to session variables from Sybase, MSSQL or MySQL
(based on prefix usage @ or @@), or package variables from Oracle (access
is controlled by scope), or schema variables from DB2. Any design is coming
from different sources, traditions and has some advantages or
disadvantages. The base of my proposal is usage schema variables as session
variables for stored procedures. It should to help to people who try to
port complex projects to PostgreSQL from other databases.

The Sybase (T-SQL) design is good for interactive work, but it is weak
for usage in stored procedures - the static check is not possible. Is not
possible to set some access rights on variables.

The ADA design (used on Oracle) based on scope is great, but our
environment is not nested. And we should to support other PL than PLpgSQL
more strongly.

There is not too much other possibilities - the variable that should be
accessed from different PL, different procedures (in time) should to live
somewhere over PL, and there is the schema only.

The variable can be created by CREATE statement:

CREATE VARIABLE public.myvar AS integer;
CREATE VARIABLE myschema.myvar AS mytype;

CREATE [TEMP] VARIABLE [IF NOT EXISTS] name AS type
[ DEFAULT expression ] [[NOT] NULL]
[ ON TRANSACTION END { RESET | DROP } ]
[ { VOLATILE | STABLE } ];

It is dropped by command DROP VARIABLE [ IF EXISTS] varname.

The access rights is controlled by usual access rights - by commands
GRANT/REVOKE. The possible rights are: READ, WRITE

The variables can be modified by SQL command SET (this is taken from
standard, and it natural)

SET varname = expression;

Unfortunately we use the SET command for different purpose. But I am
thinking so we can solve it with few tricks. The first is moving our GUC to
pg_catalog schema. We can control the strictness of SET command. In one
variant, we can detect custom GUC and allow it, in another we can disallow
a custom GUC and allow only schema variables. A new command LET can be
alternative.

The variables should be used in queries implicitly (without JOIN)

SELECT varname;

The SEARCH_PATH is used, when varname is located. The variables can be
used everywhere where query parameters are allowed.

I hope so this proposal is good enough and simple.

Comments, notes?

I have a question on this. Since one can issue set commands on arbitrary
settings (and later ALTER database/role/system on settings you have created
in the current session) I am wondering how much overlap there is between a
sort of extended GUC with custom settings and variables.

Maybe it would be simpler to treat variables and GUC settings to be
similar and see what can be done to extend GUC in this way?

I mean if instead we allowed restricting SET to known settings then we
could have a CREATE SETTING command which would behave like this and then
use SET the same way across both.

In essence I am wondering if this really needs to be as separate from GUC
as you are proposing.

If done this way then:

1. You could issue grant or revoke on GUC settings, allowing some users
but not others to set things like work_mem for their queries
2. You could specify allowed types in custom settings.
3. In a subsequent stage you might be able to SELECT .... INTO
setting_name FROM ....; allowing access to setting writes based on queries.

The creating database objects and necessary infrastructure is the most
simple task of this project. I'll be more happy if there are zero
intersection because variables and GUC are designed for different purposes.
But due SET keyword the intersection there is.

When I thinking about it, I have only one, but important reason, why I
prefer design new type of database object -the GUC are stack based with
different default granularity - global, database, user, session, function.
This can be unwanted behave for variables - it can be source of hard to
detected bugs. I afraid so this behave can be too messy for usage as
variables.

@1 I have not clean opinion about it - not sure if rights are good enough -
probably some user limits can be more practical - but can be hard to choose
result when some user limits and GUC will be against
@2 With variables typed custom GUC are not necessary
@3 Why you need it? It is possible with set_config function now.

Regards

Pavel

Show quoted text

regards

Pavel

--
Best Regards,
Chris Travers
Database Administrator

Tel: +49 162 9037 210 <+49%20162%209037210> | Skype: einhverfr |
www.adjust.com
Saarbrücker Straße 37a, 10405 Berlin
<https://maps.google.com/?q=Saarbr%C3%BCcker+Stra%C3%9Fe+37a,+10405+Berlin&amp;entry=gmail&amp;source=g&gt;

#11Chris Travers
chris.travers@adjust.com
In reply to: Pavel Stehule (#10)
Re: proposal: schema variables

On Sat, Oct 28, 2017 at 4:56 PM, Pavel Stehule <pavel.stehule@gmail.com>
wrote:

The creating database objects and necessary infrastructure is the most
simple task of this project. I'll be more happy if there are zero
intersection because variables and GUC are designed for different purposes.
But due SET keyword the intersection there is.

When I thinking about it, I have only one, but important reason, why I
prefer design new type of database object -the GUC are stack based with
different default granularity - global, database, user, session, function.
This can be unwanted behave for variables - it can be source of hard to
detected bugs. I afraid so this behave can be too messy for usage as
variables.

@1 I have not clean opinion about it - not sure if rights are good enough
- probably some user limits can be more practical - but can be hard to
choose result when some user limits and GUC will be against

I was mostly thinking that users can probably set things like work_mem and
possibly this might be a problem.

@2 With variables typed custom GUC are not necessary

I don't know about that. For example with the geoip2lookup extension it is
nice that you could set the preferred language for translation on a per
user basis or the mmdb path on a per-db basis.

@3 Why you need it? It is possible with set_config function now.

Yeah you could do it safely with set_config and a CTE, but suppose I have:

with a (Id, value) as (values (1::Int, 'foo'), (2, 'bar'), (3, 'baz'))
SELECT set_config('custom_val', value) from a where id = 2;

What is the result out of this? I would *expect* that this would probably
run set_config 3 times and filter the output.

Regards

Pavel

regards

Pavel

--
Best Regards,
Chris Travers
Database Administrator

Tel: +49 162 9037 210 <+49%20162%209037210> | Skype: einhverfr |
www.adjust.com
Saarbrücker Straße 37a, 10405 Berlin
<https://maps.google.com/?q=Saarbr%C3%BCcker+Stra%C3%9Fe+37a,+10405+Berlin&amp;entry=gmail&amp;source=g&gt;

--
Best Regards,
Chris Travers
Database Administrator

Tel: +49 162 9037 210 | Skype: einhverfr | www.adjust.com
Saarbrücker Straße 37a, 10405 Berlin

#12Hannu Krosing
hannu@tm.ee
In reply to: Chris Travers (#11)
Re: proposal: schema variables

but you can always do

with a (id, value) as (
values (1, 'foo'), (2, 'bar'), (3, 'baz')
)
select set_config('custom.value',(select value from a where id = 2),true);

if you are worried about the evaluation order

On 29 October 2017 at 09:51, Chris Travers <chris.travers@adjust.com> wrote:

Show quoted text

On Sat, Oct 28, 2017 at 4:56 PM, Pavel Stehule <pavel.stehule@gmail.com>
wrote:

The creating database objects and necessary infrastructure is the most
simple task of this project. I'll be more happy if there are zero
intersection because variables and GUC are designed for different purposes.
But due SET keyword the intersection there is.

When I thinking about it, I have only one, but important reason, why I
prefer design new type of database object -the GUC are stack based with
different default granularity - global, database, user, session, function.
This can be unwanted behave for variables - it can be source of hard to
detected bugs. I afraid so this behave can be too messy for usage as
variables.

@1 I have not clean opinion about it - not sure if rights are good enough
- probably some user limits can be more practical - but can be hard to
choose result when some user limits and GUC will be against

I was mostly thinking that users can probably set things like work_mem and
possibly this might be a problem.

@2 With variables typed custom GUC are not necessary

I don't know about that. For example with the geoip2lookup extension it
is nice that you could set the preferred language for translation on a per
user basis or the mmdb path on a per-db basis.

@3 Why you need it? It is possible with set_config function now.

Yeah you could do it safely with set_config and a CTE, but suppose I have:

with a (Id, value) as (values (1::Int, 'foo'), (2, 'bar'), (3, 'baz'))
SELECT set_config('custom_val', value) from a where id = 2;

What is the result out of this? I would *expect* that this would probably
run set_config 3 times and filter the output.

Regards

Pavel

regards

Pavel

--
Best Regards,
Chris Travers
Database Administrator

Tel: +49 162 9037 210 <+49%20162%209037210> | Skype: einhverfr |
www.adjust.com
Saarbrücker Straße 37a, 10405 Berlin
<https://maps.google.com/?q=Saarbr%C3%BCcker+Stra%C3%9Fe+37a,+10405+Berlin&amp;entry=gmail&amp;source=g&gt;

--
Best Regards,
Chris Travers
Database Administrator

Tel: +49 162 9037 210 <+49%20162%209037210> | Skype: einhverfr |
www.adjust.com
Saarbrücker Straße 37a, 10405 Berlin
<https://maps.google.com/?q=Saarbr%C3%BCcker+Stra%C3%9Fe+37a,+10405+Berlin&amp;entry=gmail&amp;source=g&gt;

#13Serge Rielau
serge@rielau.com
In reply to: Pavel Stehule (#3)
Re: proposal: schema variables

Pavel,

I wouldn't put in the DROP option.
Or at least not in that form of syntax.

By convention CREATE persists DDL and makes object definitions visible
across sessions.
DECLARE defines session private objects which cannot collide with other
sessions.

If you want variables with a short lifetime that get dropped at the end of
the transaction that by definition would imply a session private object. So
it ought to be DECLARE'd.

As far as I can see PG has been following this practice so far.

Cheers
Serge Rielau
Salesforce.com

--
Sent from: http://www.postgresql-archive.org/PostgreSQL-hackers-f1928748.html

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#14Pavel Stehule
pavel.stehule@gmail.com
In reply to: Serge Rielau (#13)
Re: proposal: schema variables

Hi

2017-10-30 22:42 GMT+01:00 srielau <serge@rielau.com>:

Pavel,

I wouldn't put in the DROP option.
Or at least not in that form of syntax.

By convention CREATE persists DDL and makes object definitions visible
across sessions.
DECLARE defines session private objects which cannot collide with other
sessions.

If you want variables with a short lifetime that get dropped at the end of
the transaction that by definition would imply a session private object. So
it ought to be DECLARE'd.

As far as I can see PG has been following this practice so far.

I am thinking so there is little bit overlap between DECLARE and CREATE
TEMP VARIABLE command. With DECLARE command, you are usually has not any
control when variable will be destroyed. For CREATE TEMP xxxx is DROP IF
EXISTS, but it should not be used.

It should be very similar to our current temporary tables, that are created
in session related temp schema.

I can imagine, so DECLARE command will be introduced as short cut for
CREATE TEMP VARIABLE, but in this moment I would not to open this topic. I
afraid of bikeshedding and I hope so CREATE TEMP VAR is anough.

Regards

Pavel

Show quoted text

Cheers
Serge Rielau
Salesforce.com

--
Sent from: http://www.postgresql-archive.org/PostgreSQL-hackers-
f1928748.html

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#15Serge Rielau
serge@rielau.com
In reply to: Pavel Stehule (#14)
Re: proposal: schema variables

Pavel, I can imagine, so DECLARE command will be introduced as short cut
for CREATE TEMP VARIABLE, but in this moment I would not to open this
topic. I afraid of bikeshedding and I hope so CREATE TEMP VAR is anough.
Language is important because language stays. You choice of syntax will
outlive your code and possibly yourself.
My 2 cents Serge

#16Pavel Stehule
pavel.stehule@gmail.com
In reply to: Serge Rielau (#15)
Re: proposal: schema variables

2017-10-31 22:08 GMT+01:00 Serge Rielau <serge@rielau.com>:

Pavel,

I can imagine, so DECLARE command will be introduced as short cut for
CREATE TEMP VARIABLE, but in this moment I would not to open this topic. I
afraid of bikeshedding and I hope so CREATE TEMP VAR is anough.

Language is important because language stays.
You choice of syntax will outlive your code and possibly yourself.

sure. But in this moment I don't see difference between DECLARE VARIABLE
and CREATE TEMP VARIABLE different than "TEMP" keyword.

Regards

Pavel

Show quoted text

My 2 cents
Serge

#17Serge Rielau
serge@rielau.com
In reply to: Pavel Stehule (#16)
Re: proposal: schema variables

Pavel,

There is no
DECLARE TEMP CURSOR
or
DECLARE TEMP variable in PLpgSQL
and
CREATE TEMP TABLE has a different meaning from what I understand you
envision for variables.

But maybe I'm mistaken. Your original post did not describe the entire
syntax:
CREATE [TEMP] VARIABLE [IF NOT EXISTS] name AS type
[ DEFAULT expression ] [[NOT] NULL]
[ ON TRANSACTION END { RESET | DROP } ]
[ { VOLATILE | STABLE } ];

Especially the TEMP is not spelled out and how its presence affects or
doesn't ON TRANSACTION END.
So may be if you elaborate I understand where you are coming from.

--
Sent from: http://www.postgresql-archive.org/PostgreSQL-hackers-f1928748.html

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#18Gilles Darold
gilles.darold@dalibo.com
In reply to: Serge Rielau (#17)
Re: proposal: schema variables

Le 31/10/2017 � 22:28, srielau a �crit :

Pavel,

There is no
DECLARE TEMP CURSOR
or
DECLARE TEMP variable in PLpgSQL
and
CREATE TEMP TABLE has a different meaning from what I understand you
envision for variables.

But maybe I'm mistaken. Your original post did not describe the entire
syntax:
CREATE [TEMP] VARIABLE [IF NOT EXISTS] name AS type
[ DEFAULT expression ] [[NOT] NULL]
[ ON TRANSACTION END { RESET | DROP } ]
[ { VOLATILE | STABLE } ];

Especially the TEMP is not spelled out and how its presence affects or
doesn't ON TRANSACTION END.
So may be if you elaborate I understand where you are coming from.

I think that the TEMP keyword can be removed. If I understand well the
default scope for variable is the session, every transaction in a
session will see the same value. For the transaction level, probably the
reason of the TEMP keyword, I think the [ ON TRANSACTION END { RESET |
DROP } ] will allow to restrict the scope to this transaction level
without needing the TEMP keyword. When a variable is created in a
transaction, it is temporary if "ON TRANSACTION END DROP" is used
otherwise it will persist after the transaction end. I guess that this
is the same as using TEMP keyword?

--
Gilles Darold
Consultant PostgreSQL
http://dalibo.com - http://dalibo.org

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#19Gilles Darold
gilles.darold@dalibo.com
In reply to: Gilles Darold (#18)
Re: proposal: schema variables

Le 31/10/2017 � 23:36, Gilles Darold a �crit :

Le 31/10/2017 � 22:28, srielau a �crit :

Pavel,

There is no
DECLARE TEMP CURSOR
or
DECLARE TEMP variable in PLpgSQL
and
CREATE TEMP TABLE has a different meaning from what I understand you
envision for variables.

But maybe I'm mistaken. Your original post did not describe the entire
syntax:
CREATE [TEMP] VARIABLE [IF NOT EXISTS] name AS type
[ DEFAULT expression ] [[NOT] NULL]
[ ON TRANSACTION END { RESET | DROP } ]
[ { VOLATILE | STABLE } ];

Especially the TEMP is not spelled out and how its presence affects or
doesn't ON TRANSACTION END.
So may be if you elaborate I understand where you are coming from.

I think that the TEMP keyword can be removed. If I understand well the
default scope for variable is the session, every transaction in a
session will see the same value. For the transaction level, probably the
reason of the TEMP keyword, I think the [ ON TRANSACTION END { RESET |
DROP } ] will allow to restrict the scope to this transaction level
without needing the TEMP keyword. When a variable is created in a
transaction, it is temporary if "ON TRANSACTION END DROP" is used
otherwise it will persist after the transaction end. I guess that this
is the same as using TEMP keyword?

I forgot to say that in the last case the DECLARE statement can be used
so I don't see the reason of this kind of "temporary" variables.

Maybe the variable object like used in DB2 and defined in document :
https://www.ibm.com/support/knowledgecenter/en/SSEPEK_11.0.0/sqlref/src/tpc/db2z_sql_createvariable.html
could be enough to cover our needs.

--
Gilles Darold
Consultant PostgreSQL
http://dalibo.com - http://dalibo.org

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#20Pavel Stehule
pavel.stehule@gmail.com
In reply to: Serge Rielau (#17)
Re: proposal: schema variables

2017-10-31 22:28 GMT+01:00 srielau <serge@rielau.com>:

Pavel,

There is no
DECLARE TEMP CURSOR
or
DECLARE TEMP variable in PLpgSQL
and

sure .. DECLARE TEMP has no sense, I talked about similarity DECLARE and
CREATE TEMP

CREATE TEMP TABLE has a different meaning from what I understand you

envision for variables.

But maybe I'm mistaken. Your original post did not describe the entire
syntax:
CREATE [TEMP] VARIABLE [IF NOT EXISTS] name AS type
[ DEFAULT expression ] [[NOT] NULL]
[ ON TRANSACTION END { RESET | DROP } ]
[ { VOLATILE | STABLE } ];

Especially the TEMP is not spelled out and how its presence affects or
doesn't ON TRANSACTION END.
So may be if you elaborate I understand where you are coming from.

TEMP has same functionality (and implementation) like our temp tables - so
at session end the temp variables are destroyed, but it can be assigned to
transaction.

Show quoted text

--
Sent from: http://www.postgresql-archive.org/PostgreSQL-hackers-
f1928748.html

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#21Serge Rielau
serge@rielau.com
In reply to: Pavel Stehule (#20)
#22Pavel Stehule
pavel.stehule@gmail.com
In reply to: Serge Rielau (#21)
#23Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Pavel Stehule (#1)
#24Pavel Stehule
pavel.stehule@gmail.com
In reply to: Mark Dilger (#23)
#25Gilles Darold
gilles.darold@dalibo.com
In reply to: Pavel Stehule (#20)
#26Robert Haas
robertmhaas@gmail.com
In reply to: Pavel Stehule (#1)
#27Craig Ringer
craig@2ndquadrant.com
In reply to: Pavel Stehule (#1)
#28Nico Williams
nico@cryptonector.com
In reply to: Robert Haas (#26)
#29Pavel Stehule
pavel.stehule@gmail.com
In reply to: Nico Williams (#28)
#30Pavel Stehule
pavel.stehule@gmail.com
In reply to: Craig Ringer (#27)
#31Tom Lane
tgl@sss.pgh.pa.us
In reply to: Nico Williams (#28)
#32Pavel Stehule
pavel.stehule@gmail.com
In reply to: Robert Haas (#26)
#33Robert Haas
robertmhaas@gmail.com
In reply to: Nico Williams (#28)
#34Nico Williams
nico@cryptonector.com
In reply to: Tom Lane (#31)
#35Chris Travers
chris.travers@adjust.com
In reply to: Tom Lane (#31)
#36Pavlo Golub
pavlo.golub@cybertec.at
In reply to: Pavel Stehule (#1)
#37Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavlo Golub (#36)
#38Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#37)
#39David G. Johnston
david.g.johnston@gmail.com
In reply to: Pavel Stehule (#38)
#40Pavel Stehule
pavel.stehule@gmail.com
In reply to: David G. Johnston (#39)
#41Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#40)
#42Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#41)
#43Pavel Luzanov
p.luzanov@postgrespro.ru
In reply to: Pavel Stehule (#42)
#44Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Luzanov (#43)
#45Pavel Luzanov
p.luzanov@postgrespro.ru
In reply to: Pavel Stehule (#44)
#46Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Luzanov (#45)
#47Pavel Luzanov
p.luzanov@postgrespro.ru
In reply to: Pavel Stehule (#46)
#48Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Luzanov (#47)
#49Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#46)
#50Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#49)
#51Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#50)
#52Arthur Zakirov
a.zakirov@postgrespro.ru
In reply to: Pavel Stehule (#1)
#53Pavel Stehule
pavel.stehule@gmail.com
In reply to: Arthur Zakirov (#52)
#54Arthur Zakirov
a.zakirov@postgrespro.ru
In reply to: Pavel Stehule (#53)
#55Pavel Stehule
pavel.stehule@gmail.com
In reply to: Arthur Zakirov (#54)
#56Robert Haas
robertmhaas@gmail.com
In reply to: Pavel Stehule (#53)
#57Pavel Stehule
pavel.stehule@gmail.com
In reply to: Robert Haas (#56)
#58Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#55)
#59Fabrízio de Royes Mello
fabriziomello@gmail.com
In reply to: Pavel Stehule (#58)
#60Peter Eisentraut
peter_e@gmx.net
In reply to: Pavel Stehule (#57)
#61Pavel Stehule
pavel.stehule@gmail.com
In reply to: Peter Eisentraut (#60)
#62Gilles Darold
gilles.darold@dalibo.com
In reply to: Pavel Stehule (#38)
#63Pavel Stehule
pavel.stehule@gmail.com
In reply to: Gilles Darold (#62)
#64Gilles Darold
gilles.darold@dalibo.com
In reply to: Pavel Stehule (#63)
#65Pavel Stehule
pavel.stehule@gmail.com
In reply to: Gilles Darold (#64)
#66Pavel Stehule
pavel.stehule@gmail.com
In reply to: Gilles Darold (#64)
#67Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#66)
#68Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#66)
#69Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#68)
#70Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#69)
#71Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#70)
#72Fabien COELHO
coelho@cri.ensmp.fr
In reply to: Pavel Stehule (#70)
#73Pavel Stehule
pavel.stehule@gmail.com
In reply to: Fabien COELHO (#72)
#74Fabien COELHO
coelho@cri.ensmp.fr
In reply to: Pavel Stehule (#73)
#75Pavel Stehule
pavel.stehule@gmail.com
In reply to: Fabien COELHO (#74)
#76Fabien COELHO
coelho@cri.ensmp.fr
In reply to: Pavel Stehule (#75)
#77Pavel Stehule
pavel.stehule@gmail.com
In reply to: Fabien COELHO (#76)
#78Fabien COELHO
coelho@cri.ensmp.fr
In reply to: Pavel Stehule (#77)
#79Pavel Luzanov
p.luzanov@postgrespro.ru
In reply to: Fabien COELHO (#78)
#80Fabien COELHO
coelho@cri.ensmp.fr
In reply to: Pavel Luzanov (#79)
#81Dean Rasheed
dean.a.rasheed@gmail.com
In reply to: Pavel Stehule (#77)
#82Pavel Stehule
pavel.stehule@gmail.com
In reply to: Dean Rasheed (#81)
#83Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#82)
#84Fabien COELHO
coelho@cri.ensmp.fr
In reply to: Pavel Stehule (#83)
#85Pavel Stehule
pavel.stehule@gmail.com
In reply to: Fabien COELHO (#84)
#86Pavel Stehule
pavel.stehule@gmail.com
In reply to: Dean Rasheed (#81)
#87Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#86)
#88Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#87)
#89Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#88)
#90Arthur Zakirov
a.zakirov@postgrespro.ru
In reply to: Pavel Stehule (#89)
#91Pavel Stehule
pavel.stehule@gmail.com
In reply to: Arthur Zakirov (#90)
#92Arthur Zakirov
a.zakirov@postgrespro.ru
In reply to: Pavel Stehule (#91)
#93Pavel Stehule
pavel.stehule@gmail.com
In reply to: Arthur Zakirov (#92)
#94Pavel Stehule
pavel.stehule@gmail.com
In reply to: Arthur Zakirov (#90)
#95Arthur Zakirov
a.zakirov@postgrespro.ru
In reply to: Pavel Stehule (#93)
#96Pavel Stehule
pavel.stehule@gmail.com
In reply to: Arthur Zakirov (#95)
#97Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#94)
#98Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#97)
#99Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#98)
#100Thomas Munro
thomas.munro@gmail.com
In reply to: Pavel Stehule (#99)
#101Pavel Stehule
pavel.stehule@gmail.com
In reply to: Thomas Munro (#100)
#102Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#99)
#103Erik Rijkers
er@xs4all.nl
In reply to: Pavel Stehule (#99)
#104Pavel Stehule
pavel.stehule@gmail.com
In reply to: Erik Rijkers (#103)
#105Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#102)
#106Dmitry Dolgov
9erthalion6@gmail.com
In reply to: Pavel Stehule (#105)
#107Pavel Stehule
pavel.stehule@gmail.com
In reply to: Dmitry Dolgov (#106)
#108Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#105)
#109Erik Rijkers
er@xs4all.nl
In reply to: Pavel Stehule (#108)
#110Pavel Stehule
pavel.stehule@gmail.com
In reply to: Erik Rijkers (#109)
#111Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#108)
#112Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#111)
#113Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#112)
#114Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#113)
#115David Steele
david@pgmasters.net
In reply to: Pavel Stehule (#114)
#116Fabien COELHO
coelho@cri.ensmp.fr
In reply to: David Steele (#115)
#117Pavel Stehule
pavel.stehule@gmail.com
In reply to: Fabien COELHO (#116)
#118Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#117)
#119David Steele
david@pgmasters.net
In reply to: Fabien COELHO (#116)
#120Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#114)
#121Erik Rijkers
er@xs4all.nl
In reply to: Pavel Stehule (#120)
#122Pavel Stehule
pavel.stehule@gmail.com
In reply to: Erik Rijkers (#121)
#123Erik Rijkers
er@xs4all.nl
In reply to: Pavel Stehule (#122)
#124Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#120)
#125Pavel Stehule
pavel.stehule@gmail.com
In reply to: Erik Rijkers (#123)
#126Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#124)
#127Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#126)
#128Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#127)
#129Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#128)
#130Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#129)
#131Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#130)
#132Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#131)
#133Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#132)
#134Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#133)
#135Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#134)
#136Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#135)
#137Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#136)
#138Philippe BEAUDOIN
phb07@apra.asso.fr
In reply to: Pavel Stehule (#137)
#139Pavel Stehule
pavel.stehule@gmail.com
In reply to: Philippe BEAUDOIN (#138)
#140Pavel Stehule
pavel.stehule@gmail.com
In reply to: Philippe BEAUDOIN (#138)
#141Pavel Stehule
pavel.stehule@gmail.com
In reply to: Philippe BEAUDOIN (#138)
#142Philippe BEAUDOIN
phb07@apra.asso.fr
In reply to: Pavel Stehule (#141)
#143Pavel Stehule
pavel.stehule@gmail.com
In reply to: Philippe BEAUDOIN (#142)
#144Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#143)
#145Tomas Vondra
tomas.vondra@2ndquadrant.com
In reply to: Pavel Stehule (#144)
#146Pavel Stehule
pavel.stehule@gmail.com
In reply to: Tomas Vondra (#145)
#147Pavel Stehule
pavel.stehule@gmail.com
In reply to: Tomas Vondra (#145)
#148Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#147)
#149Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#148)
#150Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#149)
#151DUVAL REMI
REMI.DUVAL@CHEOPS.FR
In reply to: Pavel Stehule (#150)
#152Pavel Stehule
pavel.stehule@gmail.com
In reply to: DUVAL REMI (#151)
#153Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#152)
#154DUVAL REMI
REMI.DUVAL@CHEOPS.FR
In reply to: Pavel Stehule (#153)
#155Pavel Stehule
pavel.stehule@gmail.com
In reply to: DUVAL REMI (#154)
#156Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#153)
#157Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#156)
#158Asif Rehman
asifr.rehman@gmail.com
In reply to: Pavel Stehule (#157)
#159Pavel Stehule
pavel.stehule@gmail.com
In reply to: Asif Rehman (#158)
#160DUVAL REMI
REMI.DUVAL@CHEOPS.FR
In reply to: Pavel Stehule (#159)
#161Pavel Stehule
pavel.stehule@gmail.com
In reply to: DUVAL REMI (#160)
#162Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#161)
#163Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#162)
#164Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#163)
#165Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#164)
#166Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#1)
#167Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#166)
#168Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#167)
#169Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#168)
#170Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#169)
#171Amit Kapila
amit.kapila16@gmail.com
In reply to: Pavel Stehule (#170)
#172Pavel Stehule
pavel.stehule@gmail.com
In reply to: Amit Kapila (#171)
#173Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#172)
#174Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#173)
#175Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#174)
#176Michael Paquier
michael@paquier.xyz
In reply to: Pavel Stehule (#175)
#177Pavel Stehule
pavel.stehule@gmail.com
In reply to: Michael Paquier (#176)
#178Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#177)
#179Michael Paquier
michael@paquier.xyz
In reply to: Pavel Stehule (#178)
#180Pavel Stehule
pavel.stehule@gmail.com
In reply to: Michael Paquier (#179)
#181Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#180)
#182Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#181)
#183Zhihong Yu
zyu@yugabyte.com
In reply to: Pavel Stehule (#182)
#184Zhihong Yu
zyu@yugabyte.com
In reply to: Zhihong Yu (#183)
#185Pavel Stehule
pavel.stehule@gmail.com
In reply to: Zhihong Yu (#183)
#186Pavel Stehule
pavel.stehule@gmail.com
In reply to: Zhihong Yu (#184)
#187Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#182)
#188Erik Rijkers
er@xs4all.nl
In reply to: Pavel Stehule (#187)
#189Pavel Stehule
pavel.stehule@gmail.com
In reply to: Erik Rijkers (#188)
#190Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#189)
#191Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#190)
#192Erik Rijkers
er@xs4all.nl
In reply to: Pavel Stehule (#191)
#193Pavel Stehule
pavel.stehule@gmail.com
In reply to: Erik Rijkers (#192)
#194Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#193)
#195Erik Rijkers
er@xs4all.nl
In reply to: Pavel Stehule (#194)
#196Josef Šimánek
josef.simanek@gmail.com
In reply to: Pavel Stehule (#194)
#197Pavel Stehule
pavel.stehule@gmail.com
In reply to: Erik Rijkers (#195)
#198Pavel Stehule
pavel.stehule@gmail.com
In reply to: Josef Šimánek (#196)
#199Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#197)
#200Erik Rijkers
er@xs4all.nl
In reply to: Pavel Stehule (#199)
#201Pavel Stehule
pavel.stehule@gmail.com
In reply to: Erik Rijkers (#200)
#202Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#201)
#203Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#202)
#204Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#203)
#205Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#204)
#206Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#205)
#207Erik Rijkers
er@xs4all.nl
In reply to: Pavel Stehule (#206)
#208Pavel Stehule
pavel.stehule@gmail.com
In reply to: Erik Rijkers (#207)
#209Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#208)
#210Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#206)
#211Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#210)
#212Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#211)
#213Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#212)
#214Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#212)
#215Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#214)
#216Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#215)
#217Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#214)
#218Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Laurenz Albe (#217)
#219Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#217)
#220Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#219)
#221Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#220)
#222Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#218)
#223Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#221)
#224Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#223)
#225Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#224)
#226Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Laurenz Albe (#225)
#227Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Laurenz Albe (#226)
#228Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#225)
#229Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#227)
#230Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#229)
#231Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#230)
#232Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#231)
#233Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#232)
#234Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#233)
#235Erik Rijkers
er@xs4all.nl
In reply to: Pavel Stehule (#234)
#236Pavel Stehule
pavel.stehule@gmail.com
In reply to: Erik Rijkers (#235)
#237Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#234)
#238Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#237)
#239Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#237)
#240Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#239)
#241Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#240)
#242Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#241)
#243Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#227)
#244Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#243)
#245Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#244)
#246Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#245)
#247Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#245)
#248Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#246)
#249Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#247)
#250Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#249)
#251Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#250)
#252Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#251)
#253Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#252)
#254Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#253)
#255Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#254)
#256Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Laurenz Albe (#255)
#257Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#255)
#258Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#257)
#259James Pang
jamespang886@gmail.com
In reply to: Laurenz Albe (#212)
#260James Pang
jamespang886@gmail.com
In reply to: James Pang (#259)
#261Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#256)
#262Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#261)
#263Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#262)
#264Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#263)
#265Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#264)
#266Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#265)
#267Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#263)
#268Dmitry Dolgov
9erthalion6@gmail.com
In reply to: Pavel Stehule (#267)
#269Pavel Stehule
pavel.stehule@gmail.com
In reply to: Dmitry Dolgov (#268)
#270Dmitry Dolgov
9erthalion6@gmail.com
In reply to: Pavel Stehule (#269)
#271Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#269)
#272Pavel Stehule
pavel.stehule@gmail.com
In reply to: Dmitry Dolgov (#270)
#273Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#271)
#274Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#266)
#275Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Pavel Stehule (#274)
#276Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#275)
#277Dmitry Dolgov
9erthalion6@gmail.com
In reply to: Pavel Stehule (#271)
#278Pavel Stehule
pavel.stehule@gmail.com
In reply to: Dmitry Dolgov (#277)
#279Pavel Stehule
pavel.stehule@gmail.com
In reply to: Dmitry Dolgov (#277)
#280Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#279)
#281Pavel Stehule
pavel.stehule@gmail.com
In reply to: Dmitry Dolgov (#277)
#282Dmitry Dolgov
9erthalion6@gmail.com
In reply to: Pavel Stehule (#281)
#283Pavel Stehule
pavel.stehule@gmail.com
In reply to: Dmitry Dolgov (#282)
#284Wolfgang Walther
walther@technowledgy.de
In reply to: Dmitry Dolgov (#282)
#285Pavel Stehule
pavel.stehule@gmail.com
In reply to: Wolfgang Walther (#284)
#286Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#275)
#287Wolfgang Walther
walther@technowledgy.de
In reply to: Pavel Stehule (#285)
#288Pavel Stehule
pavel.stehule@gmail.com
In reply to: Wolfgang Walther (#287)
#289Pavel Stehule
pavel.stehule@gmail.com
In reply to: Dmitry Dolgov (#282)
#290Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#289)
#291Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#288)
#292Pavel Stehule
pavel.stehule@gmail.com
In reply to: Dmitry Dolgov (#282)
#293Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#292)
#294Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#293)
#295Marcos Pegoraro
marcos@f10.com.br
In reply to: Pavel Stehule (#292)
#296Pavel Stehule
pavel.stehule@gmail.com
In reply to: Marcos Pegoraro (#295)
#297Marcos Pegoraro
marcos@f10.com.br
In reply to: Pavel Stehule (#296)
#298Pavel Stehule
pavel.stehule@gmail.com
In reply to: Marcos Pegoraro (#297)
#299Dmitry Dolgov
9erthalion6@gmail.com
In reply to: Pavel Stehule (#292)
#300Pavel Stehule
pavel.stehule@gmail.com
In reply to: Dmitry Dolgov (#299)
#301Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#294)
#302Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#301)
#303Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#302)
#304jian he
jian.universality@gmail.com
In reply to: Pavel Stehule (#303)
#305Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#304)
#306jian he
jian.universality@gmail.com
In reply to: Pavel Stehule (#305)
#307Pavel Stehule
pavel.stehule@gmail.com
In reply to: Dmitry Dolgov (#299)
#308Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#306)
#309jian he
jian.universality@gmail.com
In reply to: Pavel Stehule (#308)
#310Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#309)
#311Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#307)
#312jian he
jian.universality@gmail.com
In reply to: Pavel Stehule (#311)
#313Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#312)
#314jian he
jian.universality@gmail.com
In reply to: Pavel Stehule (#313)
#315Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#313)
#316Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#314)
#317jian he
jian.universality@gmail.com
In reply to: Pavel Stehule (#316)
#318jian he
jian.universality@gmail.com
In reply to: jian he (#317)
#319Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#317)
#320jian he
jian.universality@gmail.com
In reply to: Pavel Stehule (#319)
#321Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#318)
#322Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#320)
#323jian he
jian.universality@gmail.com
In reply to: Pavel Stehule (#322)
#324Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#322)
#325Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#323)
#326Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#325)
#327jian he
jian.universality@gmail.com
In reply to: Pavel Stehule (#326)
#328Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#327)
#329Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#328)
#330jian he
jian.universality@gmail.com
In reply to: Pavel Stehule (#329)
#331jian he
jian.universality@gmail.com
In reply to: jian he (#330)
#332jian he
jian.universality@gmail.com
In reply to: jian he (#331)
#333Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#330)
#334Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#331)
#335Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#332)
#336Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#335)
#337jian he
jian.universality@gmail.com
In reply to: Pavel Stehule (#336)
#338Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#337)
#339jian he
jian.universality@gmail.com
In reply to: Pavel Stehule (#338)
#340Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#339)
#341Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#340)
#342Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#341)
#343Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#342)
#344Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#343)
#345Bruce Momjian
bruce@momjian.us
In reply to: Pavel Stehule (#344)
#346Pavel Stehule
pavel.stehule@gmail.com
In reply to: Bruce Momjian (#345)
#347Bruce Momjian
bruce@momjian.us
In reply to: Pavel Stehule (#346)
#348Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Bruce Momjian (#347)
#349Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#339)
#350Bruce Momjian
bruce@momjian.us
In reply to: Pavel Stehule (#349)
#351Pavel Stehule
pavel.stehule@gmail.com
In reply to: Bruce Momjian (#350)
#352Bruce Momjian
bruce@momjian.us
In reply to: Pavel Stehule (#351)
#353Julien Rouhaud
rjuju123@gmail.com
In reply to: Bruce Momjian (#352)
#354Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Bruce Momjian (#352)
#355Dmitry Dolgov
9erthalion6@gmail.com
In reply to: Bruce Momjian (#352)
#356Wolfgang Walther
walther@technowledgy.de
In reply to: Bruce Momjian (#352)
#357Marcos Pegoraro
marcos@f10.com.br
In reply to: Bruce Momjian (#352)
#358Marcos Pegoraro
marcos@f10.com.br
In reply to: Bruce Momjian (#352)
#359Gilles Darold
gilles.darold@dalibo.com
In reply to: Bruce Momjian (#352)
#360Pavel Stehule
pavel.stehule@gmail.com
In reply to: Alvaro Herrera (#348)
#361Bruce Momjian
bruce@momjian.us
In reply to: Alvaro Herrera (#348)
#362Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Bruce Momjian (#361)
#363jian he
jian.universality@gmail.com
In reply to: Pavel Stehule (#344)
#364Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#363)
#365jian he
jian.universality@gmail.com
In reply to: Pavel Stehule (#364)
#366Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#363)
#367Pavel Stehule
pavel.stehule@gmail.com
In reply to: jian he (#365)
#368Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#367)
#369Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#368)
#370Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#369)
#371Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#370)
#372Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#371)
#373Marcos Pegoraro
marcos@f10.com.br
In reply to: Pavel Stehule (#372)
#374Pavel Stehule
pavel.stehule@gmail.com
In reply to: Marcos Pegoraro (#373)
#375Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#374)
#376Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#375)
#377Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#376)
#378Bruce Momjian
bruce@momjian.us
In reply to: Pavel Stehule (#377)
#379Marcos Pegoraro
marcos@f10.com.br
In reply to: Bruce Momjian (#378)
#380Bruce Momjian
bruce@momjian.us
In reply to: Marcos Pegoraro (#379)
#381Daniel Gustafsson
daniel@yesql.se
In reply to: Bruce Momjian (#380)
#382Bruce Momjian
bruce@momjian.us
In reply to: Daniel Gustafsson (#381)
#383Pavel Stehule
pavel.stehule@gmail.com
In reply to: Bruce Momjian (#380)
#384Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Bruce Momjian (#382)
#385Bruce Momjian
bruce@momjian.us
In reply to: Laurenz Albe (#384)
#386Bruce Momjian
bruce@momjian.us
In reply to: Pavel Stehule (#383)
#387Michael Paquier
michael@paquier.xyz
In reply to: Pavel Stehule (#383)
#388Pavel Stehule
pavel.stehule@gmail.com
In reply to: Bruce Momjian (#385)
#389Pavel Stehule
pavel.stehule@gmail.com
In reply to: Michael Paquier (#387)
#390Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Bruce Momjian (#385)
#391Pavel Stehule
pavel.stehule@gmail.com
In reply to: Laurenz Albe (#390)
#392Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#292)
#393Bruce Momjian
bruce@momjian.us
In reply to: Pavel Stehule (#388)
#394Bruce Momjian
bruce@momjian.us
In reply to: Pavel Stehule (#392)
#395Bruce Momjian
bruce@momjian.us
In reply to: Pavel Stehule (#389)
#396Pavel Stehule
pavel.stehule@gmail.com
In reply to: Bruce Momjian (#394)
#397Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#396)
#398Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#397)
#399Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#398)
#400Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#399)
#401Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#400)
#402Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#401)
#403Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#402)
#404Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#403)
#405Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#404)
#406Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#405)
#407Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#406)
#408Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#407)
#409Jim Jones
jim.jones@uni-muenster.de
In reply to: Pavel Stehule (#408)
#410Pavel Stehule
pavel.stehule@gmail.com
In reply to: Jim Jones (#409)
#411Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#410)
#412Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#411)
#413Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#412)
#414Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#413)
#415Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#414)
#416Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#415)
#417Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#416)
#418Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#417)
#419Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#418)
#420Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#419)
#421Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#420)
#422Jim Jones
jim.jones@uni-muenster.de
In reply to: Pavel Stehule (#421)
#423Pavel Stehule
pavel.stehule@gmail.com
In reply to: Jim Jones (#422)
#424Jim Jones
jim.jones@uni-muenster.de
In reply to: Pavel Stehule (#423)
#425Pavel Stehule
pavel.stehule@gmail.com
In reply to: Jim Jones (#424)
#426Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#425)
#427Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#426)
#428Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#427)
#429Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#428)
#430Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#429)
#431Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#430)
#432Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#431)
#433Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#1)
#434Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#1)
#435Pavel Stehule
pavel.stehule@gmail.com
In reply to: Pavel Stehule (#434)