|
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 | * |
|