Re: EvalPlanQual behaves oddly for FDW queries involving system columns
| От | Ashutosh Bapat |
|---|---|
| Тема | Re: EvalPlanQual behaves oddly for FDW queries involving system columns |
| Дата | |
| Msg-id | CAFjFpRfo1wP0mWASYKQgSSudaRG_StQY1ZTZUvmmEJ_6hzVX6Q@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: EvalPlanQual behaves oddly for FDW queries involving system columns (Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>) |
| Ответы |
Re: EvalPlanQual behaves oddly for FDW queries involving
system columns
|
| Список | pgsql-hackers |
Now I can reproduce the problem.
Sanity
--------
--------
Patch compiles cleanly and make check passes. The tests in file_fdw and postgres_fdw contrib modules pass.
The patch works as expected in the test case reported.
On Mon, Mar 9, 2015 at 4:05 PM, Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp> wrote:
On 2015/03/09 16:02, Ashutosh Bapat wrote:I tried reproducing the issue with the steps summarised.
Thanks for the review!Here's my setup
Sorry, my explanation was not enough, but such was not my intention. I'll re-summarize the steps below:
[Create a test environment]
$ createdb mydatabase
$ psql mydatabase
mydatabase=# create table mytable (a int);
$ psql postgres
postgres=# create extension postgres_fdw;
postgres=# create server loopback foreign data wrapper postgres_fdw options (dbname 'mydatabase');
postgres=# create user mapping for current_user server loopback;
postgres=# create foreign table ftable (a int) server loopback options (table_name 'mytable');
postgres=# insert into ftable values (1);
postgres=# create table ltable (a int, b int);
postgres=# insert into ltable values (1, 1);
[Run concurrent transactions]
In terminal1:
$ psql postgres
postgres=# begin;
BEGIN
postgres=# update ltable set b = b * 2;
UPDATE 1
In terminal2:
$ psql postgres
postgres=# select tableoid, ctid, * from ftable;
tableoid | ctid | a
----------+-------+---
16394 | (0,1) | 1
(1 row)
postgres=# select f.tableoid, f.ctid, f.* from ftable f, ltable l where f.a = l.a for update;
In terminal1:
postgres=# commit;
COMMIT
In terminal2:(When committing the UPDATE query in terminal1, psql in terminal2 will display the result for the SELECT-FOR-UPDATE query as shown below.)
tableoid | ctid | a
----------+----------------+---
0 | (4294967295,0) | 1
(1 row)
Best regards,
Etsuro Fujita
--
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company
В списке pgsql-hackers по дате отправления: