-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
source-field populated in aggregates with foreign refs #38624
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
When aggregates are populated that reference other tables, either a `:source-field` must be provided in the field metadata or a `:join-alias` needs to be provided. The former is preferred. Prior to this PR, the first situation in the below simplified case could happen: ```clojure ;;Simplified case ;; busted (qp/process-query {:database 1, ;; 59 is "PRODUCTS" -> "PRICE" which is not in the "REVIEWS" table :query {:aggregation [["sum" ["field" 59 {:base-type "type/Float"}]]] ;; "REVIEWS" :source-table 8}, :type "query"}) ; Works (qp/process-query {:database 1, ;; The `:source-field` metadata fixes the above query :query {:aggregation [["sum" ["field" 59 {:base-type "type/Float" ;; "REVIEWS" -> "PRODUCT_ID" :source-field 71}]]] :source-table 8}, :type "query"}) ``` This PR updates `metabase.automagic-dashboards.interestin/ground-metric` to use the `->reference` function for fields when building the `decoder` for transforming field names to references, which properly adds sources for external fields. Fixes #38618
markbastian
commented
Feb 9, 2024
@@ -118,8 +200,7 @@ | |||
(apply math.combo/cartesian-product) | |||
(map (partial zipmap named-dimensions)) | |||
(map (fn [nm->field] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the only substantial change. The ->reference
changes are just raising the code in the ns to be above this.
markbastian
added
backport
Automatically create PR on current release branch on merge
and removed
.Team/DashViz
Dashboard and Viz team
labels
Feb 9, 2024
|
perivamsi
approved these changes
Feb 12, 2024
@markbastian Did you forget to add a milestone to the issue for this PR? When and where should I add a milestone? |
github-actions bot
pushed a commit
that referenced
this pull request
Feb 12, 2024
* source-field populated in aggregates with foreign refs When aggregates are populated that reference other tables, either a `:source-field` must be provided in the field metadata or a `:join-alias` needs to be provided. The former is preferred. Prior to this PR, the first situation in the below simplified case could happen: ```clojure ;;Simplified case ;; busted (qp/process-query {:database 1, ;; 59 is "PRODUCTS" -> "PRICE" which is not in the "REVIEWS" table :query {:aggregation [["sum" ["field" 59 {:base-type "type/Float"}]]] ;; "REVIEWS" :source-table 8}, :type "query"}) ; Works (qp/process-query {:database 1, ;; The `:source-field` metadata fixes the above query :query {:aggregation [["sum" ["field" 59 {:base-type "type/Float" ;; "REVIEWS" -> "PRODUCT_ID" :source-field 71}]]] :source-table 8}, :type "query"}) ``` This PR updates `metabase.automagic-dashboards.interestin/ground-metric` to use the `->reference` function for fields when building the `decoder` for transforming field names to references, which properly adds sources for external fields. Fixes #38618 * Updating `grounded-metrics-test` to reflect updated field referencing.
metabase-bot bot
added a commit
that referenced
this pull request
Feb 12, 2024
* source-field populated in aggregates with foreign refs When aggregates are populated that reference other tables, either a `:source-field` must be provided in the field metadata or a `:join-alias` needs to be provided. The former is preferred. Prior to this PR, the first situation in the below simplified case could happen: ```clojure ;;Simplified case ;; busted (qp/process-query {:database 1, ;; 59 is "PRODUCTS" -> "PRICE" which is not in the "REVIEWS" table :query {:aggregation [["sum" ["field" 59 {:base-type "type/Float"}]]] ;; "REVIEWS" :source-table 8}, :type "query"}) ; Works (qp/process-query {:database 1, ;; The `:source-field` metadata fixes the above query :query {:aggregation [["sum" ["field" 59 {:base-type "type/Float" ;; "REVIEWS" -> "PRODUCT_ID" :source-field 71}]]] :source-table 8}, :type "query"}) ``` This PR updates `metabase.automagic-dashboards.interestin/ground-metric` to use the `->reference` function for fields when building the `decoder` for transforming field names to references, which properly adds sources for external fields. Fixes #38618 * Updating `grounded-metrics-test` to reflect updated field referencing. Co-authored-by: Mark Bastian <markbastian@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When aggregates are populated that reference other tables, either a
:source-field
must be provided in the field metadata or a:join-alias
needs to be provided. The former is preferred.Prior to this PR, the first situation in the below simplified case could happen:
This PR updates
metabase.automagic-dashboards.interestin/ground-metric
to use the->reference
function for fields when building thedecoder
for transforming field names to references, which properly adds sources for external fields.Fixes #38618