Use empty string instead of NULL for queryString

Postgres doesn't accept NULL for queryStrings in explain plans anymore.
Internally, there are some places in Postgres where they modified the
NULLS to ""(the empty string). So we do the same on citus side.

Commit on Postgres:
1111b2668d89bfcb6f502789158b1233ab4217a6
pg14_support_3
Sait Talha Nisanci 2021-08-18 16:20:12 +03:00 committed by Halil Ozan Akgul
parent a39fdc3c3a
commit 16b821efba
1 changed files with 12 additions and 2 deletions

View File

@ -251,7 +251,13 @@ NonPushableInsertSelectExplainScan(CustomScanState *node, List *ancestors,
/* explain the inner SELECT query */
IntoClause *into = NULL;
ParamListInfo params = NULL;
char *queryString = NULL;
/*
* With PG14, we need to provide a string here,
* for now we put an empty string, which is valid according to postgres.
*/
char *queryString = pstrdup("");
ExplainOneQuery(queryCopy, 0, into, es, queryString, params, NULL);
ExplainCloseGroup("Select Query", "Select Query", false, es);
@ -278,7 +284,11 @@ ExplainSubPlans(DistributedPlan *distributedPlan, ExplainState *es)
PlannedStmt *plan = subPlan->plan;
IntoClause *into = NULL;
ParamListInfo params = NULL;
char *queryString = NULL;
/*
* With PG14, we need to provide a string here,
* for now we put an empty string, which is valid according to postgres.
*/
char *queryString = pstrdup("");
instr_time planduration;
#if PG_VERSION_NUM >= PG_VERSION_13