*** /tmp/postgresql-9.5.9/contrib/postgres_fdw/expected/postgres_fdw.out	Mon Aug 28 16:24:28 2017
--- /tmp/postgresql-9.5.9/contrib/postgres_fdw/results/postgres_fdw.out	Tue Sep 19 23:36:12 2017
***************
*** 3522,3545 ****
     Update on public.bar
     Foreign Update on public.bar2
       Remote SQL: UPDATE public.loct2 SET f2 = $2 WHERE ctid = $1
!    ->  Hash Join
           Output: bar.f1, (bar.f2 + 100), bar.ctid, (ROW(foo.f1))
!          Hash Cond: (foo.f1 = bar.f1)
!          ->  Append
!                ->  Seq Scan on public.foo
!                      Output: ROW(foo.f1), foo.f1
!                ->  Foreign Scan on public.foo2
!                      Output: ROW(foo2.f1), foo2.f1
!                      Remote SQL: SELECT f1 FROM public.loct1
!                ->  Seq Scan on public.foo foo_1
!                      Output: ROW((foo_1.f1 + 3)), (foo_1.f1 + 3)
!                ->  Foreign Scan on public.foo2 foo2_1
!                      Output: ROW((foo2_1.f1 + 3)), (foo2_1.f1 + 3)
!                      Remote SQL: SELECT f1 FROM public.loct1
!          ->  Hash
                 Output: bar.f1, bar.f2, bar.ctid
                 ->  Seq Scan on public.bar
                       Output: bar.f1, bar.f2, bar.ctid
     ->  Merge Join
           Output: bar2.f1, (bar2.f2 + 100), bar2.f3, bar2.ctid, (ROW(foo.f1))
           Merge Cond: (bar2.f1 = foo.f1)
--- 3522,3549 ----
     Update on public.bar
     Foreign Update on public.bar2
       Remote SQL: UPDATE public.loct2 SET f2 = $2 WHERE ctid = $1
!    ->  Merge Join
           Output: bar.f1, (bar.f2 + 100), bar.ctid, (ROW(foo.f1))
!          Merge Cond: (bar.f1 = foo.f1)
!          ->  Sort
                 Output: bar.f1, bar.f2, bar.ctid
+                Sort Key: bar.f1
                 ->  Seq Scan on public.bar
                       Output: bar.f1, bar.f2, bar.ctid
+          ->  Sort
+                Output: (ROW(foo.f1)), foo.f1
+                Sort Key: foo.f1
+                ->  Append
+                      ->  Seq Scan on public.foo
+                            Output: ROW(foo.f1), foo.f1
+                      ->  Foreign Scan on public.foo2
+                            Output: ROW(foo2.f1), foo2.f1
+                            Remote SQL: SELECT f1 FROM public.loct1
+                      ->  Seq Scan on public.foo foo_1
+                            Output: ROW((foo_1.f1 + 3)), (foo_1.f1 + 3)
+                      ->  Foreign Scan on public.foo2 foo2_1
+                            Output: ROW((foo2_1.f1 + 3)), (foo2_1.f1 + 3)
+                            Remote SQL: SELECT f1 FROM public.loct1
     ->  Merge Join
           Output: bar2.f1, (bar2.f2 + 100), bar2.f3, bar2.ctid, (ROW(foo.f1))
           Merge Cond: (bar2.f1 = foo.f1)
***************
*** 3563,3569 ****
                       ->  Foreign Scan on public.foo2 foo2_1
                             Output: ROW((foo2_1.f1 + 3)), (foo2_1.f1 + 3)
                             Remote SQL: SELECT f1 FROM public.loct1
! (45 rows)
  
  update bar set f2 = f2 + 100
  from
--- 3567,3573 ----
                       ->  Foreign Scan on public.foo2 foo2_1
                             Output: ROW((foo2_1.f1 + 3)), (foo2_1.f1 + 3)
                             Remote SQL: SELECT f1 FROM public.loct1
! (49 rows)
  
  update bar set f2 = f2 + 100
  from
