| bindHiveTableSink(MatchingContext) |   | 0% |   | 0% | 4 | 4 | 23 | 23 | 1 | 1 | 
| bindIcebergTableSink(MatchingContext) |   | 0% |   | 0% | 3 | 3 | 21 | 21 | 1 | 1 | 
| getColumnToOutput(MatchingContext, TableIf, boolean, LogicalTableSink, LogicalPlan) |    | 92% |    | 83% | 9 | 29 | 8 | 121 | 0 | 1 | 
| bind(CascadesContext, UnboundHiveTableSink) |   | 0% |   | 0% | 3 | 3 | 9 | 9 | 1 | 1 | 
| bind(CascadesContext, UnboundIcebergTableSink) |   | 0% |   | 0% | 2 | 2 | 7 | 7 | 1 | 1 | 
| lambda$bindIcebergTableSink$9(IcebergExternalTable, String) |   | 0% |   | 0% | 2 | 2 | 5 | 5 | 1 | 1 | 
| lambda$bindHiveTableSink$8(HMSExternalTable, String) |   | 0% |   | 0% | 2 | 2 | 5 | 5 | 1 | 1 | 
| lambda$bindTargetColumns$15(OlapTable, String) |    | 32% |    | 50% | 1 | 2 | 2 | 5 | 0 | 1 | 
| lambda$bindJdbcTableSink$10(JdbcExternalTable, String) |    | 32% |    | 50% | 1 | 2 | 2 | 5 | 0 | 1 | 
| bindJdbcTableSink(MatchingContext) |    | 85% |    | 50% | 2 | 3 | 2 | 21 | 0 | 1 | 
| bindBlackHoleSink(MatchingContext) |    | 71% |    | 33% | 3 | 4 | 1 | 11 | 0 | 1 | 
| bindDictionarySink(MatchingContext) |    | 88% |    | 75% | 1 | 3 | 1 | 20 | 0 | 1 | 
| getDictColumnToOutput(MatchingContext, List, LogicalDictionarySink, LogicalPlan) |    | 83% |    | 83% | 1 | 4 | 1 | 12 | 0 | 1 | 
| bind(CascadesContext, UnboundDictionarySink) |    | 72% |  | n/a | 0 | 1 | 2 | 7 | 0 | 1 | 
| bindOlapTableSink(MatchingContext) |    | 98% |    | 92% | 4 | 29 | 1 | 73 | 0 | 1 | 
| bind(CascadesContext, UnboundTableSink) |    | 83% |    | 50% | 1 | 2 | 1 | 7 | 0 | 1 | 
| bind(CascadesContext, UnboundJdbcTableSink) |    | 83% |    | 50% | 1 | 2 | 1 | 7 | 0 | 1 | 
| lambda$getOutputProjectByCoercion$6(NamedExpression) |   | 85% |    | 50% | 1 | 2 | 0 | 1 | 0 | 1 | 
| getOutputProjectByCoercion(List, LogicalPlan, Map) |   | 100% |    | 93% | 2 | 17 | 0 | 38 | 0 | 1 | 
| bindTargetColumns(OlapTable, List, boolean, boolean, boolean) |   | 100% |    | 94% | 1 | 10 | 0 | 20 | 0 | 1 | 
| buildRules() |   | 100% |  | n/a | 0 | 1 | 0 | 10 | 0 | 1 | 
| lambda$buildRules$1(LogicalFileSink) |   | 100% |   | 100% | 0 | 2 | 0 | 8 | 0 | 1 | 
| getJdbcColumnToOutput(List, LogicalPlan) |   | 100% |   | 100% | 0 | 2 | 0 | 9 | 0 | 1 | 
| lambda$bindPartitionIds$12(OlapTable, boolean, String) |   | 100% |   | 100% | 0 | 2 | 0 | 5 | 0 | 1 | 
| bindPartitionIds(OlapTable, List, boolean) |   | 100% |   | 100% | 0 | 2 | 0 | 4 | 0 | 1 | 
| validColumn(Column, boolean) |   | 100% |    | 87% | 1 | 5 | 0 | 2 | 0 | 1 | 
| lambda$bindTargetColumns$13(boolean, boolean, Column) |   | 100% |   | 100% | 0 | 3 | 0 | 1 | 0 | 1 | 
| isSourceAndTargetStringLikeType(DataType, DataType) |   | 100% |    | 75% | 1 | 3 | 0 | 1 | 0 | 1 | 
| lambda$getColumnToOutput$7(TableIf, Column) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| BindSink(boolean) |   | 100% |  | n/a | 0 | 1 | 0 | 3 | 0 | 1 | 
| lambda$bindDictionarySink$11(Column, NamedExpression) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$bindOlapTableSink$4(OlapTable, Column) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$bindTargetColumns$14(Column, String) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$bindOlapTableSink$3(OlapTable, String) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$bindOlapTableSink$2(Slot) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| BindSink() |  | 100% |  | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 
| lambda$bindOlapTableSink$5(String) |  | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$buildRules$0(LogicalFileSink) |  | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 |