aboutsummaryrefslogtreecommitdiff
path: root/src/backend/nodes/print.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/nodes/print.c')
-rw-r--r--src/backend/nodes/print.c52
1 files changed, 41 insertions, 11 deletions
diff --git a/src/backend/nodes/print.c b/src/backend/nodes/print.c
index 35bb99b62fd..3e5b5bb78fc 100644
--- a/src/backend/nodes/print.c
+++ b/src/backend/nodes/print.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/nodes/print.c,v 1.74 2005/04/06 16:34:05 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/nodes/print.c,v 1.75 2005/04/19 22:35:15 tgl Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -493,12 +493,20 @@ plannode_type(Plan *p)
return "RESULT";
case T_Append:
return "APPEND";
+ case T_BitmapAnd:
+ return "BITMAPAND";
+ case T_BitmapOr:
+ return "BITMAPOR";
case T_Scan:
return "SCAN";
case T_SeqScan:
return "SEQSCAN";
case T_IndexScan:
return "INDEXSCAN";
+ case T_BitmapIndexScan:
+ return "BITMAPINDEXSCAN";
+ case T_BitmapHeapScan:
+ return "BITMAPHEAPSCAN";
case T_TidScan:
return "TIDSCAN";
case T_SubqueryScan:
@@ -551,7 +559,8 @@ print_plan_recursive(Plan *p, Query *parsetree, int indentLevel, char *label)
p->startup_cost, p->total_cost,
p->plan_rows, p->plan_width);
if (IsA(p, Scan) ||
- IsA(p, SeqScan))
+ IsA(p, SeqScan) ||
+ IsA(p, BitmapHeapScan))
{
RangeTblEntry *rte;
@@ -584,27 +593,48 @@ print_plan_recursive(Plan *p, Query *parsetree, int indentLevel, char *label)
if (IsA(p, Append))
{
ListCell *l;
- int whichplan = 0;
Append *appendplan = (Append *) p;
foreach(l, appendplan->appendplans)
{
Plan *subnode = (Plan *) lfirst(l);
- /*
- * I don't think we need to fiddle with the range table here,
- * bjm
- */
print_plan_recursive(subnode, parsetree, indentLevel + 3, "a: ");
+ }
+ }
+
+ if (IsA(p, BitmapAnd))
+ {
+ ListCell *l;
+ BitmapAnd *bitmapandplan = (BitmapAnd *) p;
+
+ foreach(l, bitmapandplan->bitmapplans)
+ {
+ Plan *subnode = (Plan *) lfirst(l);
- whichplan++;
+ print_plan_recursive(subnode, parsetree, indentLevel + 3, "a: ");
}
}
-}
-/* print_plan
- prints just the plan node types */
+ if (IsA(p, BitmapOr))
+ {
+ ListCell *l;
+ BitmapOr *bitmaporplan = (BitmapOr *) p;
+ foreach(l, bitmaporplan->bitmapplans)
+ {
+ Plan *subnode = (Plan *) lfirst(l);
+
+ print_plan_recursive(subnode, parsetree, indentLevel + 3, "a: ");
+ }
+ }
+}
+
+/*
+ * print_plan
+ *
+ * prints just the plan node types
+ */
void
print_plan(Plan *p, Query *parsetree)
{