Skip to content

Commit c4b613c

Browse files
authored
Use weaker version of ComponentDescriptor for indicators (#9990)
### Related * Part of #6889. * From #9938 (comment): > was curious and poked a lil bit into the ci failure: took me a while to notice but the primary issue presented by the failing images is that it draws lines instead of points. > > Which implies an issue with indicators (wtf why is that the only test failing then.. but sure usually there's no choice; have only a vague hunch about that :/). Looking at `impl<A: Archetype> crate::ComponentBatch for GenericIndicatorComponentArray<A>` indicators are never logged with their full descriptor, but are advertised as such. > > So I quickly hacked the generated `SeriesPoints::descriptor_indicator` to be name only and sure enough that fixed the test. What to do about this knowledge? Uhm.. yeah... that is definitely a Monday problem 😄 ### What Because indicators are about to go away soon (™️) anyways, making them weaker (qualification-wise) is probably the easiest choice. Doing this in a separate PR to help with potential `git bisect` in the future.
1 parent 5727915 commit c4b613c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+99
-67
lines changed

crates/build/re_types_builder/src/codegen/rust/api.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,7 +1131,6 @@ fn quote_trait_impls_for_archetype(reporter: &Reporter, obj: &Object) -> TokenSt
11311131
}
11321132
})
11331133
.chain(std::iter::once({
1134-
let archetype_name = &obj.fqname;
11351134
let indicator_component_name = format!(
11361135
"{}Indicator",
11371136
obj.fqname.replace("archetypes", "components")
@@ -1144,7 +1143,7 @@ fn quote_trait_impls_for_archetype(reporter: &Reporter, obj: &Object) -> TokenSt
11441143
#[inline]
11451144
pub fn descriptor_indicator() -> ComponentDescriptor {
11461145
ComponentDescriptor {
1147-
archetype_name: Some(#archetype_name.into()),
1146+
archetype_name: None,
11481147
component_name: #indicator_component_name.into(),
11491148
archetype_field_name: None,
11501149
}

crates/store/re_chunk/src/migration.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,29 @@ use re_types_core::arrow_helpers::as_array_ref;
99
use crate::Chunk;
1010

1111
impl Chunk {
12+
/// We look for indicator component descriptors that have an archetype name and strip it.
13+
///
14+
/// It turns out that too narrow indicator descriptors cause problems while querying.
15+
/// More information: <https://github.com/rerun-io/rerun/pull/9938#issuecomment-2888808593>
16+
#[inline]
17+
pub fn patched_weak_indicator_descriptor_023_compat(&self) -> Self {
18+
let mut chunk = self.clone();
19+
20+
chunk.components = chunk
21+
.components
22+
.0
23+
.drain()
24+
.map(|(mut descriptor, list_array)| {
25+
if descriptor.component_name.is_indicator_component() {
26+
descriptor.archetype_name = None;
27+
}
28+
(descriptor, list_array)
29+
})
30+
.collect();
31+
32+
chunk
33+
}
34+
1235
/// A temporary migration kernel for blueprint data.
1336
///
1437
/// Deals with all the space-view terminology breaking changes (`SpaceView`->`View`, `space_view`->`view`, etc).

crates/store/re_chunk_store/src/writes.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,16 @@ impl ChunkStore {
5151

5252
let mut chunk = Arc::clone(chunk);
5353

54+
// TODO(#6889): This is bad for performance, but indicators should go away all together soon anyways?
55+
if chunk
56+
.components()
57+
.keys()
58+
.any(|descr| descr.component_name.is_indicator_component())
59+
{
60+
let patched = chunk.patched_weak_indicator_descriptor_023_compat();
61+
chunk = Arc::new(patched);
62+
}
63+
5464
if self.id.kind == re_log_types::StoreKind::Blueprint {
5565
let patched = chunk.patched_for_blueprint_021_compat();
5666
chunk = Arc::new(patched);

crates/store/re_types/src/archetypes/annotation_context.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/arrows2d.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/arrows3d.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/asset3d.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/asset_video.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/bar_chart.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/boxes2d.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/boxes3d.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/capsules3d.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/depth_image.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/ellipsoids3d.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/encoded_image.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/geo_line_strings.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/geo_points.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/graph_edges.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/graph_nodes.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/image.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/instance_poses3d.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/line_strips2d.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/line_strips3d.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/mesh3d.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/pinhole.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/points2d.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/points3d.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/recording_properties.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/scalars.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/segmentation_image.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/series_lines.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/series_points.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/tensor.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/text_document.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/text_log.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/transform3d.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/video_frame_reference.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/view_coordinates.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/blueprint/archetypes/background.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/blueprint/archetypes/container_blueprint.rs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)