| 759 | } |
| 760 | |
| 761 | static void |
| 762 | ExecEagerFreeFunctionScan(FunctionScanState *node) |
| 763 | { |
| 764 | int i; |
| 765 | |
| 766 | /* |
| 767 | * Release slots and tuplestore resources |
| 768 | */ |
| 769 | for (i = 0; i < node->nfuncs; i++) |
| 770 | { |
| 771 | FunctionScanPerFuncState *fs = &node->funcstates[i]; |
| 772 | |
| 773 | if (fs->func_slot) |
| 774 | ExecClearTuple(fs->func_slot); |
| 775 | |
| 776 | if (fs->tstore != NULL) |
| 777 | { |
| 778 | tuplestore_end(node->funcstates[i].tstore); |
| 779 | fs->tstore = NULL; |
| 780 | } |
| 781 | } |
| 782 | } |
| 783 | |
| 784 | void |
| 785 | ExecSquelchFunctionScan(FunctionScanState *node, bool force) |
no test coverage detected