This project is mirrored from https://github.com/metabase/metabase.
Pull mirroring updated .
- Dec 15, 2022
-
-
Cal Herries authored
* Replace str/lower-case with u/lower-case-en * Replace str/upper-case with u/upper-case-en * Replace more str/lower-case
-
- Dec 14, 2022
-
-
Noah Moss authored
* BE endpoint to clear group membership * update ee group manager tests with clear-memberships
-
Noah Moss authored
* make auth settings adminOnly on FE * WIP backend changes * Update relevant settings * address lint warning * new tests, and a bunch of reorganization * remove broken EE settings test, and fix validation in google & ldap endpoints * fix cypress tests * add clarifying table to setting docs
-
dpsutton authored
* Relieve db pressure on api/health check https://github.com/metabase/metabase/issues/26266 Servers under heavy load can be slow to respond to the api/health check. This can lead to k8s killing healthy instances happily humming along serving requests. One idea floated was to use QoSFilters https://www.eclipse.org/jetty/javadoc/jetty-9/org/eclipse/jetty/servlets/QoSFilter.html to prioritize those requests in front of others. But I suspect this might not be our bottleneck. Our health endpoint was updated to see if it could acquire an endpoint when we were dealing with connection pool issues. We were reporting the instance was healthy once it has finished the init process, but would report healthy if 60/15 app-db connections were used and no actual queries could complete. The remedy was adding `(sql-jdbc.conn/can-connect-with-spec? {:datasource (mdb.connection/data-source)})` to the endpoint. But now to get information about the health of the system we have to wait in the queue to get a datasource. The hope is that this change which monitors for recent db checkins (query success) and checkouts (query begun) can be a proxy for db activity without having to wait for a connection and hit the db ourselves. Some simple and crude benchmarking: - use `siege` to hit `api/database/<app-db>/sync_schema` - in a separate tab, use `siege` to hit `api/health` Three trials with unconditional db access and conditional db access (look for recent activity set by the new `ConnectionCustomizer`). One siege client is synching the app-db's schema with 80 clients each sending 60 requests. the other has 1 client sending 60 requests to api/health. Run | Elapsed Time | max tx | tx rate before change | 7.16s | 0.79s | 8.38 tx/s before change | 23.91s | 1.44s | 2.51 tx/s before change | 13.00s | 0.50s | 4.62 tx/s ---------------------------------------------------- after change | 4.46s | 0.27s | 13.45 tx/s after change | 5.81s | 0.61s | 10.33 tx/s after change | 4.54s | 0.44s | 13.22 tx/s Full(er) results below: ``` Unconditional db access ======================= siege -c80 -r 40 "http://localhost:3000/api/database/2/sync_schema POST" -H "Cookie: $SESSION" siege -c 1 -r 60 "http://localhost:3000/api/health" Elapsed time: 7.16 secs Response time: 0.12 secs Transaction rate: 8.38 trans/sec Longest transaction: 0.79 Shortest transaction: 0.01 Elapsed time: 23.91 secs Response time: 0.40 secs Transaction rate: 2.51 trans/sec Longest transaction: 1.44 Shortest transaction: 0.02 Elapsed time: 13.00 secs Response time: 0.22 secs Transaction rate: 4.62 trans/sec Longest transaction: 0.50 Shortest transaction: 0.06 Conditional db access ============================================================== Elapsed time: 4.46 secs Response time: 0.07 secs Transaction rate: 13.45 trans/sec Longest transaction: 0.27 Shortest transaction: 0.01 Elapsed time: 5.81 secs Response time: 0.10 secs Transaction rate: 10.33 trans/sec Longest transaction: 0.61 Shortest transaction: 0.00 Elapsed time: 4.54 secs Response time: 0.08 secs Transaction rate: 13.22 trans/sec Longest transaction: 0.44 Shortest transaction: 0.01 ``` * Remove reflection in `.put` call (not the reflections trategy) also remove the call to `classloader/the-classloader` as it did nothing * Comment and settle on a single method * tests * select from db twice had a failure in CI. give it time to do its thing with another db call * block to wait for timestamp update? * unflake the tests tasks and events from outside the thread can hit the db. the ConnectionCustomizer is also run from c3p0 controlled threads so we can't easily isolate everything to our thread Was running ```clojure (comment (dotimes [n 5] (dotimes [_ 100] (recent-activity-test) (CheckinTracker-test)) (println (* (inc n) 100))) ) ``` to run the tests 500 times and would keep getting flakes at a rate ~1/100 to 1/500. Just frustration for the future. * typehint * Switch it up a bit Tests were flaking in h2 and I don't know why. I'm switching to just updating recent activity on most methods.
-
Cal Herries authored
* Update test * Update implementations
-
- Dec 13, 2022
-
-
john-metabase authored
Updates embedded H2 driver to v2.1.212. When a local H2 v1 file-based application database is detected, it will be automatically updated in-place at startup. Migrations and tests have been updated to account for changes in H2 behavior. Sample data and test harness database files in the repo have all been updated to H2 v2 file format. Co-authored-by:
Braden Shepherdson <braden@metabase.com> Co-authored-by:
Cam Saul <github@camsaul.com> Co-authored-by:
Cam Saul <1455846+camsaul@users.noreply.github.com>
-
Cam Saul authored
* Remove more misc unused backend stuff * Remove unused requires
-
Cam Saul authored
-
Cam Saul authored
* Remove more misc unused stuff * Ok, name field is still used
-
Cam Saul authored
-
Cam Saul authored
* Remove `sql.qp` stuff deprecated in 41 and 42 * Remove old test * We still need to import `FieldInstance`
-
- Dec 12, 2022
-
-
Cam Saul authored
* Remove unused `metabase.models.table` `metrics` and `segments` functions * Remove more unused
-
Cal Herries authored
* Add quarter for postgres * Add quarter to schema * Add quarter tests * Add quarter for mysql * Add quarter for bigquery * Add quarter for snowflake * Add quarter for redshift * Add quarter for vertica * Add quarter for sqlserver * Add quarter to docs * Fix snowflake implementation * Make time zone dataset smaller * Revert "Make time zone dataset smaller" This reverts commit 4c97048d6c01e0f83b259a00c39d34169036fe77. * Revert "Revert "Make time zone dataset smaller"" This reverts commit d1b8fc49c8bf86fecd9897a7c4f496dbdb1b9b06. * Fix test for drivers not supporting set-timezone
-
metamben authored
This is to enable _ as field name.
-
Noah Moss authored
* update token check URL, using the current one as the fallback * update comment * fix tests * update docstring * update doc string again
-
- Dec 09, 2022
-
-
Cam Saul authored
-
- Dec 08, 2022
-
-
Cam Saul authored
* Add import and export (SerDes v2) commands * Allow use of deprecated dump/load in EE tests
-
metamben authored
* Store DBMS version in Database * Add DBMS version to anonymous stats * Add dbms_version sync tests * Add test for DBMS versions in anonymous stats
-
Bryan Maass authored
* memoize snowflake describe-database w/ 5 min ttl * pass in db-metadata where it is used, - rather than querying for it in random functions * update callsite of sync-tables-and-database! * let sync-metabase-metadata! look up db-metadata - only when needed * pass catalog (db), and schema to .getPrimaryKeys * let describe-table* add in the nil table-name * cleanup * use :snowflake instead of driver for inheritance * concurrent-sync-test should call describe-database once * cleaning up * call add-table-pks with 3 args * call add-table-pks with 3 args * try escaping entity names to appease Oracle Driver - Oracle wants the table-name to be escaped - escape is usually a no-op * pass driver to escape entity * pull get-table-pks into a multimethod, - handle the discrepancy directly in Oracle driver * remove inline def * fix colliding consistent-namespace linting - metabase.driver.sql-jdbc.common and metabase.driver.sql-jdbc.sync.common were mapped to sql-jdbc.common - metabase.driver.sql-jdbc.sync.common is now mapped to sql-jdbc.sync.common * fix reflection warnings * apply fix for getting oracle pks * nix an unused arg
-
metamben authored
* Fingerprint bigquery by previewing tables * Address review comments
-
Cam Saul authored
* MongoDB test data config should not hardcode the user and password we use in CI * Minor test data interface dox improvements * Support standard deviation and variance for MongoDB * Oops I got :expressions mixed up with :expression-aggregations * Note about calculating variance * `connection-type` instead of `db-or-server`
-
- Dec 07, 2022
-
-
dpsutton authored
* Fix numeric parameter values in jwt Don't call `seq` on numbers. If its a string, assert it isn't blank, otherwise check that it is non-null. * bind (:value request-param)
-
- Dec 06, 2022
-
-
Case Nelson authored
* Disable field value scanning for inactive fields Fixes #26863 Adds `last-used-at` to `metabase_fieldvalues` table. This is used to track when full FieldValues are fetched, which should always happen through `get-or-create-full-field-values!` If an inactive FieldValues is queried, they will be updated immediately to be returned to the user and a new last-used-at will be set so that sync will start picking it up. During field values sync, if `last-used-at` occurred more than 14 days ago, then we will no longer query and synchronize this field until it is queried for again. * Fix flaky test by waiting half a second for last-used-at to change * Updates from review * Remove flakiness from test by checking sync
-
Braden Shepherdson authored
-
Alexander Polyankin authored
-
Ngoc Khuat authored
-
- Dec 05, 2022
-
-
Cam Saul authored
-
Braden Shepherdson authored
It could generate Dimensions which depend on their own parent Fields, which causes the Fields to have circular deps and fail to load. This prevents Fields from allowing dependencies on themselves.
-
- Dec 02, 2022
-
-
Cam Saul authored
* Fix `has-user-setup` Setting not being cached correctly * Fix Kondo error
-
Aleksandr Lesnenko authored
* pie percent switch * review * Migrate to card viz-settings v.2 (#26798) * Migrate to card viz-settings v.2 This uses the new :pie.percent_visibility key (an enum) instead of a collection of booleans [#26776] * Move to def-json-migration * Don't migrate empty values * fix specs Co-authored-by:
Tim Macdonald <tim@metabase.com>
-
- Dec 01, 2022
-
-
Mahatthana (Kelvin) Nomsawadi authored
* Refactor so static combo chart is ready for reordering * Correct test names * Clean up static viz combo chart BE API * sort static combo chart * Order static funnel chart * Remove unused import and function * Fix BE tests * Remove custom column name tests since logic is moved to FE * Remove graph.series_order when changing dimensions (#26842) * review Co-authored-by:
Nick Fitzpatrick <nick@metabase.com> Co-authored-by:
Aleksandr Lesnenko <alxnddr@gmail.com>
-
Cal Herries authored
* Implement now for sql drivers * Remove unused import * Add tests * Add more tests * Implement bigquery, mysql, postgres * Test now as argument * Fix FE type inferencer * Change feature flag to date-arithmetics * Implement h2 driver * Fix tests for sqlite * Add snowflake implementation * Remove type test * Fix test for sqlite * Update how we handle autocomplete and format for zero-arity functions in ExpressionEditor (#26563) * Update suggestionText function * Suggest with closing parens if zero-arity * Format zero-arity functions with () * Refactor formatFunction * Remove unused imports * Add presto implementation * Add sqlserver implementation * Test in multiple timezones * Remove setting test driver * Add sparksql implementation * Fix count() fe unit test * Add fe MBQL unit test for now() * Fix sparksql implementation * Add vertica implementation * Add oracle implementation * Add vertica implementation * Remove accidental form * Fix vertica implementation for report timezones * Remove unused multimethod * Remove unused feature * Update sparksql * Fix fe unit tests * Fix fe unit tests * Update hive implementation * Revert "Fix fe unit tests" This reverts commit fde4dd0d. * Revert "Fix fe unit tests" This reverts commit 7b7429ea. * Revert "Fix count() fe unit test" This reverts commit c5c6f6f9. * Revert "Refactor formatFunction" This reverts commit ac50e73e. * Revert "Update how we handle autocomplete and format for zero-arity functions in ExpressionEditor (#26563)" This reverts commit cf39634e. * Update hive * snowflake: convert type to timestamptz * sqlserver: rename date-trunc to zeroed-date-part * Wrap with database type info * Change fe unit test back to now without parens * Change MBQL clauses config for now to return type "datetime" * Fix presto * Add some fe unit tests for parsing and resolving * Update helper-text-strings * Change from second to millisecond precision * Remove test for second precision * presto: Change from second to millisecond precision * vertica: Change from second to millisecond precision * vertica: Change from second to millisecond precision * Change feature flag from date-arithmetics to now * Change feature flag from date-arithmetics to now, mbql schema * Allow now to be used in filter clauses * Add test for filter * Implement driver/database-supports? for each driver that implements :now * Tidy tests * Add back default sql implementation * Add sqlite feature flag * Add mongo implementation * Fix mongo * Format rows * Change vertica to return timestamp with time zone * Fix presto tests * Remove unused require * Update h2 function to return timestamp with time zone * mongo: calculate now during query execution, not processing, for versions >=4.2 (#26822) * replace with $$NOW * Remove unused import * Add back previous now implementation for versions <4.2 * Throw an error if version is <4.2 * Add i18n * Ignore patch version * Clean up `SchedulePicker` component (#26839) * Move `SchedulePicker` to its own directory * Sort imports * Do basic clean up * Extract `DEFAULT_DAY` to a constant * Extract styled components * Convert `SchedulePicker` to TypeScript * Add `SchedulePicker` container * Export `SchedulePicker` options * Add basic `SchedulePicker` story * Fix `SchedulePicker` crashes Storybook * Tweak Storybook file * Build datetime filters as datetime before question is saved (#26679) * Revert "Update h2 function to return timestamp with time zone" This reverts commit f7cce3ea7ccbbfc886d0942d66b1f8f60feb6aba. Co-authored-by:
Gustavo Saiani <gus@metabase.com> Co-authored-by:
Anton Kulyk <kuliks.anton@gmail.com>
-
Noah Moss authored
* initial implementation * some refactor and improved error handling * another refactor * fix reflection warning * add test and more refactor * another test * misc comment improvements and formatting * fix tests * small refactor * fix function call * address tamas's comments
-
Braden Shepherdson authored
There are now three top-level trees: - regular `collections/path/to/collection/...` - `:namespace :snippet` collections in `snippets/path/to/collection/...` - `databases/mydb/schemas/PUBLIC/tables/customers/fields/name.yaml` The path for any given entity is determined by the `serdes.base/storage-path` multimethod. On the ingestion side, things are a bit tricky because the paths don't map directly to `:serdes/meta` hierarchies anymore. Instead each model registers a function to turn a file path into either a `:serdes/meta` hierarcy or nil for a bad match. Ingestion will fetch all these functions once and then try them all in arbitrary order until one matches.
-
Ngoc Khuat authored
* datetime-add, datetime-subtract, temporal-extract, convert-timezone now can takes datetime literal as argument * fix vertica
-
- Nov 30, 2022
-
-
Ngoc Khuat authored
* convert-timezone for mysql, mariadb, sqlserver, oracle * sqlserver doesn't understand Asia/Ho_Chi_Minh * vertica * skip report-tz tests for sqlserver * use the util fn to check args for convert-timezone * fix for vertica not formatting in report-tz
-
- Nov 29, 2022
-
-
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:
Damon P. Cortesi <d.lifehacker@gmail.com> Co-authored-by:
Bryan Maass <bryan.maass@gmail.com> Co-authored-by:
dan sutton <dan@dpsutton.com>
-
Braden Shepherdson authored
-
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
-
- Nov 28, 2022
-
-
Ngoc Khuat authored
convert-timezone now requires source-timezone if the input column doesn't have timezone
-