121 for (k =
j - 1; k > 0; k--)
169 for (
j = 0;
j < indentDist;
j++)
184 line[indentDist] =
'}';
185 line[indentDist + 1] =
'\0';
196 while (dump[
i + 1] ==
' ')
201 if (dump[
i + 1] !=
')')
206 while (dump[
i + 1] ==
' ')
220 for (
j = 0;
j < indentDist;
j++)
259 printf(
"resno\trefname \trelid\tinFromCl\n");
260 printf(
"-----\t---------\t-----\t--------\n");
269 i, rte->eref->aliasname, rte->
relid, rte->relkind);
272 printf(
"%d\t%s\t[subquery]",
273 i, rte->eref->aliasname);
277 i, rte->eref->aliasname);
280 printf(
"%d\t%s\t[rangefunction]",
281 i, rte->eref->aliasname);
284 printf(
"%d\t%s\t[table function]",
285 i, rte->eref->aliasname);
288 printf(
"%d\t%s\t[values list]",
289 i, rte->eref->aliasname);
293 i, rte->eref->aliasname);
296 printf(
"%d\t%s\t[tuplestore]",
297 i, rte->eref->aliasname);
300 printf(
"%d\t%s\t[result]",
301 i, rte->eref->aliasname);
305 i, rte->eref->aliasname);
308 printf(
"%d\t%s\t[unknown rtekind]",
309 i, rte->eref->aliasname);
313 (rte->
inh ?
"inh" :
""),
314 (rte->inFromCl ?
"inFromCl" :
""));
335 const Var *var = (
const Var *) expr;
360 relname = rte->eref->aliasname;
381 &typoutput, &typIsVarlena);
396 printf(
" %s ", ((opname != NULL) ? opname :
"(invalid operator)"));
401 printf(
"%s ", ((opname != NULL) ? opname :
"(invalid operator)"));
442 eclass = pathkey->pk_eclass;
448 foreach(k,
eclass->ec_members)
480 tle->resname ? tle->resname :
"<null>");
500 printf(
"tuple is null.\n");
505 printf(
"no tuple descriptor.\n");
char * pretty_format_node_dump(const char *dump)
void pprint(const void *obj)
void print_pathkeys(const List *pathkeys, const List *rtable)
void print_rt(const List *rtable)
void print_slot(TupleTableSlot *slot)
void print(const void *obj)
void elog_node_display(int lev, const char *title, const void *obj, bool pretty)
char * format_node_dump(const char *dump)
void print_tl(const List *tlist, const List *rtable)
void print_expr(const Node *expr, const List *rtable)
#define Assert(condition)
int errmsg_internal(const char *fmt,...)
int errdetail_internal(const char *fmt,...)
#define ereport(elevel,...)
char * OidOutputFunctionCall(Oid functionId, Datum val)
static void const char fflush(stdout)
char * get_opname(Oid opno)
void getTypeOutputInfo(Oid type, Oid *typOutput, bool *typIsVarlena)
char * get_func_name(Oid funcid)
void pfree(void *pointer)
static Node * get_rightop(const void *clause)
static Node * get_leftop(const void *clause)
#define IsA(nodeptr, _type_)
char * nodeToStringWithLocations(const void *obj)
char * get_rte_attribute_name(RangeTblEntry *rte, AttrNumber attnum)
#define rt_fetch(rangetable_index, rangetable)
static int list_length(const List *l)
static ListCell * lnext(const List *l, const ListCell *c)
bool debugtup(TupleTableSlot *slot, DestReceiver *self)
static struct cvec * eclass(struct vars *v, chr c, int cases)
void appendStringInfo(StringInfo str, const char *fmt,...)
void initStringInfo(StringInfo str)
TupleDesc tts_tupleDescriptor