Datum DumpQuery(PG_FUNCTION_ARGS) { char *szSqlText = textToString(PG_GETARG_TEXT_P(0)); Query *pquery = parseSQL(szSqlText); elog(NOTICE, "(DumpQuery - Original) \n %s", pretty_format_node_dump(const_cast<char*>(gpdb::SzNodeToString(pquery)))); Query *pqueryNormalized = preprocess_query_optimizer(pquery, NULL); elog(NOTICE, "(DumpQuery - Normalized) \n %s", pretty_format_node_dump(const_cast<char*>(gpdb::SzNodeToString(pqueryNormalized)))); text *ptResult = stringToText("Query dumped"); PG_RETURN_TEXT_P(ptResult); }
/* * pprint * pretty-print contents of Node to stdout */ void pprint(const void *obj) { char *s; char *f; s = nodeToString(obj); f = pretty_format_node_dump(s); pfree(s); printf("%s\n", f); fflush(stdout); pfree(f); }
/* * elog_node_display * send pretty-printed contents of Node to postmaster log */ void elog_node_display(int lev, const char *title, const void *obj, bool pretty) { char *s; char *f; s = nodeToString(obj); if (pretty) f = pretty_format_node_dump(s); else f = format_node_dump(s); pfree(s); ereport(lev, (errmsg_internal("%s:", title), errdetail_internal("%s", f))); pfree(f); }