* Same row-id precision for parking unresolvable refs as status='failed' * (#1240): the key-tuple fallback would flip same-key sibling rows in later * batches to 'failed' before they were ever attempted, and resolution * outcome can differ per call site (receiver-type inference reads the
(unresolved: UnresolvedRef[])
| 1155 | * ref's line), so a sibling must not inherit this row's failure (#1269). |
| 1156 | */ |
| 1157 | private static partitionFailedCleanup(unresolved: UnresolvedRef[]): { |
| 1158 | byRowId: Array<{ rowId: number; referenceName: string }>; |
| 1159 | legacyKeys: Array<{ fromNodeId: string; referenceName: string; referenceKind: string }>; |
| 1160 | } { |
| 1161 | const byRowId: Array<{ rowId: number; referenceName: string }> = []; |
| 1162 | const legacyKeys: Array<{ fromNodeId: string; referenceName: string; referenceKind: string }> = []; |
| 1163 | for (const r of unresolved) { |
| 1164 | if (r.rowId != null) byRowId.push({ rowId: r.rowId, referenceName: r.referenceName }); |
| 1165 | else legacyKeys.push({ |
| 1166 | fromNodeId: r.fromNodeId, |
| 1167 | referenceName: r.referenceName, |
| 1168 | referenceKind: r.referenceKind, |
| 1169 | }); |
| 1170 | } |
| 1171 | return { byRowId, legacyKeys }; |
| 1172 | } |
| 1173 | |
| 1174 | /** |
| 1175 | * Resolve and persist edges to database |
no outgoing calls
no test coverage detected