110 for (j = 0; j <
LINELEN && dump[
i] !=
'\0'; i++, j++)
121 for (k = j - 1; k > 0; k--)
169 for (j = 0; j < indentDist; j++)
171 for (; j <
LINELEN && dump[
i] !=
'\0'; i++, 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");
272 printf(
"%d\t%s\t[subquery]",
280 printf(
"%d\t%s\t[rangefunction]",
284 printf(
"%d\t%s\t[table function]",
288 printf(
"%d\t%s\t[values list]",
296 printf(
"%d\t%s\t[tuplestore]",
300 printf(
"%d\t%s\t[result]",
304 printf(
"%d\t%s\t[unknown rtekind]",
309 (rte->
inh ?
"inh" :
""),
331 const Var *var = (
const Var *) expr;
361 printf(
"%s.%s", relname, attname);
377 &typoutput, &typIsVarlena);
392 printf(
" %s ", ((opname != NULL) ? opname :
"(invalid operator)"));
398 printf(
"%s ", ((opname != NULL) ? opname :
"(invalid operator)"));
409 printf(
"%s(", ((funcname != NULL) ? funcname :
"(invalid function)"));
456 if (
lnext(pathkeys, i))
497 printf(
"tuple is null.\n");
502 printf(
"no tuple descriptor.\n");
void print_rt(const List *rtable)
#define IsA(nodeptr, _type_)
void getTypeOutputInfo(Oid type, Oid *typOutput, bool *typIsVarlena)
void print(const void *obj)
void elog_node_display(int lev, const char *title, const void *obj, bool pretty)
static ListCell * lnext(const List *l, const ListCell *c)
char * pretty_format_node_dump(const char *dump)
static struct cvec * eclass(struct vars *v, chr c, int cases)
int errdetail_internal(const char *fmt,...)
char * get_opname(Oid opno)
void pfree(void *pointer)
void appendStringInfo(StringInfo str, const char *fmt,...)
char * get_func_name(Oid funcid)
void print_tl(const List *tlist, const List *rtable)
static Node * get_leftop(const void *clause)
void print_expr(const Node *expr, const List *rtable)
#define ereport(elevel, rest)
#define rt_fetch(rangetable_index, rangetable)
void initStringInfo(StringInfo str)
TupleDesc tts_tupleDescriptor
void print_pathkeys(const List *pathkeys, const List *rtable)
void pprint(const void *obj)
static Node * get_rightop(const void *clause)
char * get_rte_attribute_name(RangeTblEntry *rte, AttrNumber attnum)
int errmsg_internal(const char *fmt,...)
#define Assert(condition)
EquivalenceClass * pk_eclass
static int list_length(const List *l)
bool debugtup(TupleTableSlot *slot, DestReceiver *self)
char * OidOutputFunctionCall(Oid functionId, Datum val)
char * format_node_dump(const char *dump)
char * nodeToString(const void *obj)
struct EquivalenceClass * ec_merged
void print_slot(TupleTableSlot *slot)