|
12 | 12 | *
|
13 | 13 | *
|
14 | 14 | * IDENTIFICATION
|
15 |
| - * $PostgreSQL: pgsql/src/backend/executor/execProcnode.c,v 1.65 2009/01/01 17:23:41 momjian Exp $ |
| 15 | + * $PostgreSQL: pgsql/src/backend/executor/execProcnode.c,v 1.66 2009/09/27 21:10:53 tgl Exp $ |
16 | 16 | *
|
17 | 17 | *-------------------------------------------------------------------------
|
18 | 18 | */
|
19 | 19 | /*
|
20 | 20 | * INTERFACE ROUTINES
|
21 |
| - *ExecCountSlotsNode -count tuple slots needed by plan tree |
22 | 21 | *ExecInitNode-initialize a plan node and its subplans
|
23 | 22 | *ExecProcNode-get a tuple by executing the plan node
|
24 | 23 | *ExecEndNode-shut down a plan node and its subplans
|
@@ -519,122 +518,6 @@ MultiExecProcNode(PlanState *node)
|
519 | 518 | }
|
520 | 519 |
|
521 | 520 |
|
522 |
| -/* |
523 |
| - * ExecCountSlotsNode - count up the number of tuple table slots needed |
524 |
| - * |
525 |
| - * Note that this scans a Plan tree, not a PlanState tree, because we |
526 |
| - * haven't built the PlanState tree yet ... |
527 |
| - */ |
528 |
| -int |
529 |
| -ExecCountSlotsNode(Plan*node) |
530 |
| -{ |
531 |
| -if (node==NULL) |
532 |
| -return0; |
533 |
| - |
534 |
| -switch (nodeTag(node)) |
535 |
| -{ |
536 |
| -/* |
537 |
| - * control nodes |
538 |
| - */ |
539 |
| -caseT_Result: |
540 |
| -returnExecCountSlotsResult((Result*)node); |
541 |
| - |
542 |
| -caseT_Append: |
543 |
| -returnExecCountSlotsAppend((Append*)node); |
544 |
| - |
545 |
| -caseT_RecursiveUnion: |
546 |
| -returnExecCountSlotsRecursiveUnion((RecursiveUnion*)node); |
547 |
| - |
548 |
| -caseT_BitmapAnd: |
549 |
| -returnExecCountSlotsBitmapAnd((BitmapAnd*)node); |
550 |
| - |
551 |
| -caseT_BitmapOr: |
552 |
| -returnExecCountSlotsBitmapOr((BitmapOr*)node); |
553 |
| - |
554 |
| -/* |
555 |
| - * scan nodes |
556 |
| - */ |
557 |
| -caseT_SeqScan: |
558 |
| -returnExecCountSlotsSeqScan((SeqScan*)node); |
559 |
| - |
560 |
| -caseT_IndexScan: |
561 |
| -returnExecCountSlotsIndexScan((IndexScan*)node); |
562 |
| - |
563 |
| -caseT_BitmapIndexScan: |
564 |
| -returnExecCountSlotsBitmapIndexScan((BitmapIndexScan*)node); |
565 |
| - |
566 |
| -caseT_BitmapHeapScan: |
567 |
| -returnExecCountSlotsBitmapHeapScan((BitmapHeapScan*)node); |
568 |
| - |
569 |
| -caseT_TidScan: |
570 |
| -returnExecCountSlotsTidScan((TidScan*)node); |
571 |
| - |
572 |
| -caseT_SubqueryScan: |
573 |
| -returnExecCountSlotsSubqueryScan((SubqueryScan*)node); |
574 |
| - |
575 |
| -caseT_FunctionScan: |
576 |
| -returnExecCountSlotsFunctionScan((FunctionScan*)node); |
577 |
| - |
578 |
| -caseT_ValuesScan: |
579 |
| -returnExecCountSlotsValuesScan((ValuesScan*)node); |
580 |
| - |
581 |
| -caseT_CteScan: |
582 |
| -returnExecCountSlotsCteScan((CteScan*)node); |
583 |
| - |
584 |
| -caseT_WorkTableScan: |
585 |
| -returnExecCountSlotsWorkTableScan((WorkTableScan*)node); |
586 |
| - |
587 |
| -/* |
588 |
| - * join nodes |
589 |
| - */ |
590 |
| -caseT_NestLoop: |
591 |
| -returnExecCountSlotsNestLoop((NestLoop*)node); |
592 |
| - |
593 |
| -caseT_MergeJoin: |
594 |
| -returnExecCountSlotsMergeJoin((MergeJoin*)node); |
595 |
| - |
596 |
| -caseT_HashJoin: |
597 |
| -returnExecCountSlotsHashJoin((HashJoin*)node); |
598 |
| - |
599 |
| -/* |
600 |
| - * materialization nodes |
601 |
| - */ |
602 |
| -caseT_Material: |
603 |
| -returnExecCountSlotsMaterial((Material*)node); |
604 |
| - |
605 |
| -caseT_Sort: |
606 |
| -returnExecCountSlotsSort((Sort*)node); |
607 |
| - |
608 |
| -caseT_Group: |
609 |
| -returnExecCountSlotsGroup((Group*)node); |
610 |
| - |
611 |
| -caseT_Agg: |
612 |
| -returnExecCountSlotsAgg((Agg*)node); |
613 |
| - |
614 |
| -caseT_WindowAgg: |
615 |
| -returnExecCountSlotsWindowAgg((WindowAgg*)node); |
616 |
| -break; |
617 |
| - |
618 |
| -caseT_Unique: |
619 |
| -returnExecCountSlotsUnique((Unique*)node); |
620 |
| - |
621 |
| -caseT_Hash: |
622 |
| -returnExecCountSlotsHash((Hash*)node); |
623 |
| - |
624 |
| -caseT_SetOp: |
625 |
| -returnExecCountSlotsSetOp((SetOp*)node); |
626 |
| - |
627 |
| -caseT_Limit: |
628 |
| -returnExecCountSlotsLimit((Limit*)node); |
629 |
| - |
630 |
| -default: |
631 |
| -elog(ERROR,"unrecognized node type: %d", (int)nodeTag(node)); |
632 |
| -break; |
633 |
| -} |
634 |
| - |
635 |
| -return0; |
636 |
| -} |
637 |
| - |
638 | 521 | /* ----------------------------------------------------------------
|
639 | 522 | *ExecEndNode
|
640 | 523 | *
|
|