mirror of
https://github.com/postgres/postgres.git
synced 2025-06-11 20:28:21 +03:00
Revert misguided change to postgres_fdw FOR UPDATE/SHARE code.
In commit 462bd95705
, I changed postgres_fdw
to rely on get_plan_rowmark() instead of get_parse_rowmark(). I still
think that's a good idea in the long run, but as Etsuro Fujita pointed out,
it doesn't work today because planner.c forces PlanRowMarks to have
markType = ROW_MARK_COPY for all foreign tables. There's no urgent reason
to change this in the back branches, so let's just revert that part of
yesterday's commit rather than trying to design a better solution under
time pressure.
Also, add a regression test case showing what postgres_fdw does with FOR
UPDATE/SHARE. I'd blithely assumed there was one already, else I'd have
realized yesterday that this code didn't work.
This commit is contained in:
@ -145,6 +145,11 @@ SELECT * FROM ft1 WHERE false;
|
||||
-- with WHERE clause
|
||||
EXPLAIN (VERBOSE, COSTS false) SELECT * FROM ft1 t1 WHERE t1.c1 = 101 AND t1.c6 = '1' AND t1.c7 >= '1';
|
||||
SELECT * FROM ft1 t1 WHERE t1.c1 = 101 AND t1.c6 = '1' AND t1.c7 >= '1';
|
||||
-- with FOR UPDATE/SHARE
|
||||
EXPLAIN (VERBOSE, COSTS false) SELECT * FROM ft1 t1 WHERE c1 = 101 FOR UPDATE;
|
||||
SELECT * FROM ft1 t1 WHERE c1 = 101 FOR UPDATE;
|
||||
EXPLAIN (VERBOSE, COSTS false) SELECT * FROM ft1 t1 WHERE c1 = 102 FOR SHARE;
|
||||
SELECT * FROM ft1 t1 WHERE c1 = 102 FOR SHARE;
|
||||
-- aggregate
|
||||
SELECT COUNT(*) FROM ft1 t1;
|
||||
-- join two tables
|
||||
|
Reference in New Issue
Block a user