Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/metabase/metabase. Pull mirroring updated .
  1. Apr 12, 2024
  2. Apr 11, 2024
  3. Apr 10, 2024
    • Raphael Krut-Landau's avatar
    • adam-james's avatar
      Fix embed download endpoint (#41264) · 9cdf2340
      adam-james authored
      * Fix embed download endpoint
      
      We have added format_rows as a query parameter. In most endpoints this just works fine.
      
      Here, however, the problem is that we use query parameters to pass parameter values. We run some validation over these
      provided parameter values (eg. don't allow a user to over ride a 'locked' parameter). Since we have these 2 different
      use cases for query parameters, the validation was failing on :format_rows, which isn't expected to exist at all.
      
      Here, I dissoc the :format_rows key prior to this validation step, so normal validation can continue.
      
      * Add test that uses this card embedding endpoint
      Unverified
      9cdf2340
    • Alexander Solovyov's avatar
    • dpsutton's avatar
      Nested queries have limits which can defeat their purpose (#41051) · 2a8e19b2
      dpsutton authored
      * Nested queries have limits which can defeat their purpose
      
      Consider a query
      
      ```sql
      select count(*) from {{#199}}
      ```
      
      This query should return the number of distinct rows in the query
      defined by 199. But it's actually limited by the excel limit of
      1048575. And that's because when the value of `{{#199}}` is expanded it
      has that limit applied as normal.
      
      ```clojure
      qp=> (let [card-id 199] ;; use a valid card id for you
             (-> {:database 1,
                  :type :native,
                  :native {:query "select count(*) from {{ref}}"
                           :template-tags {:ref {:card-id card-id
                                                 :type :card
                                                 :name "ref"
                                                 :display-name "ref"}}}
                  :middleware {:disable-max-results? true}}
                 qp.compile/compile
                 :query
                 (metabase.db.query/format-sql )
                 println))
      select
        count(*)
      from
        (
          SELECT
            "PUBLIC"."ORDERS"."ID" AS "ID",
            "PUBLIC"."ORDERS"."TOTAL" AS "TOTAL"
          FROM
            "PUBLIC"."ORDERS"
          LIMIT
            1048575
        )
      ```
      
      But we can suppress this limit when substituting a query inside yielding
      
      ```sql
      select
        count(*)
      from
        (
          SELECT
            "PUBLIC"."ORDERS"."ID" AS "ID",
            "PUBLIC"."ORDERS"."TOTAL" AS "TOTAL"
          FROM
            "PUBLIC"."ORDERS"
        )
      ```
      
      And this is proper because we want to limit the _outer_ query, not
      internal queries.
      
      * Remove limit from test expectation
      
      * stupid trailing space
      
      * another subquery test
      
      * Use helper function to disable limit middleware
      Unverified
      2a8e19b2
    • Cal Herries's avatar
    • dpsutton's avatar
      Fix #39138 again (#40936) · b1e83541
      dpsutton authored
      * Fix #39138 again
      
      Fixes #40934
      
      Got unfixed somehow in #40578. seems like some file renames caught it off guard
      
      But the long and short is that its possible for a persisted model to end
      up in the state "refreshing" (possible an instance restart during
      refreshing). The refreshing job doesn't look for these so they become
      effectively invisible.
      
      Since the job to refresh them will only run one at a time cluster wide,
      any jobs that are in the "refreshing" state when the refresher begins to
      refresh are necessarilly stuck (no one else could currently be
      refreshing them). So we can just add them to the queue of models to
      refresh.
      
      ```clojure
      (jobs/defjob ^{org.quartz.DisallowConcurrentExecution true ;; <----
                     :doc "Refresh persisted tables job"}
        PersistenceRefresh [job-context]
        (refresh-job-fn! job-context))
      ```
      
      * Ensure ee/oss pathways are taken in tests
      
      Annoying little footgun here. CI does not run with an ee token, so in
      order to ensure that test pathway goes through ee version of a
      defenterprise we _must_ use the `mt/with-premium-features
      {:cache-granular-controls}`,  but we also want to ensure that it goes
      through the oss version.
      
      So two options, a `doseq` on both features (empty set and the feature
      that triggers this). But want a test in the enterprise folder as well to
      ensure.
      
      The real trickiness comes from running tests at a repl and CLI. My REPL
      always has an ee token in it. My command line always lacks that as
      well. So want to be explicit about the token features in effect at test
      time.
      
      That's why I'm essentially duplicating tests (ee in ee folder, oss in
      regular pathway)
      Unverified
      b1e83541
    • Noah Moss's avatar
    • Tim Macdonald's avatar
      [ParseSQL] Support queries with {[variable}}s and {{field filter}}s in them (#41193) · 34954c8d
      Tim Macdonald authored
      * Support parsing {{variable}}s and such in queries
      
      [Fixes #39954]
      
      [Fixes #39953]
      Unverified
      34954c8d
    • Nick Fitzpatrick's avatar
      increase activation distance for dashboard parameter dragging (#41123) · eb8109de
      Nick Fitzpatrick authored
      * increase activation distance for dashboard parameter dragging
      
      * updating drag sensitivity for other places
      
      * adjusting e2e tests
      Unverified
      eb8109de
    • Cal Herries's avatar
    • Cal Herries's avatar
    • Nick Fitzpatrick's avatar
    • Mahatthana (Kelvin) Nomsawadi's avatar
      Migrate `base.module.css` (#41246) · 3c0f8181
      Mahatthana (Kelvin) Nomsawadi authored
      * Migrate .pointerEventsNone
      
      * Remove unused global class
      
      * Migrate .faded, .fadeInHover
      
      * Migrate .circle
      
      * Remove unreachable code
      
      * Remove unused props
      Unverified
      3c0f8181
Loading