This project is mirrored from https://github.com/metabase/metabase.
Pull mirroring updated .
- Jan 05, 2022
-
-
Ariya Hidayat authored
The previous Chevrotain-based parser had a few limitations, which need to be taken account by the expression generator for the fuzzer. With the new recursive parser (PR #19335), these limitations are not necessary anymore: * leading decimal digit, e.g. `.25` * nested negatives, e.g. `-- 3` * nested boolean NOT, e.g. `NOT NOT X`
-
Nemanja Glumac authored
-
Alexander Polyankin authored
-
Alexander Polyankin authored
-
Alexander Polyankin authored
-
- Jan 04, 2022
-
-
Ariya Hidayat authored
If the expression is not valid, i.e. there is an error message associated with processing it, do not blindly continue with it, since it leads to a potential rewrite of the expression (the rest of the parser/compiler can tolerate certain brokenness).
-
Jeff Bruemmer authored
-
Alexander Lesnenko authored
-
adam-james authored
* JWT Login URL configured by user may have URL parameters Since params may already exist in the login URL, a check is performed to make sure the generated URL with 'return_to' param formats correctly. If a param already exists, all subsequent params should have an '& character. * Sorted ns to pass linting * added issue number to test string for added context.
-
Alexander Lesnenko authored
* remove old store page * add license pages * add remove webpack cache command * lint * fix specs * remove license widget from the oss version * add missing translation * show loader only for unput when updating token * fix specs * amend the license page * unactivated state fix * add premium embedding page, refactor, fix specs * amend the license page * amend the license page * change license page padding
-
Alexander Polyankin authored
-
Dalton authored
* Only use webpack caching in hot mode * make webpack filesystem caching enabled via flag
-
Alexander Polyankin authored
-
Dalton authored
-
Jeff Bruemmer authored
-
Noah Moss authored
-
Dalton authored
-
Alexander Polyankin authored
-
Alexander Polyankin authored
-
- Jan 03, 2022
-
-
Ariya Hidayat authored
-
Jeff Bruemmer authored
-
Howon Lee authored
One possible combination of the many ways to have multiplicity in charts is to have a single card with singular chart type with multiple y-axes. This makes the general line-area-bar chart compatible with this.
-
Howon Lee authored
We had some CI breaks that are predicated on the year changing. Fix them.
-
- Dec 30, 2021
-
-
Luis Paolini authored
* Add checks for _FILE env vars * Fixing this for once and for all + documenting * Update run_metabase.sh
-
Ngoc Khuat authored
-
- Dec 29, 2021
-
-
Plugner authored
* Update suggestion from AdoptOpenJDK to Eclipse Temurin Eclipse Temurin is the replacement for AdoptOpenJDK Hotspot, as the project now is part from Eclipse Foundation, and the OpenJ9 build is called now as Semeru. * Update java-versions.md * Update running-the-metabase-jar-file.md
-
Dennis Schridde authored
Liquibase 3.3.0 deprecated [1,2] (not listed in the changelog [3] for that version) the overload of `Liquibase.listUnrunChangeSets` without a `LabelExpression`. Fix usage of that deprecated method by using the non-deprecated method with an empty `LabelExpression`, just as the deprecated method does. [1]: https://www.javadoc.io/doc/org.liquibase/liquibase-core/3.2.3/liquibase/Liquibase.html#listUnrunChangeSets(liquibase.Contexts) [2]: https://www.javadoc.io/doc/org.liquibase/liquibase-core/3.3.0/liquibase/Liquibase.html#listUnrunChangeSets(liquibase.Contexts) [3]: https://github.com/liquibase/liquibase/releases/tag/liquibase-parent-3.3.0
-
- Dec 28, 2021
-
-
Cam Saul authored
* Rename setting/get and setting/all; GeoJSON via env var tests * Fix typo (thanks @noahmoss) * Support Database-local Settings in metabase.models.setting itself * Rework Settings code so it can handle possibly-already-deserialized values * Database-local Settings * Remove empty part of docstring * Appease linters * Update dox again * Use text.type for the new column * Test fixes
* Test fix * Test fix * All negative integer values when setting :integer Setting with a string -
Alexander Polyankin authored
-
dpsutton authored
* Handle nested queries which have agg at top level and nested Previously when matching columns in the outer query with columns in the inner query we had use id, and then recently, field_ref. This is problematic for aggregations. Consider https://github.com/metabase/metabase/issues/19403 The mbql for this query is ```clojure {:type :query :query {:aggregation [[:aggregation-options [:count] {:name "count"}] [:aggregation-options [:avg [:field "sum" {:base-type :type/Float}]] {:name "avg"}]] :limit 10 :source-card-id 1960 :source-query {:source-table 1 :aggregation [[:aggregation-options [:sum [:field 23 nil]] {:name "sum"}] [:aggregation-options [:max [:field 28 nil]] {:name "max"}]] :breakout [[:field 26 nil]] :order-by [[:asc [:field 26 nil]]]}} :database 1} ``` The aggregations in the top level select will be type checked as :name "count" :field_ref [:aggregation 0]. The aggregations in the nested query will be turned into :name "sum" :field_ref [:aggregation 0]! This is because aggregations are numbered "on their level" and not globally. So when the fields on the top level look at the metadata for the nested query and merge it, it unifies the two [:aggregation 0] fields but this is INCORRECT. These aggregations are not the same, they just happen to be the first aggregations at each level. Its illustrative to see what a (select * from (query with aggregations)) looks like: ```clojure {:database 1 :query {:source-card-id 1960 :source-metadata [{:description "The type of product, valid values include: Doohicky, Gadget, Gizmo and Widget" :semantic_type :type/Category :coercion_strategy nil :name "CATEGORY" :field_ref [:field 26 nil] :effective_type :type/Text :id 26 :display_name "Category" :fingerprint {:global {:distinct-count 4 :nil% 0} :type {:type/Text {:percent-json 0 :percent-url 0 :percent-email 0 :percent-state 0 :average-length 6.375}}} :base_type :type/Text} {:name "sum" :display_name "Sum of Price" :base_type :type/Float :effective_type :type/Float :semantic_type nil :field_ref [:aggregation 0]} {:name "max" :display_name "Max of Rating" :base_type :type/Float :effective_type :type/Float :semantic_type :type/Score :field_ref [:aggregation 1]}] :fields ([:field 26 nil] [:field "sum" {:base-type :type/Float}] [:field "max" {:base-type :type/Float}]) :source-query {:source-table 1 :aggregation [[:aggregation-options [:sum [:field 23 nil]] {:name "sum"}] [:aggregation-options [:max [:field 28 nil]] {:name "max"}]] :breakout [[:field 26 nil]] :order-by [[:asc [:field 26 nil]]]}} :type :query :middleware {:js-int-to-string? true :add-default-userland-constraints? true} :info {:executed-by 1 :context :ad-hoc :card-id 1960 :nested? true :query-hash #object["[B" 0x10227bf4 "[B@10227bf4"]} :constraints {:max-results 10000 :max-results-bare-rows 2000}} ``` The important bits are that it understands the nested query's metadata to be ```clojure {:name "sum" :display_name "Sum of Price" :field_ref [:aggregation 0]} {:name "max" :display_name "Max of Rating" :field_ref [:aggregation 1]} ``` And the fields on the outer query to be: ```clojure ([:field "sum" {:base-type :type/Float}] [:field "max" {:base-type :type/Float}]) ``` So there's the mismatch: the field_ref on the outside is [:field "sum"] but on the inside the field_ref is [:aggregation 0]. So the best way to match up when "looking down" into sub queries is by id and then by name. * Some drivers return 4.0 instead of 4 so make them all ints * Handle dataset metadata in a special way rather than trying to set confusing merge rules, just special case metadata from datasets. Previously, was trying to merge the "preserved keys" on top of the normal merge order. This caused lots of issues. They were trivial. Native display names are very close to the column name, whereas mbql names go through some humanization. So when you select price from (select PRICE ...) its an mbql with a nested native query. The merge order meant that the display name went from "Price" previously (the mbql nice name for the outer select) to "PRICE", the underlying native column name. Now we don't special case the display name (and other fields) of regular source-metadata. Also, there were issues with mbql on top of an mbql dataset. Since it is all mbql, everything is pulled from the database. So if there were overrides in the nested mbql dataset, like description, display name, etc, the outer field select already had the display name, etc. from the database rather than allowing the edits to override from the nested query. Also, using a long `:source-query/dataset?` keyword so it is far easier to find where this is set. With things called just `:dataset` it can be quite hard to find where these keys are used. When using the namespaced keyword, greping and finding usages is trivial. And the namespace gives more context
-
dpsutton authored
-
Alexander Polyankin authored
-
- Dec 27, 2021
-
-
Reza Lotun authored
Co-authored-by: michalc Co-authored-by:
rlotun <reza@metabase.com>
-
Reza Lotun authored
-
Alexander Polyankin authored
-
- Dec 26, 2021
-
-
xgdgsc authored
-
Reza Lotun authored
* Spelling fixes causing i18n syntax errors during translation. * include valid fix in #15509
-
Daksh Shah authored
Fix minor formatting issue
-
Jeff Evans authored
Updating release script with a new build option to force the release to be latest (by overriding the GIT_COMMITTER_DATE env var when creating the tag)
-
Jeff Evans authored
-