Обсуждение: patch for preventing the specification of conflicting transaction read/write options

Поиск
Список
Период
Сортировка

patch for preventing the specification of conflicting transaction read/write options

От
Chetan Suttraway
Дата:
Hi,

This is regarding the TODO item:
"Prevent the specification of conflicting transaction read/write options"

listed at:
http://wiki.postgresql.org/wiki/Todo

The issue is :
SET TRANSACTION read only read write read only;

The fix involved iteration over transaction_mode_list and checking for duplicate entries.
The patch is based on suggestions mentioned in message:
http://archives.postgresql.org/pgsql-hackers/2009-01/msg00692.php

As per this, the patch does not throw any error for the first test case mentioned above.
It throws error only in case of conflicting modes.

For ex:
postgres=# SET TRANSACTION read only read only;
SET

postgres=# SET TRANSACTION read only read write;
ERROR:  conflicting options
LINE 1: SET TRANSACTION read only read write;
                        ^

Below are basic unit test logs:

postgres=# SET TRANSACTION ISOLATION LEVEL serializable ISOLATION LEVEL serializable;
SET
postgres=# SET TRANSACTION ISOLATION LEVEL serializable ISOLATION LEVEL repeatable read;
ERROR:  conflicting options
LINE 1: SET TRANSACTION ISOLATION LEVEL serializable ISOLATION LEVEL...

postgres=# SET TRANSACTION DEFERRABLE DEFERRABLE;
SET
postgres=# SET TRANSACTION DEFERRABLE NOT DEFERRABLE;
ERROR:  conflicting options
LINE 1: SET TRANSACTION DEFERRABLE NOT DEFERRABLE;
                        ^
postgres=# START TRANSACTION read only, read only;
START TRANSACTION
postgres=# rollback;
ROLLBACK
postgres=# START TRANSACTION read only, read write;
ERROR:  conflicting options
LINE 1: START TRANSACTION read only, read write;
postgres=# rollback;
ROLLBACK                          ^
postgres=# BEGIN TRANSACTION ISOLATION LEVEL serializable, ISOLATION LEVEL serializable;
BEGIN
postgres=# rollback;
ROLLBACK
postgres=# BEGIN TRANSACTION ISOLATION LEVEL serializable, ISOLATION LEVEL repeatable read;
ERROR:  conflicting options
LINE 1: BEGIN TRANSACTION ISOLATION LEVEL serializable, ISOLATION LE...
                                          ^

Please pass on any inputs on the patch.

Regards,
Chetan

--
EnterpriseDB Corporation
The Enterprise PostgreSQL Company

EnterpriseDB Blog : http://blogs.enterprisedb.com




Вложения

Re: patch for preventing the specification of conflicting transaction read/write options

От
"Kevin Grittner"
Дата:
Chetan Suttraway <chetan.suttraway@enterprisedb.com> wrote:
> This is regarding the TODO item:
> "Prevent the specification of conflicting transaction read/write
> options"
> 
> listed at:
> http://wiki.postgresql.org/wiki/Todo

Thanks for chipping away at items on the list.
> Please pass on any inputs on the patch.
Right now we want people focusing on fixing bugs and reviewing
patches submitted by the start of the current CommitFest.  Please
add this to the open CF so we don't lose track of it.
-Kevin


Re: patch for preventing the specification of conflicting transaction read/write options

От
Chetan Suttraway
Дата:


On Tue, Feb 7, 2012 at 8:44 PM, Kevin Grittner <Kevin.Grittner@wicourts.gov> wrote:
Chetan Suttraway <chetan.suttraway@enterprisedb.com> wrote:

> This is regarding the TODO item:
> "Prevent the specification of conflicting transaction read/write
> options"
>
> listed at:
> http://wiki.postgresql.org/wiki/Todo

Thanks for chipping away at items on the list.

> Please pass on any inputs on the patch.

Right now we want people focusing on fixing bugs and reviewing
patches submitted by the start of the current CommitFest.  Please
add this to the open CF so we don't lose track of it.

-Kevin

Sure.

Thanks!

-Chetan

--
EnterpriseDB Corporation
The Enterprise PostgreSQL Company

EnterpriseDB Blog : http://blogs.enterprisedb.com