|
7 | 7 | *
|
8 | 8 | *
|
9 | 9 | * IDENTIFICATION
|
10 |
| - * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.111 1999/05/09 23:31:47 tgl Exp $ |
| 10 | + * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.112 1999/05/11 09:06:31 wieck Exp $ |
11 | 11 | *
|
12 | 12 | * NOTES
|
13 | 13 | * this is the "main" module of the postgres backend and
|
|
103 | 103 | #defineDebugPrintQuerypg_options[TRACE_QUERY]
|
104 | 104 | #defineDebugPrintPlanpg_options[TRACE_PLAN]
|
105 | 105 | #defineDebugPrintParsepg_options[TRACE_PARSE]
|
| 106 | +#defineDebugPrintRewrittenParsetree \ |
| 107 | +pg_options[TRACE_REWRITTEN] |
| 108 | +#defineDebugPPrintPlanpg_options[TRACE_PRETTY_PLAN] |
| 109 | +#defineDebugPPrintParsepg_options[TRACE_PRETTY_PARSE] |
| 110 | +#defineDebugPPrintRewrittenParsetree \ |
| 111 | +pg_options[TRACE_PRETTY_REWRITTEN] |
106 | 112 | #defineShowParserStatspg_options[TRACE_PARSERSTATS]
|
107 | 113 | #defineShowPlannerStatspg_options[TRACE_PLANNERSTATS]
|
108 | 114 | #defineShowExecutorStatspg_options[TRACE_EXECUTORSTATS]
|
109 |
| -#defineDebugPrintRewrittenParsetree \ |
110 |
| -pg_options[TRACE_REWRITTEN] |
111 | 115 | #ifdefLOCK_MGR_DEBUG
|
112 | 116 | #defineLockDebugpg_options[TRACE_LOCKS]
|
113 | 117 | #endif
|
@@ -474,10 +478,15 @@ pg_parse_and_plan(char *query_string,/* string to execute */
|
474 | 478 | {
|
475 | 479 | querytree=querytree_list->qtrees[i];
|
476 | 480 |
|
477 |
| -if (DebugPrintParse) |
| 481 | +if (DebugPrintParse||DebugPPrintParse) |
478 | 482 | {
|
479 |
| -TPRINTF(TRACE_PARSE,"parser outputs:"); |
480 |
| -nodeDisplay(querytree); |
| 483 | +if (DebugPPrintParse) { |
| 484 | +TPRINTF(TRACE_PRETTY_PARSE,"parser outputs:"); |
| 485 | +nodeDisplay(querytree); |
| 486 | +}else { |
| 487 | +TPRINTF(TRACE_PARSE,"parser outputs:"); |
| 488 | +printf("\n%s\n\n",nodeToString(querytree)); |
| 489 | +} |
481 | 490 | }
|
482 | 491 |
|
483 | 492 | /* don't rewrite utilites, just dump 'em into new_list */
|
@@ -545,14 +554,23 @@ pg_parse_and_plan(char *query_string,/* string to execute */
|
545 | 554 | }
|
546 | 555 | }
|
547 | 556 |
|
548 |
| -if (DebugPrintRewrittenParsetree) |
| 557 | +if (DebugPrintRewrittenParsetree||DebugPPrintRewrittenParsetree) |
549 | 558 | {
|
550 |
| -TPRINTF(TRACE_REWRITTEN,"after rewriting:"); |
| 559 | +if (DebugPPrintRewrittenParsetree) { |
| 560 | +TPRINTF(TRACE_PRETTY_REWRITTEN,"after rewriting:"); |
551 | 561 |
|
552 |
| -for (i=0;i<querytree_list->len;i++) |
553 |
| -{ |
554 |
| -nodeDisplay(querytree_list->qtrees[i]); |
555 |
| -printf("\n"); |
| 562 | +for (i=0;i<querytree_list->len;i++) |
| 563 | +{ |
| 564 | +nodeDisplay(querytree_list->qtrees[i]); |
| 565 | +printf("\n"); |
| 566 | +} |
| 567 | +}else { |
| 568 | +TPRINTF(TRACE_REWRITTEN,"after rewriting:"); |
| 569 | + |
| 570 | +for (i=0;i<querytree_list->len;i++) |
| 571 | +{ |
| 572 | +printf("\n%s\n\n",nodeToString(querytree_list->qtrees[i])); |
| 573 | +} |
556 | 574 | }
|
557 | 575 | }
|
558 | 576 |
|
@@ -608,10 +626,15 @@ pg_parse_and_plan(char *query_string,/* string to execute */
|
608 | 626 | *also for queries in functions.DZ - 27-8-1996
|
609 | 627 | * ----------------
|
610 | 628 | */
|
611 |
| -if (DebugPrintPlan) |
| 629 | +if (DebugPrintPlan||DebugPPrintPlan) |
612 | 630 | {
|
613 |
| -TPRINTF(TRACE_PLAN,"plan:"); |
614 |
| -nodeDisplay(plan); |
| 631 | +if (DebugPPrintPlan) { |
| 632 | +TPRINTF(TRACE_PRETTY_PLAN,"plan:"); |
| 633 | +nodeDisplay(plan); |
| 634 | +}else { |
| 635 | +TPRINTF(TRACE_PLAN,"plan:"); |
| 636 | +printf("\n%s\n\n",nodeToString(plan)); |
| 637 | +} |
615 | 638 | }
|
616 | 639 | #endif
|
617 | 640 | }
|
@@ -747,10 +770,15 @@ pg_exec_query_dest(char *query_string,/* string to execute */
|
747 | 770 | *print plan if debugging
|
748 | 771 | * ----------------
|
749 | 772 | */
|
750 |
| -if (DebugPrintPlan) |
| 773 | +if (DebugPrintPlan||DebugPPrintPlan) |
751 | 774 | {
|
752 |
| -TPRINTF(TRACE_PLAN,"plan:"); |
753 |
| -nodeDisplay(plan); |
| 775 | +if (DebugPPrintPlan) { |
| 776 | +TPRINTF(TRACE_PRETTY_PLAN,"plan:"); |
| 777 | +nodeDisplay(plan); |
| 778 | +}else { |
| 779 | +TPRINTF(TRACE_PLAN,"plan:"); |
| 780 | +printf("\n%s\n\n",nodeToString(plan)); |
| 781 | +} |
754 | 782 | }
|
755 | 783 | #endif
|
756 | 784 |
|
@@ -1047,6 +1075,12 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
|
1047 | 1075 | DebugPrintPlan= true;
|
1048 | 1076 | DebugPrintRewrittenParsetree= true;
|
1049 | 1077 | }
|
| 1078 | +if (DebugLvl >=5) |
| 1079 | +{ |
| 1080 | +DebugPPrintParse= true; |
| 1081 | +DebugPPrintPlan= true; |
| 1082 | +DebugPPrintRewrittenParsetree= true; |
| 1083 | +} |
1050 | 1084 | break;
|
1051 | 1085 |
|
1052 | 1086 | case'E':
|
@@ -1510,7 +1544,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
|
1510 | 1544 | if (!IsUnderPostmaster)
|
1511 | 1545 | {
|
1512 | 1546 | puts("\nPOSTGRES backend interactive interface ");
|
1513 |
| -puts("$Revision: 1.111 $ $Date: 1999/05/09 23:31:47 $\n"); |
| 1547 | +puts("$Revision: 1.112 $ $Date: 1999/05/11 09:06:31 $\n"); |
1514 | 1548 | }
|
1515 | 1549 |
|
1516 | 1550 | /* ----------------
|
|