diff options
Diffstat (limited to 'contrib/postgres_fdw/postgres_fdw.c')
-rw-r--r-- | contrib/postgres_fdw/postgres_fdw.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/contrib/postgres_fdw/postgres_fdw.c b/contrib/postgres_fdw/postgres_fdw.c index 4053cd641c5..0bb9a5ae8f6 100644 --- a/contrib/postgres_fdw/postgres_fdw.c +++ b/contrib/postgres_fdw/postgres_fdw.c @@ -7141,6 +7141,20 @@ add_foreign_final_paths(PlannerInfo *root, RelOptInfo *input_rel, return; /* + * If the query has FETCH FIRST .. WITH TIES, 1) it must have ORDER BY as + * well, which is used to determine which additional rows tie for the last + * place in the result set, and 2) ORDER BY must already have been + * determined to be safe to push down before we get here. So in that case + * the FETCH clause is safe to push down with ORDER BY if the remote + * server is v13 or later, but if not, the remote query will fail entirely + * for lack of support for it. Since we do not currently have a way to do + * a remote-version check (without accessing the remote server), disable + * pushing the FETCH clause for now. + */ + if (parse->limitOption == LIMIT_OPTION_WITH_TIES) + return; + + /* * Also, the LIMIT/OFFSET cannot be pushed down, if their expressions are * not safe to remote. */ |