| createTable(CreateTableInfo) |  | 0% |  | 0% | 8 | 8 | 42 | 42 | 1 | 1 |
| dropTable(String, String, boolean, boolean, boolean, boolean, boolean, boolean) |  | 0% |  | 0% | 7 | 7 | 36 | 36 | 1 | 1 |
| truncateTable(String, String, PartitionNamesInfo, boolean, String) |  | 0% |  | 0% | 4 | 4 | 21 | 21 | 1 | 1 |
| renameTable(String, String, String) |  | 0% |  | 0% | 3 | 3 | 18 | 18 | 1 | 1 |
| dropDb(String, boolean, boolean) |  | 0% |  | 0% | 3 | 3 | 16 | 16 | 1 | 1 |
| createDb(String, boolean, Map) |  | 0% |  | 0% | 5 | 5 | 16 | 16 | 1 | 1 |
| addColumn(TableIf, ColumnPath, Column, ColumnPosition) |  | 0% |  | 0% | 2 | 2 | 15 | 15 | 1 | 1 |
| modifyColumn(TableIf, ColumnPath, Column, ColumnPosition) |  | 0% |  | 0% | 2 | 2 | 15 | 15 | 1 | 1 |
| renameColumn(TableIf, ColumnPath, String) |  | 0% |  | 0% | 2 | 2 | 14 | 14 | 1 | 1 |
| dropColumn(TableIf, ColumnPath) |  | 0% |  | 0% | 2 | 2 | 14 | 14 | 1 | 1 |
| addColumn(TableIf, Column, ColumnPosition) |  | 0% | | n/a | 1 | 1 | 12 | 12 | 1 | 1 |
| modifyColumn(TableIf, Column, ColumnPosition) |  | 0% | | n/a | 1 | 1 | 12 | 12 | 1 | 1 |
| modifyColumnComment(TableIf, ColumnPath, String) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| addColumns(TableIf, List) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| renameColumn(TableIf, String, String) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| createOrReplaceBranch(TableIf, CreateOrReplaceBranchInfo) |  | 0% | | n/a | 1 | 1 | 12 | 12 | 1 | 1 |
| createOrReplaceTag(TableIf, CreateOrReplaceTagInfo) |  | 0% | | n/a | 1 | 1 | 12 | 12 | 1 | 1 |
| dropBranch(TableIf, DropBranchInfo) |  | 0% | | n/a | 1 | 1 | 12 | 12 | 1 | 1 |
| dropTag(TableIf, DropTagInfo) |  | 0% | | n/a | 1 | 1 | 12 | 12 | 1 | 1 |
| addPartitionField(TableIf, AddPartitionFieldOp) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| dropPartitionField(TableIf, DropPartitionFieldOp) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| replacePartitionField(TableIf, ReplacePartitionFieldOp) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| dropColumn(TableIf, String) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| reorderColumns(TableIf, List) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| gsonPostProcess() |   | 28% |   | 30% | 5 | 6 | 6 | 10 | 0 | 1 |
| registerDatabase(long, String) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| afterExternalRename(String, String, String) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| initLocalObjectsImpl() |   | 50% |   | 25% | 6 | 7 | 8 | 19 | 0 | 1 |
| validateCreateTableEngine(String) |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| resolveAlterHandle(ExternalTable, ConnectorSession, ConnectorMetadata) |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| getDisplayEngineName() |  | 0% |  | 0% | 2 | 2 | 8 | 8 | 1 | 1 |
| listTableNamesFromRemote(SessionContext, String) |   | 50% |   | 25% | 2 | 3 | 6 | 11 | 0 | 1 |
| checkWhenCreating() |   | 69% |   | 75% | 1 | 3 | 6 | 21 | 0 | 1 |
| afterExternalDdl(ExternalTable, long) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| buildConnectorSession() |   | 61% |   | 50% | 1 | 2 | 5 | 13 | 0 | 1 |
| tableExist(SessionContext, String, String) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| toConnectorPosition(ColumnPosition) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| lambda$initLocalObjectsImpl$0() |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| replayDropTable(String, String) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| replayCreateTable(String, String) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| legacyLogTypeToCatalogType(InitCatalogLog.Type) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| replayDropDb(String) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| checkExternalTable(TableIf) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| overlayMetaCacheConfig(Map) |   | 64% |   | 50% | 3 | 4 | 3 | 9 | 0 | 1 |
| lambda$afterExternalDdl$15(ExternalTable, long, ExternalDatabase) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$replayTruncateTable$9(TruncateTableInfo, ExternalDatabase) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| replayTruncateTable(TruncateTableInfo) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| lambda$replayDropTable$11(String, ExternalDatabase) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$replayDropTable$10(ExternalDatabase, ExternalTable) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$replayTruncateTable$8(ExternalDatabase, TruncateTableInfo, ExternalTable) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| onClose() |   | 75% |  | 100% | 0 | 2 | 2 | 11 | 0 | 1 |
| checkProperties() |   | 74% | | n/a | 0 | 1 | 2 | 9 | 0 | 1 |
| closeConnectorContextQuietly(DefaultConnectorContext) |   | 50% |  | 100% | 0 | 2 | 2 | 7 | 0 | 1 |
| shouldBypassTableNameCache(SessionContext) |   | 41% |   | 16% | 3 | 4 | 0 | 1 | 0 | 1 |
| shouldBypassDbNameCache(SessionContext) |   | 41% |   | 16% | 3 | 4 | 0 | 1 | 0 | 1 |
| shouldBypassSchemaCache(SessionContext) |   | 41% |   | 16% | 3 | 4 | 0 | 1 | 0 | 1 |
| lambda$afterExternalDdl$14(ExternalDatabase, long, ExternalTable) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$replayCreateTable$13(String, ExternalDatabase) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| listDatabaseNames() |   | 62% | | n/a | 0 | 1 | 3 | 5 | 0 | 1 |
| lambda$afterExternalRename$16(String, ExternalDatabase) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| lambda$replayDropDb$12(ExternalDatabase) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$validateCreateTableEngine$2(String, ConnectorProvider) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| toConnectorPath(ColumnPath) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$dropTable$7(String, ExternalDatabase) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$dropTable$6(String, ExternalDatabase) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$createConnectorFromProperties$1() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$createTable$5(ExternalDatabase) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$createTable$4(ExternalDatabase) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$createTable$3(ExternalDatabase) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| hasConnectorCapability(ConnectorCapability) |   | 85% |   | 50% | 2 | 3 | 0 | 2 | 0 | 1 |
| onRefreshCache(boolean) |   | 84% |   | 75% | 1 | 3 | 1 | 6 | 0 | 1 |
| supportsUserSession() |   | 84% |   | 50% | 2 | 3 | 0 | 2 | 0 | 1 |
| buildCrossStatementSession() |  | 100% |  | 100% | 0 | 2 | 0 | 15 | 0 | 1 |
| createConnectorFromProperties() |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| PluginDrivenExternalCatalog(long, String, String, Map, String, Connector) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| fromRemoteTableName(String, String) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| fromRemoteDatabaseName(String) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| buildDbForInit(String, String, long, InitCatalogLog.Type, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getType() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getConnector() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| notifyPropertiesUpdated(Map) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| PluginDrivenExternalCatalog() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |