| 1827 | } |
| 1828 | |
| 1829 | Optional<KeyRangeLocationInfo> DatabaseContext::getCachedLocation(const Optional<TenantNameRef>& tenantName, |
| 1830 | const KeyRef& key, |
| 1831 | Reverse isBackward) { |
| 1832 | TenantMapEntry tenantEntry; |
| 1833 | Arena arena; |
| 1834 | KeyRef resolvedKey = key; |
| 1835 | |
| 1836 | if (tenantName.present()) { |
| 1837 | auto itr = tenantCache.find(tenantName.get()); |
| 1838 | if (itr != tenantCache.end()) { |
| 1839 | tenantEntry = itr->second; |
| 1840 | resolvedKey = resolvedKey.withPrefix(tenantEntry.prefix, arena); |
| 1841 | } else { |
| 1842 | return Optional<KeyRangeLocationInfo>(); |
| 1843 | } |
| 1844 | } |
| 1845 | |
| 1846 | auto range = |
| 1847 | isBackward ? locationCache.rangeContainingKeyBefore(resolvedKey) : locationCache.rangeContaining(resolvedKey); |
| 1848 | if (range->value()) { |
| 1849 | return KeyRangeLocationInfo(tenantEntry, toRelativeRange(range->range(), tenantEntry.prefix), range->value()); |
| 1850 | } |
| 1851 | |
| 1852 | return Optional<KeyRangeLocationInfo>(); |
| 1853 | } |
| 1854 | |
| 1855 | bool DatabaseContext::getCachedLocations(const Optional<TenantNameRef>& tenantName, |
| 1856 | const KeyRangeRef& range, |
no test coverage detected