diff options
Diffstat (limited to 'src/backend/commands/explain.c')
-rw-r--r-- | src/backend/commands/explain.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index 895d18ebd59..2c5d980f729 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -4087,9 +4087,24 @@ ExplainTargetRel(Plan *plan, Index rti, ExplainState *es) } break; case T_TableFuncScan: - Assert(rte->rtekind == RTE_TABLEFUNC); - objectname = "xmltable"; - objecttag = "Table Function Name"; + { + TableFunc *tablefunc = ((TableFuncScan *) plan)->tablefunc; + + Assert(rte->rtekind == RTE_TABLEFUNC); + switch (tablefunc->functype) + { + case TFT_XMLTABLE: + objectname = "xmltable"; + break; + case TFT_JSON_TABLE: + objectname = "json_table"; + break; + default: + elog(ERROR, "invalid TableFunc type %d", + (int) tablefunc->functype); + } + objecttag = "Table Function Name"; + } break; case T_ValuesScan: Assert(rte->rtekind == RTE_VALUES); |