-
Romeo Van Snick authored
* [MLv2] Add `preview-expression` to eval an expression on sample data This is needed to show the previews in the UX for the combining columns epic #39977. Fixes #39979. * [MBQL lib] Add "Combine columns" drill-thru This is following the original plan of using a drill for this. It's hard to combine that with the "preview" functionality. See [thread](https://metaboat.slack.com/archives/C06P22KS4JH/p1712264174056569) for discussion of how we might approach that issue. Fixes #39978. * [MBQL lib] Add "Combine columns" drill-thru This is following the original plan of using a drill for this. It's hard to combine that with the "preview" functionality. See [thread](https://metaboat.slack.com/archives/C06P22KS4JH/p1712264174056569 ) for discussion of how we might approach that issue. Fixes #39978. * [MLv2] Add `preview-expression` to eval an expression on sample data This is needed to show the previews in the UX for the combining columns epic #39977. Fixes #39979. * [MLv2] Add `preview-expression` to eval an expression on sample data This is needed to show the previews in the UX for the combining columns epic #39977. Fixes #39979. * Revert "Merge branch 'mblib-preview-expressions' into combine-columns" This reverts commit dac17f84aaae09906a206106290f7f58dea659bd, reversing changes made to 2934fab19db495ca8104801d41bc8aba457e401f. * Revert "Merge branch 'mblib-preview-expressions' into combine-columns" This reverts commit 2934fab19db495ca8104801d41bc8aba457e401f, reversing changes made to 6a43c22e78fb616c7ac0b024811b2989a1ae0f20. * Revert "Merge branch 'mblib-preview-expressions' into combine-columns" This reverts commit 6a43c22e78fb616c7ac0b024811b2989a1ae0f20, reversing changes made to 2257333a8ae69f0c9a6f6fdf0c8f5d837263f97a. * [FE] "Combine columns" drill thru (#40082) * Type Section['icon'] properly, including the hack for summarize section * Add combine columns section * Add types for combine columns drill * Add combine columns drill component stub * Mock combine columns drill * Add component stub * Encapsulate typing hacks * Extract CombineColumnsDrill * Extract ColumnAndSeparatorRow * Improve naming, add button to edit separators * Translate string * Improve styling * Separator input * Handle removing columns * Rename lib.ts to utils.ts * Implement onSubmit * Add getNextColumnAndSeparator * Use form for a11y * Handle vertical overflow * Handle horizontal overflow * Extract formatSeparator * Use proper translations * Adjust min/max sizes * Fix scrollbar being unnecessarily shown * Display source column name * Avoid serializing the entire column and putting it into DOM * Use module.css extension * Format code * Improve a11y * Mock combineColumnsDrillExpression and previewExpression * Add Preview component * Move preview logic to Preview component * Style Preview * Format code * Move styles to CSS modules * Update UI to latest designs - move "Add another column" button - remove "Separated by X" button - always show separator inputs * Remove displayInfo mock * Add asReturned * Update CombineColumnsDrillThruInfo * Integrate new way of working with combine columns drill * Fix generating expression names * Integrate drill with click actions * Integrate new preview workflow * Revert "Update UI to latest designs" This reverts commit cda039dffe9d452c0866f63800e2e887a540fe67. * Use previewExpression interface correctly * Use new preview_expression API * Make sure columns are created with original query and stage index * Extract usePreview and handle preview errors * Update popover title * Move add column button * Fix outline being cut off * Style preview label as per design * Format empty separator * Make preview scrollable * Use project convention * Simplify ScrollArea usage * Use ScrollArea in CombineColumnsDrill * Update comment * Remove Lib.previewExpression * Clean up the preview after removing Lib.previewExpression * Implement getPreview * Change default column preview to 'text' * Remove usePreview hook which is no longer in use * Rename Preview to Example * Use different placeholder for separator input * Add whitespace placeholder * Add ColumnPicker boilerplate * Export Input * Use QueryColumnPicker for ColumnPicker * Pass width to AccordionList * Add sequences popover events with tippy * Remove unused ColumnOption helpers * Add testid to Example * Add e2e test for combine column in header * Select content of separator input on focus * Reduce padding on example * Add monospace variant to Text * Use monospace variant in Example * Use monospace font in textinput * Match faux-select label styles to our TextInput label styles * Add missing color * Remove !important * Use pre whitespace so consecutive spaces show up * Remove empty default * Add example for boolean * Remove !important * Use should.have text over contain --------- Co-authored-by:
Romeo Van Snick <romeo@romeovansnick.be> * Remove duplicated code * Export useMantineTheme from metabase/ui * Use useMantineTheme instead of reading theme directly * Remove setTimeout in popover * Use plain t instead of jt * Move Popover dropdown sequence hack to metabase/ui --------- Co-authored-by:
Braden Shepherdson <braden@metabase.com> Co-authored-by:
Kamil Mielnik <kamil@kamilmielnik.com>
Romeo Van Snick authored* [MLv2] Add `preview-expression` to eval an expression on sample data This is needed to show the previews in the UX for the combining columns epic #39977. Fixes #39979. * [MBQL lib] Add "Combine columns" drill-thru This is following the original plan of using a drill for this. It's hard to combine that with the "preview" functionality. See [thread](https://metaboat.slack.com/archives/C06P22KS4JH/p1712264174056569) for discussion of how we might approach that issue. Fixes #39978. * [MBQL lib] Add "Combine columns" drill-thru This is following the original plan of using a drill for this. It's hard to combine that with the "preview" functionality. See [thread](https://metaboat.slack.com/archives/C06P22KS4JH/p1712264174056569 ) for discussion of how we might approach that issue. Fixes #39978. * [MLv2] Add `preview-expression` to eval an expression on sample data This is needed to show the previews in the UX for the combining columns epic #39977. Fixes #39979. * [MLv2] Add `preview-expression` to eval an expression on sample data This is needed to show the previews in the UX for the combining columns epic #39977. Fixes #39979. * Revert "Merge branch 'mblib-preview-expressions' into combine-columns" This reverts commit dac17f84aaae09906a206106290f7f58dea659bd, reversing changes made to 2934fab19db495ca8104801d41bc8aba457e401f. * Revert "Merge branch 'mblib-preview-expressions' into combine-columns" This reverts commit 2934fab19db495ca8104801d41bc8aba457e401f, reversing changes made to 6a43c22e78fb616c7ac0b024811b2989a1ae0f20. * Revert "Merge branch 'mblib-preview-expressions' into combine-columns" This reverts commit 6a43c22e78fb616c7ac0b024811b2989a1ae0f20, reversing changes made to 2257333a8ae69f0c9a6f6fdf0c8f5d837263f97a. * [FE] "Combine columns" drill thru (#40082) * Type Section['icon'] properly, including the hack for summarize section * Add combine columns section * Add types for combine columns drill * Add combine columns drill component stub * Mock combine columns drill * Add component stub * Encapsulate typing hacks * Extract CombineColumnsDrill * Extract ColumnAndSeparatorRow * Improve naming, add button to edit separators * Translate string * Improve styling * Separator input * Handle removing columns * Rename lib.ts to utils.ts * Implement onSubmit * Add getNextColumnAndSeparator * Use form for a11y * Handle vertical overflow * Handle horizontal overflow * Extract formatSeparator * Use proper translations * Adjust min/max sizes * Fix scrollbar being unnecessarily shown * Display source column name * Avoid serializing the entire column and putting it into DOM * Use module.css extension * Format code * Improve a11y * Mock combineColumnsDrillExpression and previewExpression * Add Preview component * Move preview logic to Preview component * Style Preview * Format code * Move styles to CSS modules * Update UI to latest designs - move "Add another column" button - remove "Separated by X" button - always show separator inputs * Remove displayInfo mock * Add asReturned * Update CombineColumnsDrillThruInfo * Integrate new way of working with combine columns drill * Fix generating expression names * Integrate drill with click actions * Integrate new preview workflow * Revert "Update UI to latest designs" This reverts commit cda039dffe9d452c0866f63800e2e887a540fe67. * Use previewExpression interface correctly * Use new preview_expression API * Make sure columns are created with original query and stage index * Extract usePreview and handle preview errors * Update popover title * Move add column button * Fix outline being cut off * Style preview label as per design * Format empty separator * Make preview scrollable * Use project convention * Simplify ScrollArea usage * Use ScrollArea in CombineColumnsDrill * Update comment * Remove Lib.previewExpression * Clean up the preview after removing Lib.previewExpression * Implement getPreview * Change default column preview to 'text' * Remove usePreview hook which is no longer in use * Rename Preview to Example * Use different placeholder for separator input * Add whitespace placeholder * Add ColumnPicker boilerplate * Export Input * Use QueryColumnPicker for ColumnPicker * Pass width to AccordionList * Add sequences popover events with tippy * Remove unused ColumnOption helpers * Add testid to Example * Add e2e test for combine column in header * Select content of separator input on focus * Reduce padding on example * Add monospace variant to Text * Use monospace variant in Example * Use monospace font in textinput * Match faux-select label styles to our TextInput label styles * Add missing color * Remove !important * Use pre whitespace so consecutive spaces show up * Remove empty default * Add example for boolean * Remove !important * Use should.have text over contain --------- Co-authored-by:
Romeo Van Snick <romeo@romeovansnick.be> * Remove duplicated code * Export useMantineTheme from metabase/ui * Use useMantineTheme instead of reading theme directly * Remove setTimeout in popover * Use plain t instead of jt * Move Popover dropdown sequence hack to metabase/ui --------- Co-authored-by:
Braden Shepherdson <braden@metabase.com> Co-authored-by:
Kamil Mielnik <kamil@kamilmielnik.com>
title: MBQL Library changelog
MBQL Library Changelog
Changes made to the library API for manipulating MBQL queries, found in metabase.lib.js
. The latest API documentation
can be found here.
This library is mainly used by Metabase's own frontend, but it is treated as a proper API surface which is versioned and documented in this changelog.
Metabase 0.50.0
-
Created this file and began versioning this API.
-
New function
as-returned
has been added. It handles a tricky case when adding filters or expressions to a query with aggregations.Suppose we have a query with aggregations in its last stage. When adding a filter or expression to that stage, it's applied before the aggregations. That may be the desired behavior, but if we want a filter or custom expression based on the aggregations and breakouts in the last stage, there was no good support in this API.
as-returned
looks at the query and stage, and shifts to a later stage if necessary. If a later stage is needed but we were already on the last stage, a new empty stage is appended. -
New functions
column-extractions
,extract
, andextraction-expression
have been added.-
column-extractions
returns a list of extractions, which are possible custom expressions we can derive from a given column. For example, getting the host or base domain name from a URL or email address, or the day of the week from a date or datetime. -
extract
applies an extraction to the query. -
extraction-expression
returns the expression for the extraction, allowing further editing.
-