| 779 | } |
| 780 | |
| 781 | bool NodeTable::isVisible(const Transaction* transaction, offset_t offset) const { |
| 782 | if (transaction && transaction->isUnCommitted(tableID, offset)) { |
| 783 | const auto localTable = transaction->getLocalStorage()->getLocalTable(tableID); |
| 784 | DASSERT(localTable); |
| 785 | return localTable->cast<LocalNodeTable>().isVisible(transaction, offset); |
| 786 | } |
| 787 | auto [nodeGroupIdx, offsetInGroup] = StorageUtils::getNodeGroupIdxAndOffsetInChunk(offset); |
| 788 | if (nodeGroupIdx >= nodeGroups->getNumNodeGroups()) { |
| 789 | return false; |
| 790 | } |
| 791 | const auto* nodeGroup = getNodeGroup(nodeGroupIdx); |
| 792 | return nodeGroup->isVisible(transaction, offsetInGroup); |
| 793 | } |
| 794 | |
| 795 | bool NodeTable::isVisibleNoLock(const Transaction* transaction, offset_t offset) const { |
| 796 | if (transaction && transaction->isUnCommitted(tableID, offset)) { |
no test coverage detected