aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/explain.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/explain.c')
-rw-r--r--src/backend/commands/explain.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c
index 67bdcb2b278..a131d15ac0c 100644
--- a/src/backend/commands/explain.c
+++ b/src/backend/commands/explain.c
@@ -1456,7 +1456,8 @@ ExplainNode(PlanState *planstate, List *ancestors,
explain_get_index_name(bitmapindexscan->indexid);
if (es->format == EXPLAIN_FORMAT_TEXT)
- appendStringInfo(es->str, " on %s", indexname);
+ appendStringInfo(es->str, " on %s",
+ quote_identifier(indexname));
else
ExplainPropertyText("Index Name", indexname, es);
}
@@ -3267,6 +3268,10 @@ show_eval_params(Bitmapset *bms_params, ExplainState *es)
*
* We allow plugins to get control here so that plans involving hypothetical
* indexes can be explained.
+ *
+ * Note: names returned by this function should be "raw"; the caller will
+ * apply quoting if needed. Formerly the convention was to do quoting here,
+ * but we don't want that in non-text output formats.
*/
static const char *
explain_get_index_name(Oid indexId)
@@ -3279,11 +3284,10 @@ explain_get_index_name(Oid indexId)
result = NULL;
if (result == NULL)
{
- /* default behavior: look in the catalogs and quote it */
+ /* default behavior: look it up in the catalogs */
result = get_rel_name(indexId);
if (result == NULL)
elog(ERROR, "cache lookup failed for index %u", indexId);
- result = quote_identifier(result);
}
return result;
}
@@ -3463,7 +3467,7 @@ ExplainIndexScanDetails(Oid indexid, ScanDirection indexorderdir,
{
if (ScanDirectionIsBackward(indexorderdir))
appendStringInfoString(es->str, " Backward");
- appendStringInfo(es->str, " using %s", indexname);
+ appendStringInfo(es->str, " using %s", quote_identifier(indexname));
}
else
{