diff --git a/src/backend/distributed/worker/worker_merge_protocol.c b/src/backend/distributed/worker/worker_merge_protocol.c index 74331f984..04ceccad6 100644 --- a/src/backend/distributed/worker/worker_merge_protocol.c +++ b/src/backend/distributed/worker/worker_merge_protocol.c @@ -103,6 +103,12 @@ worker_merge_files_into_table(PG_FUNCTION_ARGS) resetStringInfo(jobSchemaName); appendStringInfoString(jobSchemaName, "public"); } + else + { + Oid schemaId = get_namespace_oid(jobSchemaName->data, false); + + EnsureSchemaOwner(schemaId); + } /* create the task table and copy files into the table */ columnNameList = ArrayObjectToCStringList(columnNameObject); @@ -172,6 +178,12 @@ worker_merge_files_and_run_query(PG_FUNCTION_ARGS) resetStringInfo(jobSchemaName); appendStringInfoString(jobSchemaName, "public"); } + else + { + Oid schemaId = get_namespace_oid(jobSchemaName->data, false); + + EnsureSchemaOwner(schemaId); + } appendStringInfo(setSearchPathString, SET_SEARCH_PATH_COMMAND, jobSchemaName->data);