From c4ad899dd8335af500a141f01e8933c424cd0873 Mon Sep 17 00:00:00 2001 From: Marco Slot Date: Thu, 22 Nov 2018 17:16:57 +0100 Subject: [PATCH] Check schema ownership in worker_merge_* functions --- .../distributed/worker/worker_merge_protocol.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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);