* PrepareInvalidationState * Initialize inval lists for the current (sub)transaction. */
| 815 | * Initialize inval lists for the current (sub)transaction. |
| 816 | */ |
| 817 | static void |
| 818 | PrepareInvalidationState(void) |
| 819 | { |
| 820 | TransInvalidationInfo *myInfo; |
| 821 | |
| 822 | if (transInvalInfo != NULL && |
| 823 | transInvalInfo->my_level == GetCurrentTransactionNestLevel()) |
| 824 | return; |
| 825 | |
| 826 | myInfo = (TransInvalidationInfo *) |
| 827 | MemoryContextAllocZero(TopTransactionContext, |
| 828 | sizeof(TransInvalidationInfo)); |
| 829 | myInfo->parent = transInvalInfo; |
| 830 | myInfo->my_level = GetCurrentTransactionNestLevel(); |
| 831 | |
| 832 | /* |
| 833 | * If there's any previous entry, this one should be for a deeper nesting |
| 834 | * level. |
| 835 | */ |
| 836 | Assert(transInvalInfo == NULL || |
| 837 | myInfo->my_level > transInvalInfo->my_level); |
| 838 | |
| 839 | transInvalInfo = myInfo; |
| 840 | } |
| 841 | |
| 842 | /* |
| 843 | * PostPrepare_Inval |
no test coverage detected