aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/execParallel.c
diff options
context:
space:
mode:
authorAndres Freund <andres@anarazel.de>2021-04-07 22:00:01 -0700
committerAndres Freund <andres@anarazel.de>2021-04-07 22:08:24 -0700
commitb3ee4c503872f3d0a5d6a7cbde48815f555af15b (patch)
tree059b23536129b1d633b74220a189c0a924597f57 /src/backend/executor/execParallel.c
parent8ffb003591ff02f59d92c36a5791307881863146 (diff)
downloadpostgresql-b3ee4c503872f3d0a5d6a7cbde48815f555af15b.tar.gz
postgresql-b3ee4c503872f3d0a5d6a7cbde48815f555af15b.zip
Cope with NULL query string in ExecInitParallelPlan().
It's far from clear that this is the right approach - but a good portion of the buildfarm has been red for a few hours, on the last day of the CF. And this fixes at least the obvious crash. So let's go with that for now. Discussion: https://postgr.es/m/20210407225806.majgznh4lk34hjvu%40alap3.anarazel.de
Diffstat (limited to 'src/backend/executor/execParallel.c')
-rw-r--r--src/backend/executor/execParallel.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/backend/executor/execParallel.c b/src/backend/executor/execParallel.c
index c7a2f314735..d104a19767c 100644
--- a/src/backend/executor/execParallel.c
+++ b/src/backend/executor/execParallel.c
@@ -647,7 +647,7 @@ ExecInitParallelPlan(PlanState *planstate, EState *estate,
shm_toc_estimate_keys(&pcxt->estimator, 1);
/* Estimate space for query text. */
- query_len = strlen(estate->es_sourceText);
+ query_len = estate->es_sourceText ? strlen(estate->es_sourceText) : 0;
shm_toc_estimate_chunk(&pcxt->estimator, query_len + 1);
shm_toc_estimate_keys(&pcxt->estimator, 1);
@@ -742,7 +742,10 @@ ExecInitParallelPlan(PlanState *planstate, EState *estate,
/* Store query string */
query_string = shm_toc_allocate(pcxt->toc, query_len + 1);
- memcpy(query_string, estate->es_sourceText, query_len + 1);
+ if (query_len == 0)
+ query_string[0] = 0;
+ else
+ memcpy(query_string, estate->es_sourceText, query_len + 1);
shm_toc_insert(pcxt->toc, PARALLEL_KEY_QUERY_TEXT, query_string);
/* Store serialized PlannedStmt. */