| updateTableCache(ExternalTable, String, String, boolean) |  | 0% |  | 0% | 7 | 7 | 10 | 10 | 1 | 1 |
| listTableNames() |   | 69% |   | 72% | 4 | 10 | 15 | 36 | 0 | 1 |
| getTableForReplay(String) |  | 0% |  | 0% | 5 | 5 | 12 | 12 | 1 | 1 |
| getLocalTableName(String, boolean) |   | 37% |   | 42% | 5 | 8 | 11 | 19 | 0 | 1 |
| unregisterTable(String) |  | 0% |  | 0% | 4 | 4 | 11 | 11 | 1 | 1 |
| buildTableForInit(String, String, long, ExternalCatalog, ExternalDatabase, boolean) |   | 68% |   | 58% | 8 | 13 | 8 | 28 | 0 | 1 |
| registerTable(TableIf) |  | 0% |  | 0% | 3 | 3 | 9 | 9 | 1 | 1 |
| resolveTableNameFromSnapshot(String, boolean, Function) |   | 50% |   | 50% | 6 | 9 | 7 | 15 | 0 | 1 |
| invalidateTableCache(String) |  | 0% |  | 0% | 4 | 4 | 6 | 6 | 1 | 1 |
| equals(Object) |  | 0% |  | 0% | 5 | 5 | 6 | 6 | 1 | 1 |
| isTableExist(String) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| getTableForReplay(long) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| makeSureInitialized() |   | 58% |   | 75% | 1 | 3 | 5 | 16 | 0 | 1 |
| addTableForTest(ExternalTable) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| resetMetaToUninitialized() |   | 58% |   | 50% | 1 | 2 | 2 | 9 | 0 | 1 |
| tryWriteLock(long, TimeUnit) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| buildMetaCache() |   | 77% |   | 33% | 3 | 4 | 2 | 14 | 0 | 1 |
| gsonPostProcess() |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| getTables() |   | 73% |   | 75% | 1 | 3 | 3 | 13 | 0 | 1 |
| getCachedTableNamesForTest() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| getCachedTableForTest(String) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| setInitializedForTest(boolean) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| lambda$updateTableCache$12(String, String, String, NameCacheValue) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| lambda$updateTableCache$11(String, String, String, NameCacheValue) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| lambda$invalidateTableCache$13(String, String, NameCacheValue) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| updateTableCache(ExternalTable, String, String) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getCachedTableNameByIdForTest(long) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| resetMetaCacheNames() |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| lambda$invalidateTableCache$14(String, Map.Entry) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| readLock() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| readUnlock() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| writeLock() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| writeUnlock() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| isWriteLockHeldByCurrentThread() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getViews() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getTablesOnIdOrderIfExist(List) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getTablesOnIdOrderOrThrowException(List) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setExtCatalog(ExternalCatalog) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| setRemoteName(String) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| writeLockIfExist() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| lambda$isTableExist$8(String, NameCacheValue) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$listTableNames$3(String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$listTableNames$2(String) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getRemoteName() |   | 70% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| isInitialized() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| writeLockOrException(Exception) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| writeLockOrDdlException() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getDbProperties() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getLastUpdateTime() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getTableNullable(String) |   | 93% |   | 75% | 1 | 3 | 1 | 8 | 0 | 1 |
| getTableNamesValue(boolean) |   | 89% |   | 75% | 1 | 3 | 1 | 3 | 0 | 1 |
| ExternalDatabase(ExternalCatalog, long, String, String, InitDatabaseLog.Type) |  | 100% | | n/a | 0 | 1 | 0 | 12 | 0 | 1 |
| lambda$buildMetaCache$1(String) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$listTableNames$4(String) |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 1 |
| getTableNullable(long) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| listLocalTableNamesFromCache() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| invalidateAllTableCache() |  | 100% |   | 50% | 2 | 3 | 0 | 6 | 0 | 1 |
| hashCode() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isStoredTableNamesLowerCase() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| isTableNamesCaseInsensitive() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| getRemoteTableName(String, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$buildTableForInit$7(String, NameCacheValue) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| lambda$listTableNames$6(List) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| getTableNamesWithLock() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setLastUpdateTime(long) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$getRemoteTableName$10(String, NameCacheValue) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getLocalTableName$9(String, NameCacheValue) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$buildMetaCache$0(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getId() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getFullName() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getCatalog() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$listTableNames$5(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |