*** a/contrib/postgres_fdw/postgres_fdw.c
--- b/contrib/postgres_fdw/postgres_fdw.c
***************
*** 4092,4097 **** foreign_join_ok(PlannerInfo *root, RelOptInfo *joinrel, JoinType jointype,
--- 4092,4101 ----
  		joinclauses = NIL;
  	}
  
+ 	/* is_foreign_expr might need server and shippable-extensions info. */
+ 	fpinfo->server = fpinfo_o->server;
+ 	fpinfo->shippable_extensions = fpinfo_o->shippable_extensions;
+ 
  	/* Join quals must be safe to push down. */
  	foreach(lc, joinclauses)
  	{
***************
*** 4235,4243 **** foreign_join_ok(PlannerInfo *root, RelOptInfo *joinrel, JoinType jointype,
  	else
  		fpinfo->user = NULL;
  
- 	/* Get foreign server */
- 	fpinfo->server = fpinfo_o->server;
- 
  	/*
  	 * Since both the joining relations come from the same server, the server
  	 * level options should have same value for both the relations. Pick from
--- 4239,4244 ----
