@@ -521,73 +521,22 @@ function merge_metadata(metadata_left::Metadata, metadata_right::Metadata)
521
521
offset = 0
522
522
523
523
for (idx, vn) in enumerate (vns_both)
524
- # `idcs`
525
524
idcs[vn] = idx
526
- # `vns`
527
525
push! (vns, vn)
528
- if vn in vns_left && vn in vns_right
529
- # `vals`: only valid if they're the length.
530
- vals_left = getindex_internal (metadata_left, vn)
531
- vals_right = getindex_internal (metadata_right, vn)
532
- @assert length (vals_left) == length (vals_right)
533
- append! (vals, vals_right)
534
- # `ranges`
535
- r = (offset + 1 ): (offset + length (vals_left))
536
- push! (ranges, r)
537
- offset = r[end ]
538
- # `dists`: only valid if they're the same.
539
- dist_right = getdist (metadata_right, vn)
540
- # Give precedence to `metadata_right`.
541
- push! (dists, dist_right)
542
- gid = metadata_right. gids[getidx (metadata_right, vn)]
543
- push! (gids, gid)
544
- # `orders`: giving precedence to `metadata_right`
545
- push! (orders, getorder (metadata_right, vn))
546
- # `flags`
547
- for k in keys (flags)
548
- # Using `metadata_right`; should we?
549
- push! (flags[k], is_flagged (metadata_right, vn, k))
550
- end
551
- elseif vn in vns_left
552
- # Just extract the metadata from `metadata_left`.
553
- # `vals`
554
- vals_left = getindex_internal (metadata_left, vn)
555
- append! (vals, vals_left)
556
- # `ranges`
557
- r = (offset + 1 ): (offset + length (vals_left))
558
- push! (ranges, r)
559
- offset = r[end ]
560
- # `dists`
561
- dist_left = getdist (metadata_left, vn)
562
- push! (dists, dist_left)
563
- gid = metadata_left. gids[getidx (metadata_left, vn)]
564
- push! (gids, gid)
565
- # `orders`
566
- push! (orders, getorder (metadata_left, vn))
567
- # `flags`
568
- for k in keys (flags)
569
- push! (flags[k], is_flagged (metadata_left, vn, k))
570
- end
571
- else
572
- # Just extract the metadata from `metadata_right`.
573
- # `vals`
574
- vals_right = getindex_internal (metadata_right, vn)
575
- append! (vals, vals_right)
576
- # `ranges`
577
- r = (offset + 1 ): (offset + length (vals_right))
578
- push! (ranges, r)
579
- offset = r[end ]
580
- # `dists`
581
- dist_right = getdist (metadata_right, vn)
582
- push! (dists, dist_right)
583
- gid = metadata_right. gids[getidx (metadata_right, vn)]
584
- push! (gids, gid)
585
- # `orders`
586
- push! (orders, getorder (metadata_right, vn))
587
- # `flags`
588
- for k in keys (flags)
589
- push! (flags[k], is_flagged (metadata_right, vn, k))
590
- end
526
+ metadata_for_vn = vn in vns_right ? metadata_right : metadata_left
527
+
528
+ val = getindex_internal (metadata_for_vn, vn)
529
+ append! (vals, val)
530
+ r = (offset + 1 ): (offset + length (val))
531
+ push! (ranges, r)
532
+ offset = r[end ]
533
+ dist = getdist (metadata_for_vn, vn)
534
+ push! (dists, dist)
535
+ gid = metadata_for_vn. gids[getidx (metadata_for_vn, vn)]
536
+ push! (gids, gid)
537
+ push! (orders, getorder (metadata_for_vn, vn))
538
+ for k in keys (flags)
539
+ push! (flags[k], is_flagged (metadata_for_vn, vn, k))
591
540
end
592
541
end
593
542
0 commit comments