Add pure Rust Python test parity harness#179
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7cde744052
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| metric.r#type, | ||
| MetricType::TimeComparison | MetricType::Conversion | ||
| ) && !self.metrics.contains_key(&metric.name) | ||
| { | ||
| self.metrics.insert(metric.name.clone(), metric.clone()); |
There was a problem hiding this comment.
Synchronize graph metric index when models are replaced
The new self.metrics index is now populated during add_model, but replace_model does not update or clear entries for that model. In flows that call replace_model (e.g., FFI update paths), this leaves stale time-comparison/conversion metrics addressable via get_metric and can incorrectly block later add_metric calls with "already exists" for metrics that were removed from the model.
Useful? React with 👍 / 👎.
| } else if Self::is_relationship_foreign_key_dimension(model, &dim_ref.name) { | ||
| format!("{}.{}", alias, self.quote_identifier(&dim_ref.name)) |
There was a problem hiding this comment.
Reject granularity suffix on implicit relationship key dims
When a referenced field is only an implicit relationship foreign key, the new fallback accepts it even if a __granularity suffix was parsed. For inputs like orders.customer_id__month, this path emits raw customer_id while keeping the __month alias, so the query silently returns un-truncated/grouped values instead of raising an invalid granularity error.
Useful? React with 👍 / 👎.
7cde744 to
497a87a
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Adds a test-only pure Rust Python test parity harness that drives the pure Rust implementation through existing Python semantic-layer behavior instead of handwritten smoke cases.
Includes:
Current local validation: