diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index 866d0d649a..5ca52e3d18 100644
--- a/src/backend/utils/adt/xml.c
+++ b/src/backend/utils/adt/xml.c
@@ -44,6 +44,7 @@
 /* #define USE_LIBXMLCONTEXT */
 
 #include "postgres.h"
+#include "utils/guc.h"
 
 #ifdef USE_LIBXML
 #include <libxml/chvalid.h>
@@ -2694,6 +2695,12 @@ query_to_oid_list(const char *query)
 	uint64		i;
 	List	   *list = NIL;
 	int			spi_result;
+	int			save_nestlevel;
+
+	save_nestlevel = NewGUCNestLevel();
+	(void) set_config_option("max_parallel_workers_per_gather", "0",
+							 PGC_USERSET, PGC_S_SESSION,
+							 GUC_ACTION_SAVE, true, 0, false);
 
 	spi_result = SPI_execute(query, true, 0);
 	if (spi_result != SPI_OK_SELECT)
@@ -2713,6 +2720,8 @@ query_to_oid_list(const char *query)
 			list = lappend_oid(list, DatumGetObjectId(oid));
 	}
 
+	AtEOXact_GUC(true, save_nestlevel);
+
 	return list;
 }
 
