Server IP : 85.214.239.14 / Your IP : 3.138.134.140 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/include/postgresql/9.6/server/executor/ |
Upload File : |
/*------------------------------------------------------------------------- * * execdebug.h * #defines governing debugging behaviour in the executor * * XXX this is all pretty old and crufty. Newer code tends to use elog() * for debug printouts, because that's more flexible than printf(). * * * Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * src/include/executor/execdebug.h * *------------------------------------------------------------------------- */ #ifndef EXECDEBUG_H #define EXECDEBUG_H #include "executor/executor.h" #include "nodes/print.h" /* ---------------------------------------------------------------- * debugging defines. * * If you want certain debugging behaviour, then #define * the variable to 1. No need to explicitly #undef by default, * since we can use -D compiler options to enable features. * - thomas 1999-02-20 * ---------------------------------------------------------------- */ /* ---------------- * EXEC_NESTLOOPDEBUG is a flag which turns on debugging of the * nest loop node by NL_printf() and ENL_printf() in nodeNestloop.c * ---------------- #undef EXEC_NESTLOOPDEBUG */ /* ---------------- * EXEC_EVALDEBUG is a flag which turns on debugging of * ExecEval and ExecTargetList() stuff by EV_printf() in execQual.c * ---------------- #undef EXEC_EVALDEBUG */ /* ---------------- * EXEC_SORTDEBUG is a flag which turns on debugging of * the ExecSort() stuff by SO_printf() in nodeSort.c * ---------------- #undef EXEC_SORTDEBUG */ /* ---------------- * EXEC_MERGEJOINDEBUG is a flag which turns on debugging of * the ExecMergeJoin() stuff by MJ_printf() in nodeMergejoin.c * ---------------- #undef EXEC_MERGEJOINDEBUG */ /* ---------------------------------------------------------------- * #defines controlled by above definitions * * Note: most of these are "incomplete" because I didn't * need the ones not defined. More should be added * only as necessary -cim 10/26/89 * ---------------------------------------------------------------- */ #define T_OR_F(b) ((b) ? "true" : "false") #define NULL_OR_TUPLE(slot) (TupIsNull(slot) ? "null" : "a tuple") /* ---------------- * nest loop debugging defines * ---------------- */ #ifdef EXEC_NESTLOOPDEBUG #define NL_nodeDisplay(l) nodeDisplay(l) #define NL_printf(s) printf(s) #define NL1_printf(s, a) printf(s, a) #define ENL1_printf(message) printf("ExecNestLoop: %s\n", message) #else #define NL_nodeDisplay(l) #define NL_printf(s) #define NL1_printf(s, a) #define ENL1_printf(message) #endif /* EXEC_NESTLOOPDEBUG */ /* ---------------- * exec eval / target list debugging defines * ---------------- */ #ifdef EXEC_EVALDEBUG #define EV_nodeDisplay(l) nodeDisplay(l) #define EV_printf(s) printf(s) #define EV1_printf(s, a) printf(s, a) #else #define EV_nodeDisplay(l) #define EV_printf(s) #define EV1_printf(s, a) #endif /* EXEC_EVALDEBUG */ /* ---------------- * sort node debugging defines * ---------------- */ #ifdef EXEC_SORTDEBUG #define SO_nodeDisplay(l) nodeDisplay(l) #define SO_printf(s) printf(s) #define SO1_printf(s, p) printf(s, p) #else #define SO_nodeDisplay(l) #define SO_printf(s) #define SO1_printf(s, p) #endif /* EXEC_SORTDEBUG */ /* ---------------- * merge join debugging defines * ---------------- */ #ifdef EXEC_MERGEJOINDEBUG #define MJ_nodeDisplay(l) nodeDisplay(l) #define MJ_printf(s) printf(s) #define MJ1_printf(s, p) printf(s, p) #define MJ2_printf(s, p1, p2) printf(s, p1, p2) #define MJ_debugtup(slot) debugtup(slot, NULL) #define MJ_dump(state) ExecMergeTupleDump(state) #define MJ_DEBUG_COMPARE(res) \ MJ1_printf(" MJCompare() returns %d\n", (res)) #define MJ_DEBUG_QUAL(clause, res) \ MJ2_printf(" ExecQual(%s, econtext) returns %s\n", \ CppAsString(clause), T_OR_F(res)) #define MJ_DEBUG_PROC_NODE(slot) \ MJ2_printf(" %s = ExecProcNode(...) returns %s\n", \ CppAsString(slot), NULL_OR_TUPLE(slot)) #else #define MJ_nodeDisplay(l) #define MJ_printf(s) #define MJ1_printf(s, p) #define MJ2_printf(s, p1, p2) #define MJ_debugtup(slot) #define MJ_dump(state) #define MJ_DEBUG_COMPARE(res) #define MJ_DEBUG_QUAL(clause, res) #define MJ_DEBUG_PROC_NODE(slot) #endif /* EXEC_MERGEJOINDEBUG */ #endif /* ExecDebugIncluded */