Re: Fix error message for MERGE foreign tables - Mailing list pgsql-hackers

From Richard Guo
Subject Re: Fix error message for MERGE foreign tables
Date
Msg-id CAMbWs4_+c7mBD24XtAyaG-4d7pwqpycHr3VzEOCMgHCuOUEBRA@mail.gmail.com
Whole thread Raw
In response to Re: Fix error message for MERGE foreign tables  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Responses Re: Fix error message for MERGE foreign tables  (Richard Guo <guofenglinux@gmail.com>)
List pgsql-hackers

On Fri, Oct 14, 2022 at 5:24 PM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
Actually, I hadn't realized that the originally submitted patch had the
test in postgres_fdw only, but we really want it to catch any FDW, so it
needs to be somewhere more general.  The best place I found to put this
test is in make_modifytable ... I searched for some earlier place in the
planner to do it, but couldn't find anything.

So what do people think about this?
 
Good point. I agree that the test should be in a more general place.

I wonder if we can make it earlier in grouping_planner() just before we
add ModifyTablePath.

--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -1772,6 +1772,17 @@ grouping_planner(PlannerInfo *root, double tuple_fraction)
         /* Build per-target-rel lists needed by ModifyTable */
         resultRelations = lappend_int(resultRelations,
                                       resultRelation);
+        if (parse->commandType == CMD_MERGE &&
+            this_result_rel->fdwroutine != NULL)
+        {
+            RangeTblEntry *rte = root->simple_rte_array[resultRelation];
+
+            ereport(ERROR,
+                    errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                    errmsg("cannot execute MERGE on relation \"%s\"",
+                           get_rel_name(rte->relid)),
+                    errdetail_relkind_not_supported(rte->relkind));
+        }

Thanks
Richard

pgsql-hackers by date:

Previous
From: Bharath Rupireddy
Date:
Subject: Re: Improve description of XLOG_RUNNING_XACTS
Next
From: Simon Riggs
Date:
Subject: Re: New docs chapter on Transaction Management and related changes