Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/metabase/metabase. Pull mirroring updated .
  1. Dec 01, 2022
  2. Nov 30, 2022
  3. Nov 29, 2022
    • Cam Saul's avatar
      Athena driver (#26301) · a32bb77b
      Cam Saul authored
      * Include Amazon Athena support for dacort/metabase-athena-driver
      
      * Use Metabase Maven repo to fetch Athena driver
      
      * Copy test extensions from Damon's Athena driver repo
      
      * Some code cleanup.
      
      * Move namespaces => metabase.driver.athena
      
      * Clean up the test extensions namespace
      
      * 42 failures, 16 errors
      
      * Fix regex support; disable a few tests
      
      * Minor tweaks
      
      * Fix data-source-name
      
      * Fix :week and :day-of-week impls (mostly): 2 failures, 3 errors
      
      * Fix OFFSET, :week-of-year; skip test that has TIME column
      
      * Add Athena to CircleCI config. Don't wait for Java 11 tests to finish before driver tests.
      
      * ALL TESTS ARE PASSING! <3
      
      * Copy fixes for https://github.com/dacort/metabase-athena-driver/issues/115;
      
       add test
      
      * We don't need to prep source files or fetch dependencies before running backend tests.
      
      * Fix Eastwood error.
      
      * Tweak CircleCI config.
      
      * Fix TIMESTAMP WITH TIME ZONE
      
      * Include the Athena/Redshift repos in the build-drivers deps.edn
      
      * Build and release scripts need to have the :mvn/repos as well
      
      * Revert change that enabled test for Presto
      
      * Un-enable failing test for Snowflake as well.
      
      * moves all is clauses into the test
      
      - previously only the first few tests were being run
      
      * Sort ns in `metabase.driver.athena-test`
      
      * Prevent athena's log4j2.properties file from becoming log config
      
      athena includes log4j2.properties top-level with the properties:
      
      ```
      status = debug
      rootLogger.level=debug
      ```
      
      And this kills our beautifully crafted logging. Set
      "log4j2.configurationFile" in bootstrap to our own log4j2.xml.
      
      Log4j2 looks in a few places for its logging config, the first of which
      is the properties file. So when the jar is loaded, log4j2 considers this
      a logging config change and we lose our logging.
      
      Co-authored-by: default avatarDamon P. Cortesi <d.lifehacker@gmail.com>
      Co-authored-by: default avatarBryan Maass <bryan.maass@gmail.com>
      Co-authored-by: default avatardan sutton <dan@dpsutton.com>
      Unverified
      a32bb77b
    • Mahatthana (Kelvin) Nomsawadi's avatar
      Match static combo chart colors and legends with app viz colors (#26211) · c6e41b75
      Mahatthana (Kelvin) Nomsawadi authored
      * Match static combo chart colors with app viz colors
      
      * Match colors when individual series color is set
      
      * Remove tests that test colors
      
      Since colors is now determined in FE
      
      * Fix static viz Series type
      
      * Match static progress bar colors with app viz colors
      
      * Simplify Clojure code, makes it more idiomatic
      
      * Fix certain combo charts don't respect whitelabel colors
      
      * Make Clojure code more idiomatic
      
      * Fix Series type
      
      * Add colors back to static internal page
      
      * Simplify type predicate
      
      * fix colors matching for multiple series with mulitple metrics or dimensions
      
      * Handle legends not formatted in static viz in some cases
      
      * Fix failed BE tests after BE API changed
      
      * Fix failed BE tests after BE API changed
      
      * Add multiple series dashcard test to `getSeriesWithColors` test
      
      * Add `getSeriesWithLegends` tests
      
      * Fix URL `/_internal/static-viz` not loading due to API change
      
      * Correctly render legend when having dashcard title set
      
      * Simplify combo-chart API
      
      don't really need `settings-seqs` yet
      
      * Make static combo chart component type easier to understand
      
      * Address review: refactor `render-multiple-lab-chart`
      
      * Make variable names easier to understand
      
      * Simplify color API
      
      * Address review on `body.clj`
      
      * Address review, make parameter name more consistent
      
      * Fix multiple scalars not rendering
      
      * Remove unused imports
      Unverified
      c6e41b75
  4. Nov 28, 2022
    • Ngoc Khuat's avatar
      convert timezone requires source timezone (#26763) · 707b38d8
      Ngoc Khuat authored
      convert-timezone now requires source-timezone if the input column doesn't have timezone
      Unverified
      707b38d8
    • john-metabase's avatar
      Add "migrate down" command to roll back to last major version schema (#26429) · 4de84462
      john-metabase authored
      * Adds rollback where necessary to v45 migrations
      * Adds linter for migrations requiring rollback key
      * Removes unused writeback table migrations
      * Removes migrate down-one subcommand
      Unverified
      4de84462
    • Bryan Maass's avatar
      update snowflake private-key handling to work with uploaded private keys (#26304) · 9a9a0d0c
      Bryan Maass authored
      * treat private-key conn props as base64 encoded
      
      - fix typo
      
      * handle connecting with local keypair
      
      * adds test for snowflake keypair auth
      
      * remove unused arg
      
      * remove id, and only call byte-array->string once
      
      * dont reflect for conversion from byte-array to str
      
      * remove inline def
      
      * more cleanup
      
      - mess with tests to find the fabled metabase ci snowflake user
      
      * remove un-needed test
      
      * handle conn uri in connection-details->spec
      
      * make sure tests are actually running
      
      * encode properties in the connection uri
      
      * typehint private keyfile
      
      * respond to some review comments
      
      - add a test for can-connect? => true, even when jdbc/query returns falsey
      
      * remove unused logging require
      
      * adds assoc-qp
      
      - which will be used to non-destructively "assoc" onto the snowflake
      connection query params
      
      * hook in u.qp/assoc-qp to better update conn uri
      
      * kill a newline
      
      * reuse `conn-str-with-additional-opts` on snowflake conn uri
      
      * update use utf-8 when encoding private-key-value
      
      conveniently use `bytes` and `bytes?`
      Unverified
      9a9a0d0c
  5. Nov 22, 2022
    • adam-james's avatar
      Fix bug where grouping strategy would NPE when fingerprint was `nil` (#26659) · 78d506c5
      adam-james authored
      
      * Fix bug where grouping strategy would NPE when fingerprint was `nil`
      
      The axes grouping relies on fingerprint data existing, AND for now only works on :type/Number columns, so this bugfix
      guards against those situations where the logic would fail.
      
      The bug that brought this to my attention came up when there was a Custom column. This set the col-meta count to be
      one greater than the count of the 'real' columns, which threw off my old assumptions, where if the grouped-columns
      count was less than the total col-meta count, you had a potential grouping. This broke in part because some custom
      columns are essentially derived from a real column, and so will most likely be groupable with the column they're
      derived from.
      
      Anyway, this filters out columns that won't work, so we hopefully eliminate the problem.
      
      * Update src/metabase/pulse/render/body.clj
      
      Co-authored-by: default avatarTim Macdonald <tim@metabase.com>
      
      * Fix some broken logic
      
      Co-authored-by: default avatarTim Macdonald <tim@metabase.com>
      Unverified
      78d506c5
    • Ngoc Khuat's avatar
      convert-timezone for postgres (#25698) · b46bd9b3
      Ngoc Khuat authored
      Unverified
      b46bd9b3
  6. Nov 18, 2022
    • adam-james's avatar
      Group Axes for Multi-series static viz (#26145) · 03373a33
      adam-james authored
      * First pass at grouping axes
      
      This PR uses the results_metadata key to look at fingerprints for numerical axes to try determine if each series on
      the Y axis can be sanely represented on the same axis.
      
      This is done by calculating an overlap (some value between 0 and 1) and grouping all axes on the LEFT if they pass the threshold, which is
      some value between 0 and 1. The overlap is always calculated when there is SOME overlap between the ranges of each
      axis, and is calculated as:
      
      ```clojure
      (/ (- (max maximums) (min minimums))
         (- (min maxiumums) (max minimums)))
      ```
      
      This is done to try catch situations where one column's range is entirely inside the other, but is much smaller (- max
      min); such a case would have a small percent overlap by the above calculation, and implies that it might be better to
      split the axes.
      
      * Address feedback.
      
      * Fix shape of data in tests of 2 private fns
      
      * Add test for split axes
      
      * Fixed error in test util
      
      * render-utils does with-redef, disallows parallel tests. Makes sense
      Unverified
      03373a33
    • Braden Shepherdson's avatar
      Serdes v2: Add more human-friendly labels to more models (#26508) · 622b5e6d
      Braden Shepherdson authored
      Card, Dashboard, Dimension, Metric, NativeQuerySnippet, Segment and
      Timeline all now using their `:name` fields for the file label.
      
      File names should now be more human-friendly.
      Unverified
      622b5e6d
  7. Nov 16, 2022
    • dpsutton's avatar
      Initial support for datetimeDiff (#25722) · 254e73f8
      dpsutton authored
      
      * Initial support for pg for `date-diff`
      
      * Make the useful-dates closer to one day
      
      * Add simple FE stuff
      
      * shorter test bodies
      
      * Ensure we can use datediff functions in arithmetic expressions
      
      * Correctly disable datediff for redshift
      
      * simplify var names
      
      * Support week
      
      * cleanup test
      
      * :datediff -> :datetimediff
      
      * ngoc's suggestions
      
      * Better acceptance test for datetimediff
      
      * sort ns
      
      * embrace the different cases for results
      
      * bigquery day month year
      
      * Reverse args
      
      * Update test
      
      * Centralize tests
      
      * Change postgres day, month, year behaviour
      
      * Refactor keep identity
      
      * Tidy tests
      
      * Tidy
      
      * Fix bigquery week
      
      * Add week tests
      
      * Fix bigquery week
      
      * Change mysql day, month, year behaviour
      
      * Add test for hour, minute, second
      
      * Fix postgres hour minute second
      
      * Formatting
      
      * Fix bigquery hour, minute, second
      
      * Formatting
      
      * Fix postgres timestamptz
      
      * WIP
      
      * Allow literals in datediff clauses
      
      * Uncomment tests
      
      * Fix bigquery when reporting timezone is not UTC
      
      * Linting
      
      * Moving away from dataset based tests
      
      * Add timezone tests for week and tidy
      
      * Remove unused import
      
      * Consolidate tests
      
      * Remove with-time-column dataset
      
      * Remove more-useful-dates defdataset
      
      * Remove redshift driver WIP
      
      * Typo
      
      * Move DatetimeLiteral clause into DateTimeExpressionArg
      
      * Try changing test order
      
      * Remove mt/with-report-timezone-id nil
      
      * Add year report timezone tests
      
      * Rename
      
      * Rename
      
      * Remove unused tables from useful-dates
      
      * Remove useful-dates
      
      * Update helper-text-strings
      
      * Tidy
      
      * Swap order of mt/with-report-timezone-id
      
      * Change with-report-timezone-id; notify databases after running test
      
      * Use temp setting for report-timezone instead
      
      * Update helper-test-strings
      
      * Handle literals in `datetimediff-base-base`
      
      * Update src/metabase/driver/postgres.clj
      
      Co-authored-by: default avatarmetamben <103100869+metamben@users.noreply.github.com>
      
      * Simplify postgres second
      
      * Tidy: prefer hx arithmetic functions
      
      * Drop coercion for string timestamp args for now
      
      * Extract helper
      
      * Revert "Change with-report-timezone-id; notify databases after running test"
      
      This reverts commit 7abb543bed13d9d13295d0e00ad1293a40e40d53.
      
      * Use ->timestamptz
      
      * Use hx/->timestamp
      
      * Rename dataset
      
      * Undo changes to datetime-arithmetics? as these will not match by default
      
      * Use proper format for offset datetime literals
      
      * Shorten datetime literals in tests
      
      * Removing notify-all-databases-updated from report-timezone setting
      
      * Fix datetime-arithmetics test
      
      * Revert "Fix datetime-arithmetics test"
      
      This reverts commit 9141582508170bdbe99c4aa74bc4444e41475be6.
      
      * Revert "Undo changes to datetime-arithmetics? as these will not match by default"
      
      This reverts commit 9cb05f5475b24a78cb89601c918f3440606cc525.
      
      * Add UTC timezone to tests
      
      * Coerce strings to datetimes for ISO formats
      
      * Revert "Removing notify-all-databases-updated from report-timezone setting"
      
      This reverts commit 37356435a2e3981deca9ae76118d857babb2aada.
      
      * Add comment to postgres driver implementation
      
      * Formatting
      
      * Disable datediff from redshift for the moment (for ever?)
      
      * Override redshift driver/database-supports?
      
      * Fix comments mixed up by refactoring
      
      * Fix comments mixed up by refactoring 2
      
      * Tidy comment
      
      * Rename datetimediff to datetime-diff/datetimeDiff
      
      * date-add -> datetime-add
      
      * Linting
      
      * add datetime-subtract to `datetime-arithmetics?`
      
      rework tests a bit as well.
      
      * Update docstring
      
      * Use ->temporal-type and trunc to handle report-timezone for bigquery
      
      * Log errors caught during sync steps (#26306)
      
      * log errors caught during sync steps
      
      * remove accidental extra parens
      
      * Errors combining datetime interval addition with datetime functions (#26279)
      
      * Add failing tests
      
      * Fix failing tests
      
      * Update shared/src/metabase/mbql/util.cljc
      
      Co-authored-by: default avatarNgoc Khuat <qn.khuat@gmail.com>
      
      * datetime-add and datetime subtract should annotate type by col type
      
      * Fix infer-expression-type for datetime-add/subtract with second, minute, hour
      
      * Undo last commit; they actually always return :type/DateTime
      
      * Fix test based on last commit
      
      * Undo unrelated refactor
      
      * Only test drivers that support expressions
      
      * Only test drivers that support expressions, again
      
      * Update tests from legacy mbql
      
      * Change infered-col-type to be a function again, not macro
      
      * Fix test
      
      Co-authored-by: default avatarNgoc Khuat <qn.khuat@gmail.com>
      
      * whitespace
      
      * Remove comments
      
      * Add explanation for datetime_diff
      
      * Refactor: replace cast and add `mt/with-driver :bigquery-cloud-sdk` where report-timezone is relevant
      
      * Add failing tests
      
      * Fix failing tests
      
      * Technically it should be bigquery-type
      
      * Update modules/drivers/bigquery-cloud-sdk/src/metabase/driver/bigquery_cloud_sdk.clj
      
      Co-authored-by: default avatarCam Saul <1455846+camsaul@users.noreply.github.com>
      
      * Move documentation to metabase.mbql.schema
      
      * Update DatetimeDiffUnits
      
      Co-authored-by: default avatarCam Saul <1455846+camsaul@users.noreply.github.com>
      
      * Add error type and optimize case expressions to driver implementations
      
      * refactor for brevity
      
      * Fix error with postgres
      
      * Fix error with postgres
      
      * Handle string literal parsing in wrap-value-literals
      
      * Remove ->timestamptz
      
      * Add comments + TODOs showing arithmetic expressions should return numeric values
      
      * Add explanation of arithmetic expression as docstring
      
      * Add test for normalize-mbql-clause-tokens
      
      * Remove unused import
      
      * Remove unused form
      
      * Switch tests to use attempted-murders dataset
      
      * Undo optimization that broke tests
      
      * Validate non-temporal types for bigquery
      
      * Add error handling for incorrect types
      
      * Fix mysql type checking
      
      * Fix mysql type checking
      
      * invalid-parameter -> invalid-query
      
      * Use date-trunc and extract
      
      * Remove unit error handling
      
      * DatetimeLiteral -> DateOrDatetimeLiteral
      
      * Remove unused binding
      
      * Fix mysql type checking
      
      Co-authored-by: default avatarCallum Herries <hi@callumherries.com>
      Co-authored-by: default avatarCal Herries <39073188+calherries@users.noreply.github.com>
      Co-authored-by: default avatarmetamben <103100869+metamben@users.noreply.github.com>
      Co-authored-by: default avatarNoah Moss <32746338+noahmoss@users.noreply.github.com>
      Co-authored-by: default avatarNgoc Khuat <qn.khuat@gmail.com>
      Co-authored-by: default avatarCam Saul <1455846+camsaul@users.noreply.github.com>
      Unverified
      254e73f8
    • Noah Moss's avatar
      Add app DB and version to common snowplow event context (#26390) · 5a3cd591
      Noah Moss authored
      * add app DB and version to common snowplow event context
      
      * use .getDatabaseProductName for db type
      
      * fix kondo error
      
      * add new instance schema with app db type and version fields
      
      * add maxLength to new fields
      
      * address cam's feedback
      Unverified
      5a3cd591
    • Ngoc Khuat's avatar
      fix failing tests for sqlite (#26543) · ac76c031
      Ngoc Khuat authored
      Unverified
      ac76c031
    • Ngoc Khuat's avatar
      Fix sqlserver does not respect `start-of-week` when bucket by `week` (#26474) · 88a44519
      Ngoc Khuat authored
      - Add tests to check when bucketing by week and week-of-year behave consistently, Closes #4910
      - While doing the above, found that sqlserver does not respect `start-of-week` setting, so fix that. Fix #25356
      Unverified
      88a44519
  8. Nov 15, 2022
  9. Nov 14, 2022
  10. Nov 11, 2022
    • Noah Moss's avatar
      Make sure lazy seqs get realized during CSV exports (#26327) · b61cf6d0
      Noah Moss authored
      * realize lazy seqs during exports
      
      * add test & helper
      
      * update based on tamas's comment
      
      * use mapv
      
      * remove unused import
      
      * try to fix test
      
      * switch to using just a LocalDate for the second test since the ZonedDateTime test was failing for certain drivers and not others, and that isnt relevant to this test
      Unverified
      b61cf6d0
  11. Nov 10, 2022
  12. Nov 09, 2022
  13. Nov 08, 2022
  14. Nov 07, 2022
    • Bryan Maass's avatar
      Use all text scorers in the final result to increase scoring signal (#26026) · 1c6e8109
      Bryan Maass authored
      * Uses all text scorers in the final result
      
      - instead of just the maximum one
      - add tests
      
      * add prefix scorer test + fix text-score-with
      
      * linter fixes
      
      * pass in number of results to find
      
      * refactor test function
      
      * fix linter by removing unused namespace: metabase.util
      
      * limit arity of serialize to 3
      
      * make oss-score and ee-score different things
      
      - They were defined to be exactly the same, but should be different!
      - Update some tests that broke when a test function was fixed
      
      * remove extra let
      
      * move rseq back out of sorted-take
      
      * improve test feedback
      
      * force weight of text based scorers always weigh 10
      
      * handle 0 score/weights when normalizing scores
      
      * add nil check
      
      * fix more subtle test differences
      
      * more test fiddling
      
      - still test that :offset and :limit respect limits
      
      * reuse bit->boolean from api collection
      
      * clean up some tests
      
      - filter -> remove
      - replace some magic numbers
      - revert to testing entire maps instead of names of sorted items
      
      * add test, docstring, and weight
      
      * sort ns requires
      
      * responding to most of the review comments
      
      * start our zero-score sum check with 0
      
      * do not tokenize / normalize nil raw-search-string
      
      * force equality in basic search test
      
      * modify test to work in dev and test environments
      
      * use display_name in results when appropriate
      
      - This was looking for the _first_ column that had a non-zero score, but
      actually we need to consider all relevant columns.
      - Uses them to figure out if there is a display name, and if there is,
      to use it.
      - Coppied over the logic about showing :context from the prior approach
      Unverified
      1c6e8109
  15. Nov 04, 2022
  16. Oct 28, 2022
  17. Oct 27, 2022
  18. Oct 26, 2022
  19. Oct 25, 2022
  20. Oct 24, 2022
  21. Oct 21, 2022
    • Cam Saul's avatar
      Add `created_at` to Collection (#25871) · 7af4f706
      Cam Saul authored
      * Add created_at to Collection
      
      * Simplified migrations [ci skip]
      
      * Add SQL for H2 and MySQL; add tests
      
      * Sort namespaces
      
      * Test fixes :wrench:
      
      * Test fixes
      
      * Test fixes :wrench:
      
      * Make sure MySQL/MariaDB Liquibase generator sets the current timestamp function for ADD COLUMN
      Unverified
      7af4f706
Loading