This is an automated email from the ASF dual-hosted git repository.

beto pushed a change to branch new-table-metadata-api
in repository https://gitbox.apache.org/repos/asf/superset.git


    omit 1f73f2f2d2 Small fixes
    omit 239f827ead feat(SIP-95): new endpoint for table metadata
    omit 25edb1caf1 feat(sip-95): new endpoint for extra table metadata
     add c23876d536 build(deps): bump match-sorter from 6.3.3 to 6.3.4 in 
/superset-frontend (#28082)
     add e889f17421 chore(translations): fix translations order (#28031)
     add cddcff2c63 chore(translations): add Arabic translations stub (#28129)
     add 83fedcc9ea chore: change deprecation versions post 4.0 (#28019)
     add cfc440c56c feat: improve event logging for queries + refactor (#27943)
     add de82d90b9c chore: refactor file upload commands (#28164)
     add b7f3e0bb50 fix(AlertsReports): making log retention "None" option 
valid  (#27554)
     add 063914af04 chore: get websocket service to start in docker-compose 
(#28135)
     add 68c77d6e9f chore: clean up console upon firing up the CLI (#28134)
     add efc1ab83d4 build(deps): bump gh-pages from 3.2.3 to 5.0.0 in 
/superset-frontend (#28177)
     add f155138659 build(deps): update @types/fetch-mock requirement from 
^7.3.3 to ^7.3.8 in /superset-frontend/packages/superset-ui-core (#27831)
     add 9db431b430 docs: add dynamic entity-relationship diagram to docs 
(#28130)
     add cf90def462 feat: custom refresh frequency (#24449)
     add 8baf754615 fix(docs): ERD docs fail on master (#28189)
     add a9075fdb1f fix: Remove deprecated ignoreTestFiles from Applitools 
Cypress (#28197)
     add bc65c245fe chore(tests): Remove unnecessary/problematic app contexts 
(#28159)
     add e8a678b75a docs: Refactor Documentation Structure (#28161)
     add 2d63722150 chore: set up ruff as a new linter/formatter (#28158)
     add ffed915e91 feat(sip-95): new endpoint for extra table metadata
     add 8cdf38b3f6 feat(SIP-95): new endpoint for table metadata
     add a41acfbc29 Small fixes

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (1f73f2f2d2)
            \
             N -- N -- N   refs/heads/new-table-metadata-api (a41acfbc29)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .github/workflows/bashlib.sh                       |     2 +-
 .github/workflows/dependency-review.yml            |    23 +-
 .github/workflows/superset-docs-deploy.yml         |    23 +-
 .pre-commit-config.yaml                            |    30 +-
 .pylintrc                                          |     3 +-
 .rat-excludes                                      |     4 +
 CONTRIBUTING.md                                    |     2 +-
 README.md                                          |     6 +-
 RELEASING/changelog.py                             |    10 +-
 RESOURCES/FEATURE_FLAGS.md                         |    14 +-
 UPDATING.md                                        |     2 +
 docker-compose.yml                                 |     4 +
 .../superset-websocket/config.json                 |     2 +-
 .../alerts-reports.mdx                             |     8 +-
 .../async-queries-celery.mdx                       |     0
 .../docs/{installation => configuration}/cache.mdx |     4 +-
 .../configuring-superset.mdx                       |     0
 .../country-map-tools.mdx                          |     0
 .../event-logging.mdx                              |     0
 .../importing-exporting-datasources.mdx            |     0
 .../issue-codes.mdx                                |     0
 .../networking-settings.mdx                        |     0
 .../setup-ssh-tunneling.mdx                        |     0
 .../sql-templating.mdx                             |     2 +-
 .../{miscellaneous => configuration}/timezones.mdx |     0
 docs/docs/contributing/_category_.json             |     4 -
 docs/docs/contributing/erd.mdx                     |    11 +
 docs/docs/contributing/local-backend.mdx           |     2 +-
 docs/docs/contributing/testing-locally.mdx         |    17 +-
 .../creating-charts-dashboards/_category_.json     |     4 -
 docs/docs/databases/_category_.json                |     4 -
 docs/docs/frequently-asked-questions.mdx           |     8 +-
 docs/docs/installation/_category_.json             |     4 -
 .../installation/{docker.mdx => docker-builds.mdx} |     7 +
 ...using-docker-compose.mdx => docker-compose.mdx} |     2 +-
 .../{running-on-kubernetes.mdx => kubernetes.mdx}  |     4 +-
 ...{installing-superset-from-pypi.mdx => pypi.mdx} |     4 +-
 docs/docs/installation/upgrading-superset.mdx      |     2 +-
 docs/docs/intro.mdx                                |     6 +-
 docs/docs/miscellaneous/_category_.json            |     4 -
 docs/docs/quickstart.mdx                           |    10 +-
 docs/docs/security/_category_.json                 |     4 -
 docs/docs/security/cves.mdx                        |    18 +-
 docs/docs/security/security.mdx                    |     2 +-
 .../chart-params.mdx                               |     0
 .../creating-your-first-dashboard.mdx              |     4 +-
 .../exploring-data.mdx                             |     0
 docs/docusaurus.config.js                          |    23 +-
 docs/package.json                                  |     1 +
 docs/sidebars.js                                   |    87 +-
 .../src/components/InteractiveERDSVG.jsx           |    23 +-
 docs/static/img/erd.svg                            |     1 +
 docs/yarn.lock                                     |    34 +-
 pyproject.toml                                     |    79 +
 requirements/development.txt                       |     4 +
 scripts/build_docker.py                            |     6 +-
 scripts/cancel_github_workflows.py                 |     1 +
 scripts/change_detector.py                         |     5 +-
 scripts/erd/erd.puml                               |   676 +
 scripts/erd/erd.py                                 |   211 +
 docs/static/.nojekyll => scripts/erd/erd.svg       |     0
 scripts/erd/erd.template.puml                      |    57 +
 scripts/templates/erd.plantuml.template            |    57 +
 superset-frontend/package-lock.json                |    92 +-
 superset-frontend/package.json                     |     2 +-
 .../packages/superset-ui-core/package.json         |     2 +-
 .../packages/superset-ui-demo/package.json         |     2 +-
 .../components/RefreshIntervalModal.test.tsx       |    17 +
 .../dashboard/components/RefreshIntervalModal.tsx  |   200 +-
 .../src/features/alerts/AlertReportModal.tsx       |     6 +-
 .../UploadDataModel/UploadDataModal.test.tsx       |     2 -
 .../features/databases/UploadDataModel/index.tsx   |    17 -
 superset-websocket/src/index.ts                    |    13 +-
 superset/__init__.py                               |    14 +-
 .../advanced_data_type/plugins/internet_port.py    |     6 +-
 superset/advanced_data_type/schemas.py             |     1 +
 superset/annotation_layers/filters.py              |     4 +-
 superset/cachekeys/api.py                          |     6 +-
 superset/charts/filters.py                         |     4 +-
 superset/cli/main.py                               |     3 +-
 superset/columns/models.py                         |     1 +
 superset/commands/chart/export.py                  |     7 +-
 superset/commands/chart/importers/v1/__init__.py   |     3 +-
 superset/commands/dashboard/export.py              |     7 +-
 .../commands/dashboard/importers/v1/__init__.py    |     4 +-
 superset/commands/database/create.py               |     1 -
 superset/commands/database/csv_import.py           |   198 -
 superset/commands/database/exceptions.py           |     5 +
 superset/commands/database/export.py               |    14 +-
 .../commands/database/importers/v1/__init__.py     |     3 +-
 superset/commands/database/update.py               |    11 +-
 .../database/uploaders}/__init__.py                |     0
 .../{excel_import.py => uploaders/base.py}         |   115 +-
 superset/commands/database/uploaders/csv_reader.py |   102 +
 .../commands/database/uploaders/excel_reader.py    |    86 +
 superset/commands/dataset/export.py                |     7 +-
 superset/commands/dataset/importers/v1/__init__.py |     3 +-
 superset/commands/explore/get.py                   |     6 +-
 superset/commands/importers/v1/__init__.py         |    12 +-
 superset/commands/importers/v1/assets.py           |     1 -
 superset/commands/importers/v1/examples.py         |     1 -
 superset/commands/importers/v1/utils.py            |    12 +-
 superset/commands/query/export.py                  |     7 +-
 superset/commands/query/importers/v1/__init__.py   |     4 +-
 superset/commands/report/log_prune.py              |     1 +
 superset/commands/temporary_cache/create.py        |     3 +-
 superset/commands/temporary_cache/delete.py        |     3 +-
 superset/commands/temporary_cache/get.py           |     3 +-
 superset/commands/temporary_cache/update.py        |     3 +-
 superset/common/query_object.py                    |     3 +-
 superset/config.py                                 |    50 +-
 superset/connectors/sqla/__init__.py               |     2 +-
 superset/connectors/sqla/models.py                 |    25 +-
 superset/connectors/sqla/views.py                  |     1 +
 superset/daos/chart.py                             |     2 +-
 superset/daos/dataset.py                           |     4 +-
 superset/dashboards/api.py                         |     6 +-
 superset/databases/api.py                          |    21 +-
 superset/databases/schemas.py                      |     6 -
 superset/dataframe.py                              |     4 +-
 superset/datasets/models.py                        |     1 -
 superset/db_engine_specs/__init__.py               |     1 +
 superset/db_engine_specs/base.py                   |    19 +-
 superset/db_engine_specs/bigquery.py               |     6 +-
 superset/db_engine_specs/duckdb.py                 |     2 +-
 superset/db_engine_specs/hive.py                   |     4 +-
 superset/db_engine_specs/ocient.py                 |     6 +-
 superset/db_engine_specs/presto.py                 |     4 +-
 superset/examples/countries.py                     |     1 +
 superset/examples/data_loading.py                  |    22 +-
 superset/examples/energy.py                        |     1 +
 superset/examples/flights.py                       |     4 +-
 superset/examples/helpers.py                       |     1 +
 superset/examples/tabbed_dashboard.py              |     1 +
 superset/examples/world_bank.py                    |     1 +
 superset/extensions/metadb.py                      |     2 -
 superset/forms.py                                  |     1 +
 superset/jinja_context.py                          |     1 +
 superset/key_value/types.py                        |     6 +-
 superset/legacy.py                                 |     1 +
 superset/migrations/migration_utils.py             |     2 +-
 superset/migrations/shared/migrate_viz/__init__.py |     2 +-
 superset/migrations/shared/migrate_viz/base.py     |     2 +-
 superset/migrations/shared/utils.py                |     5 +-
 .../versions/2015-09-21_17-30_4e6a06bad7a8_init.py |     4 +-
 .../versions/2015-10-05_10-32_5a7bad26f2a7_.py     |     4 +-
 .../versions/2015-10-05_22-11_1e2841a4128_.py      |     4 +-
 ...0-54_2929af7925ed_tz_offsets_in_data_sources.py |     4 +-
 ...12-04_09-42_1a48a5411020_adding_slug_to_dash.py |     6 +-
 ...15-12-04_11-16_315b3f4da9b0_adding_log_model.py |     4 +-
 .../2015-12-13_08-38_55179c7f25c7_sqla_descr.py    |     4 +-
 .../2015-12-14_13-37_12d55656cbca_is_featured.py   |     4 +-
 .../2015-12-15_17-02_2591d77e9831_user_id.py       |     4 +-
 .../versions/2016-01-13_20-24_8e80a26a31db_.py     |     5 +-
 ...6-01-17_22-00_7dbf98566af7_slice_description.py |     4 +-
 .../2016-01-18_23-43_43df8de3a5f4_dash_json.py     |     4 +-
 .../2016-02-03_17-41_d827694c7555_css_templates.py |     4 +-
 .../2016-02-10_08-47_430039611635_log_more.py      |     1 +
 ...3-13_09-56_a2d606a761d9_adding_favstar_model.py |     4 +-
 ...-13_21-30_18e88e1cc004_making_audit_nullable.py |     1 +
 ...2016-03-17_08-40_836c0bf75904_cache_timeouts.py |     5 +-
 ...016-03-24_14-13_763d4b211ec9_fixing_audit_fk.py |     8 +-
 .../2016-03-25_14-35_1d2ddd543133_log_dt.py        |     5 +-
 ...4f117f9_adding_extra_field_to_database_model.py |     5 +-
 ...22-41_bb51420eaf83_add_schema_to_table_model.py |     4 +-
 ..._b4456560d4f3_change_table_unique_constraint.py |     1 +
 ...04-15_17-58_4fa88fe24e94_owners_many_to_many.py |     5 +-
 ..._08-54_c3a8f8611885_materializing_permission.py |     1 +
 ...bf6129e13_adding_verbose_name_to_tablecolumn.py |     4 +-
 ...5-11_17-28_956a063c52b3_adjusting_key_length.py |     1 +
 ...9ee0e3_fix_wrong_constraint_on_table_columns.py |     3 +-
 ...d8bc074f7aad_add_new_field_is_restricted_to_.py |    10 +-
 .../versions/2016-06-16_14-15_960c69cb1f5b_.py     |     4 +-
 ...06-27_08-43_27ae655e4247_make_creator_owners.py |    16 +-
 ...-07-06_22-04_f162a1dea4c4_d3format_by_metric.py |     4 +-
 ...016-07-25_17-48_ad82a75afd82_add_query_model.py |     4 +-
 ...8_14-06_3c3ffe173e4f_add_sql_string_to_table.py |     4 +-
 ...26_41f6a59a61f2_database_options_for_sql_lab.py |     1 +
 ...-09-07_23-50_33d996bcc382_update_slice_model.py |     1 +
 ..._17-39_5e4a03ef0bf0_add_request_access_model.py |     1 +
 ...9-12_23-33_4500485bde7d_allow_run_sync_async.py |     4 +-
 .../versions/2016-09-19_17-22_b347b202819b_.py     |     1 +
 ...09-22_10-21_3b626e2a6783_sync_db_with_models.py |     1 +
 ...2_11-31_eca4694defa7_sqllab_setting_defaults.py |     2 +-
 ...d66c4246e_add_cache_timeout_to_druid_cluster.py |     4 +-
 .../versions/2016-10-02_10-35_ef8843b41dac_.py     |     1 +
 ...0-05_11-30_b46fa1b0b39e_add_params_to_tables.py |     6 +-
 ...0-14_11-17_7e3ddad2a00b_results_key_to_query.py |     4 +-
 ...2016-10-25_10-16_ad4d656d92bc_add_avg_metric.py |     4 +-
 .../2016-11-02_17-36_c611f2b591b8_dim_spec.py      |     4 +-
 ...6-11-14_15-23_e46f2d27a08e_materialize_perms.py |     5 +-
 .../versions/2016-11-23_10-27_f1f2d4af5b90_.py     |     4 +-
 .../2016-12-06_17-40_1296d28ec131_druid_exports.py |     4 +-
 .../2016-12-13_16-19_525c854f0005_log_this_plus.py |     4 +-
 .../versions/2016-12-19_09-57_6414e83d82b7_.py     |     4 +-
 .../2017-01-10_11-47_bcf3126872fc_add_keyvalue.py  |     4 +-
 ...4_12-31_db0c65b146bd_update_slice_model_json.py |    10 +-
 ...2-40_f18570e03440_add_query_result_key_index.py |     1 +
 ...7c195a_rewriting_url_from_shortner_with_new_.py |    15 +-
 .../versions/2017-02-10_17-58_d6db5a5cdb5d_.py     |     4 +-
 ...9-15_732f1c06bcbf_add_fetch_values_predicate.py |     4 +-
 ...dfe5fb6c_adding_verbose_name_to_druid_column.py |     4 +-
 .../versions/2017-03-16_14-55_ea033256294a_.py     |     3 -
 ...03-16_18-10_db527d8c4c78_add_db_verbose_name.py |     6 +-
 .../versions/2017-03-21_15-41_979c03af3341_.py     |     3 -
 ..._11-28_a6c18f869a4e_query_start_running_time.py |     1 +
 .../2017-03-29_15-04_2fcdcb35e487_saved_queries.py |     1 +
 ...a65458420354_add_result_backend_time_logging.py |     1 +
 .../2017-07-26_20-09_ca69c70ec99b_tracking_url.py  |     5 +-
 ...-35_a9c47e2c1547_add_impersonate_user_to_dbs.py |     5 +-
 .../2017-09-13_16-36_ddd6ebdd853b_annotations.py   |     1 +
 ...5-09_19a814813610_adding_metric_warning_text.py |     4 +-
 .../versions/2017-09-19_15-09_d39b1e37131d_.py     |     3 -
 .../versions/2017-09-21_18-37_472d2f73dfd4_.py     |     3 -
 .../versions/2017-09-24_20-18_f959a6652acd_.py     |     3 -
 ...-08_08-19_67a6ac9b727b_update_spatial_params.py |     1 +
 ...2-17_11-06_21e88bc06c02_annotation_migration.py |     1 +
 .../2018-02-13_08-07_e866bd2d4976_smaller_grid.py  |     2 +-
 ...8c4473c581_allow_multi_schema_metadata_fetch.py |     1 +
 .../versions/2018-03-20_19-47_f231d82b9b26_.py     |     1 +
 ...fdf31bdd4_add_published_column_to_dashboards.py |     4 +-
 ...-04-03_08-19_130915240929_is_sqllab_viz_flow.py |     1 +
 .../versions/2018-04-08_07-34_30bb17c0dc76_.py     |     6 +-
 ...9_bf706ae5eb46_cal_heatmap_metric_to_metrics.py |     1 +
 .../versions/2018-04-10_20-46_c9495751e314_.py     |     4 +-
 .../versions/2018-04-12_16-00_5ccf602336a0_.py     |     4 +-
 ...5_e502db2af7be_add_template_params_to_tables.py |     6 +-
 ..._20-28_6c7537a6004a_models_for_email_reports.py |     4 +-
 ...018-06-04_11-12_c5756bec8b47_time_grain_sqla.py |    10 +-
 ...6-07_09-52_afb7730f6a9c_remove_empty_filters.py |    10 +-
 ...13_10-20_4451805bbaa1_remove_double_percents.py |    10 +-
 .../2018-06-13_14-54_bddc498dd179_adhoc_filters.py |    12 +-
 ...4_14-31_80a67c5192fa_single_pie_chart_metric.py |    10 +-
 .../versions/2018-07-16_18-04_1d9e835a84f9_.py     |     1 +
 .../2018-07-19_23-41_c617da68de7d_form_nullable.py |    10 +-
 ...07-20_15-31_7f2635b51f5d_update_base_columns.py |    10 +-
 ...07-20_15-57_e9df189e5c7e_update_base_metrics.py |    10 +-
 ...-07-20_16-08_937d04c16b64_update_datasources.py |     4 +-
 .../versions/2018-07-22_08-49_c829ff0b37d0_.py     |     3 -
 .../2018-07-22_08-50_7467e77870e4_remove_aggs.py   |     1 +
 .../versions/2018-07-22_09-32_e3970889f38e_.py     |     3 -
 .../versions/2018-07-22_11-50_fc480c87706c_.py     |     3 -
 ..._bebcf3fed1fe_convert_dashboard_v1_positions.py |     6 +-
 .../versions/2018-07-22_21-51_705732c70154_.py     |     4 +-
 .../versions/2018-07-23_11-20_46ba6aaaac97_.py     |     3 -
 ...8-07-26_11-10_c82ee8a39623_add_implicit_tags.py |    14 +-
 ...14-38_0c5070e96b57_add_user_attributes_table.py |     4 +-
 .../2018-08-13_11-30_1a1d627ebd8e_position_json.py |     1 -
 ...826_add_metadata_column_to_annotation_model_.py |     4 +-
 ...08-42_0b1f1ab473c0_add_extra_column_to_query.py |     1 +
 ...08545_migrate_time_range_for_default_filters.py |     6 +-
 ...8b9b7_remove_coordinator_from_druid_cluster_.py |     1 +
 ...-27_11-53_a61b40f9f57f_remove_allow_run_sync.py |     1 +
 ...2018-12-11_22-03_fb13d49b72f9_better_filters.py |     5 +-
 ...d38_increase_size_of_name_column_in_ab_view_.py |     4 +-
 .../versions/2018-12-18_22-45_de021a1ca60d_.py     |     1 +
 .../versions/2018-12-22_17-26_fbd55e0f83eb_.py     |     3 -
 ..._a33a03f16c4a_add_extra_column_to_savedquery.py |     4 +-
 .../versions/2019-01-17_08-31_8b70aa3d0f87_.py     |     3 -
 .../versions/2019-01-18_14-56_18dc26817ad2_.py     |     3 -
 ...2-01_16-07_e553e78e90c5_add_druid_auth_py_py.py |     5 +-
 .../versions/2019-02-16_17-44_45e7da7cfeba_.py     |     3 -
 .../2019-03-21_10-22_d94d33dbe938_form_strip.py    |    10 +-
 ...a3f04bc82_add_parent_ids_in_dashboard_layout.py |     3 +-
 ...er_sql_column_data_type_in_query_mysql_table.py |     1 +
 ...1a0d6f2da_remove_limit_used_from_query_model.py |     4 +-
 ...5_b4a38aa87893_deprecate_database_expression.py |     4 +-
 .../2019-06-28_13-17_ab8c66efdd01_resample.py      |    14 +-
 ...9-02_def97f26fdfb_add_index_to_tagged_object.py |     2 +-
 ...ng_unique_constraint_on_dashboard_slices_tbl.py |     3 +-
 ...50_11c737c17cc6_deprecate_restricted_metrics.py |     1 +
 ...5afa9079866a_serialize_schema_permissions_py.py |     1 -
 ...e_form_strip_leading_and_trailing_whitespace.py |     1 +
 ...2_00-29_b6fa807eac07_make_names_non_nullable.py |     1 +
 ...5-05_cca2f5d568c8_add_encrypted_extra_to_dbs.py |     4 +-
 .../2019-10-10_13-52_1495eb914ad3_time_range.py    |     1 +
 ...acd2cf3df2_alter_type_of_dbs_encrypted_extra.py |     1 -
 ...127d0d1d_reconvert_legacy_filters_into_adhoc.py |    17 +-
 ...05_db4b49eb0782_add_tables_for_sql_lab_state.py |     5 +-
 ...e1c9b09d0_add_not_null_to_dbs_sqlalchemy_url.py |     1 +
 ...8ea_change_table_schema_description_to_long_.py |     8 +-
 ...4_17-07_0a6f12f60c73_add_role_level_security.py |     4 +-
 ...-08_01-17_e96dbf2cfef0_datasource_cluster_fk.py |     2 +-
 ..._14-13_3325d4caccc8_dashboard_scoped_filters.py |     2 +-
 ...a401_add_tmp_schema_name_to_the_query_object.py |     4 +-
 ...10-42_f9a30386bd74_cleanup_time_grainularity.py |    10 +-
 ...25_10-49_b5998378c225_add_certificate_to_dbs.py |     6 +-
 ...57699a813e_add_tables_relation_to_row_level_.py |     6 +-
 ...29_09-24_620241d1153f_update_time_grain_sqla.py |    12 +-
 ...5-12_12-59_ea396d202291_ctas_method_in_query.py |     4 +-
 ...21-01_743a117f0d98_add_slack_to_the_schedule.py |     4 +-
 .../2020-05-26_23-21_2f1d15e8a6af_add_alerts.py    |     5 +-
 ...09_17-12_73fd22e742ab_add_dynamic_plugins_py.py |     4 +-
 ...08-08_18-10_f2672aa8350a_add_slack_to_alerts.py |     4 +-
 ...978245563a02_migrate_iframe_to_dash_markdown.py |     3 +-
 ...acb39_add_extra_column_to_tables_and_metrics.py |     4 +-
 .../versions/2020-08-12_15-47_f80a3b88324b_.py     |     3 -
 .../2020-08-28_17-16_175ea3592453_cache_lookup.py  |     4 +-
 ...-08-31_20-30_2e5a0ee25ed4_refractor_alerting.py |     6 +-
 ...828ac4e_add_rls_filter_type_and_grouping_key.py |    10 +-
 ...654_fix_data_access_permissions_for_virtual_.py |    13 +-
 ...d70ab98_fix_table_unique_constraint_in_mysql.py |     8 +-
 ...b56500de1855_add_uuid_column_to_import_mixin.py |     1 +
 ..._585b0b1a7b18_add_exec_info_to_saved_queries.py |     4 +-
 ...6e99fb176a0_add_import_mixing_to_saved_query.py |     2 +-
 ...1-04_11-06_49b5a32daba5_add_report_schedules.py |     7 +-
 ...20-11-15_16-08_a8173232b786_add_path_to_logs.py |     6 +-
 ...e38177dbf641_security_converge_saved_queries.py |     8 +-
 ...15-25_40f16acf1ba7_security_converge_reports.py |     8 +-
 ...8ee129739cf9_security_converge_css_templates.py |     8 +-
 ...ced1f0e76_reports_add_working_timeout_column.py |     4 +-
 ...-03_16-21_811494c0cc23_remove_path_from_logs.py |     5 +-
 ..._14-13_ccb74baaa89b_security_converge_charts.py |     8 +-
 ...5-05_45731db65d9c_security_converge_datasets.py |     8 +-
 ...45_1f6dca87d1a2_security_converge_dashboards.py |     8 +-
 ...-49_42b4c9e01447_security_converge_databases.py |     9 +-
 ...9-07_ab104a954a8f_reports_alter_crontab_size.py |     4 +-
 ...12-15_e37912a26567_security_converge_queries.py |     8 +-
 ...c878781977c6_alert_reports_shared_uniqueness.py |    12 +-
 ...cdd12658_add_roles_relationship_to_dashboard.py |     5 +-
 ...60bf0649a77_migrate_x_dateunit_in_time_range.py |    26 +-
 ...2fdb_add_granularity_to_charts_where_missing.py |    12 +-
 ...-10_12-32_41ce8799acc3_rename_pie_label_type.py |    10 +-
 ...1412ec1e5a7b_legacy_force_directed_to_echart.py |     4 +-
 ...8_09-13_c501b7c653a3_add_missing_uuid_column.py |    18 +-
 ...2_67da9ef1ef9c_add_hide_left_bar_to_tabstate.py |     7 +-
 ...411006_add_execution_id_to_report_execution_.py |     6 +-
 ...989bbe479899_rename_filter_configuration_in_.py |    10 +-
 ...021-03-29_11-15_3ebe0993c770_filterset_table.py |     4 +-
 ...e1b9c3_add_report_format_to_report_schedule_.py |     4 +-
 ...ea61c5e7_remove_dataset_health_check_message.py |    12 +-
 ...88938_country_map_use_lowercase_country_name.py |     1 +
 ...3a3a8ff221_migrate_filter_sets_to_new_format.py |    14 +-
 ...0d715cc_add_limiting_factor_column_to_query_.py |     4 +-
 ...ed7ec95_migrate_native_filters_to_new_schema.py |    14 +-
 ...530256cea_add_save_option_column_to_db_model.py |     4 +-
 ...ae1ed299413b_add_timezone_to_report_schedule.py |     4 +-
 ...9248280_add_creation_method_to_reports_model.py |     4 +-
 ...-09_030c840e3a1c_add_query_context_to_slices.py |     5 +-
 ...27_08-25_31b2a1039d4a_drop_tables_constraint.py |     1 -
 ...3605f370a_fix_schemas_allowed_for_csv_upload.py |     1 +
 ...d20ba9ecb33_add_last_saved_at_to_slice_model.py |     4 +-
 ...15da_migrate_pivot_table_v2_heatmaps_to_new_.py |    10 +-
 ...13dd52_change_fetch_values_predicate_to_text.py |    12 +-
 ...1091c0ef16_add_extra_column_to_columns_model.py |     4 +-
 ...4fbb_add_type_to_native_filter_configuration.py |    16 +-
 ...-09-19_14-42_b92d69a6643c_rename_csv_to_file.py |     6 +-
 ...453f4e2e_migrate_timeseries_limit_metric_to_.py |    10 +-
 ...12_11-15_32646df09c64_update_time_grain_sqla.py |    10 +-
 ...cbaac5_change_datatype_of_type_in_basecolumn.py |     4 +-
 ...e5f1dacd_rename_to_schemas_allowed_for_file_.py |    12 +-
 ...-11-11_16-41_b8d3a24d9131_new_dataset_models.py |     1 +
 ...e27eaf93db_add_extra_config_column_to_alerts.py |     8 +-
 ...aa3ff_add_force_screenshot_to_alerts_reports.py |     8 +-
 ...5b9441_rename_big_viz_total_form_data_fields.py |    12 +-
 ...8dd_add_saved_query_foreign_key_to_tab_state.py |     4 +-
 ...d1d2_move_pivot_table_v2_legacy_order_by_to_.py |    12 +-
 ...9410a97a_add_columns_for_external_management.py |     4 +-
 ...03_5afbb1a5849b_add_embedded_dahshoard_table.py |     8 +-
 ..._ab9a9d86e695_deprecate_time_range_endpoints.py |     1 +
 ...b0ca7944_change_adhoc_filter_b_from_none_to_.py |    10 +-
 ...03-04_09-59_6766938c6065_add_key_value_store.py |     8 +-
 ...3_sql_lab_models_database_constraint_updates.py |     6 +-
 ...d617f14_add_on_saved_query_delete_tab_state_.py |     6 +-
 ...14-38_a9422eeaae74_new_dataset_models_take_2.py |    49 +-
 ...d0249074e4_deprecate_time_range_endpoints_v2.py |     1 +
 .../versions/2022-04-06_14-10_9d8a8d575284_.py     |     3 -
 ...07e4fdbaba_rm_time_range_endpoints_from_qc_3.py |    10 +-
 ...-39_cbe71abde154_fix_report_schedule_and_log.py |    10 +-
 ...8_16-07_e786798587de_delete_none_permissions.py |     8 +-
 ...-14_15-28_e09b4ae78457_resize_key_value_blob.py |     4 +-
 ..._16-17_f3afaf1f11f0_add_unique_name_desc_rls.py |     8 +-
 ...59_7fb8bca906d2_permalink_rename_filterstate.py |    14 +-
 ...5-48_409c7b420ab0_add_created_by_fk_as_owner.py |     6 +-
 ...cf3d64daf4_add_user_id_dttm_idx_to_log_model.py |     2 +-
 ..._13-00_c747c78868b6_migrating_legacy_treemap.py |     1 +
 ...-07_14-00_06e1e70058c7_migrating_legacy_area.py |     1 +
 ...61a56_rename_report_schedule_extra_to_extra_.py |     4 +-
 ...-16_a39867932713_query_context_to_mediumtext.py |     1 +
 ...665d_fix_table_chart_conditional_formatting_.py |     1 +
 ...rop_column_allow_multi_schema_metadata_fetch.py |     4 +-
 ...-34_deb4c9d4a4ef_parameters_in_saved_queries.py |     4 +-
 ...c2d8ec8595_create_ssh_tunnel_credentials_tbl.py |    12 +-
 ...1_4ce1d9b25135_remove_filter_bar_orientation.py |    10 +-
 ...4-46_c0a3ea245b61_remove_show_native_filters.py |    10 +-
 ...ac08bb5b83_invert_horizontal_bar_chart_order.py |    11 +-
 ...7_13-24_b5ea9d343307_bar_chart_stack_options.py |    11 +-
 ...03-27_12-30_7e67aecbf3f1_chart_ds_constraint.py |    12 +-
 ...2af1b_drop_postgres_enum_constrains_for_tags.py |     4 +-
 ...2a5681ddfd_convert_key_value_entries_to_json.py |    18 +-
 ...-41_4ea966691069_cross_filter_global_scoping.py |    22 +-
 ...06-01_13-13_83e1abbe777f_drop_access_request.py |     4 +-
 ...02_9ba2ce3086e5_migrate_pivot_table_v1_to_v2.py |     1 +
 ...-08_10-22_4c5da39be729_migrate_treemap_chart.py |     1 +
 ...e58e1e58e5c_migrate_dual_line_to_mixed_chart.py |     3 +-
 ..._90139bf715e4_add_currency_column_to_metrics.py |     4 +-
 ..._add_on_delete_cascade_for_tables_references.py |     2 +-
 .../2023-06-28_19-49_bf646a0c1501_json_metadata.py |     1 -
 ..._240d23c7f86f_update_tag_model_w_description.py |     5 +-
 ...2a3124dd66_drop_rouge_constraints_and_tables.py |     6 +-
 ..._add_on_delete_cascade_for_owners_references.py |     2 +-
 ...0-34_e0f6f91c2055_create_user_favorite_table.py |     5 +-
 ...delete_obsolete_druid_nosql_slice_parameters.py |    12 +-
 ...6f8b1280_cleanup_erroneous_parent_filter_ids.py |    12 +-
 ...9_17-54_ee179a490af9_deckgl_path_width_units.py |     1 +
 ...23_0769ef90fddd_fix_schema_perm_for_datasets.py |    10 +-
 .../2023-08-08_14-14_2e826adca42c_log_json.py      |     1 -
 ...3_add_on_delete_cascade_for_dashboard_slices.py |     2 +-
 ...on_delete_cascade_for_embedded_dashboards.py.py |     2 +-
 ...086c2676_add_normalize_columns_to_sqla_model.py |    11 +-
 ...54aca4c8a2_increase_ab_user_email_field_size.py |     4 +-
 ...317970b4400c_added_time_secondary_column_to_.py |    11 +-
 ...91_add_on_delete_cascade_for_dashboard_roles.py |     2 +-
 ...12-01_12-03_b7851ee5522f_replay_317970b4400c.py |     4 +-
 ...ff00fe8_add_percent_calculation_type_funnel_.py |     1 +
 ...20_65a167d4c62e_add_indexes_to_report_models.py |     4 +-
 ...16_13-14_59a1450b3c10_drop_filter_sets_table.py |     3 +-
 ...96164e3017c6_tagged_object_unique_constraint.py |     3 +-
 ...4-01-18_12-12_15a2c68a2e6b_merging_two_heads.py |     3 -
 ...18_14-41_a32e0c4d8646_migrate_sunburst_chart.py |     6 +-
 ...d09c9_migrate_filter_boxes_to_native_filters.py |    15 +-
 .../2024-01-19_08-42_1cf8e4344e2b_merging.py       |     3 -
 ...2024-01-19_10-03_e863403c0c50_drop_url_table.py |     7 +-
 ...d83218_migrate_can_view_and_drill_permission.py |     8 +-
 ...14-43_17fcea065655_change_text_to_mediumtext.py |     8 +-
 ...47_be1b217cd8cd_big_number_kpi_single_metric.py |    12 +-
 ...20_16-02_678eefb4ab44_add_access_token_table.py |     6 +-
 ...4-01_22-44_c22cb5c2e546_user_attr_avatar_url.py |     2 +-
 ...8_15-43_5ad7321c2169_mig_new_csv_upload_perm.py |     8 +-
 ...-04-11_15-41_5f57af97bc3f_add_catalog_column.py |     6 +-
 ...14-04_d60591c5515f_mig_new_excel_upload_perm.py |     8 +-
 superset/models/__init__.py                        |     2 +-
 superset/models/annotations.py                     |     1 +
 superset/models/cache.py                           |     1 -
 superset/models/core.py                            |   104 +-
 superset/models/dashboard.py                       |     8 +-
 superset/models/helpers.py                         |    28 +-
 superset/models/sql_lab.py                         |     3 +-
 superset/models/user_attributes.py                 |     1 -
 superset/queries/saved_queries/filters.py          |     4 +-
 superset/reports/models.py                         |     1 +
 superset/reports/notifications/__init__.py         |     4 +-
 superset/reports/schemas.py                        |     2 +-
 superset/result_set.py                             |     6 +-
 superset/row_level_security/api.py                 |     2 +-
 superset/security/api.py                           |     6 +-
 superset/security/manager.py                       |     5 +-
 superset/sql_lab.py                                |    44 +-
 superset/sql_parse.py                              |     4 +-
 superset/sql_validators/__init__.py                |     2 +-
 superset/sql_validators/presto_db.py               |     9 +-
 superset/sqllab/execution_context_convertor.py     |     2 -
 superset/sqllab/sqllab_execution_context.py        |     1 -
 superset/tags/models.py                            |     4 +-
 superset/tasks/celery_app.py                       |     3 +-
 superset/tasks/slack_util.py                       |     1 +
 superset/temporary_cache/api.py                    |    12 +-
 .../{en => ar}/LC_MESSAGES/messages.json           |   183 +-
 .../{messages.pot => ar/LC_MESSAGES/messages.po}   |   107 +-
 superset/translations/de/LC_MESSAGES/messages.po   | 33430 +++++++--------
 superset/translations/en/LC_MESSAGES/messages.po   | 23183 +++++------
 superset/translations/es/LC_MESSAGES/messages.po   | 30723 +++++++-------
 superset/translations/fr/LC_MESSAGES/messages.po   | 33488 +++++++--------
 superset/translations/it/LC_MESSAGES/messages.po   | 28042 ++++++-------
 superset/translations/ja/LC_MESSAGES/messages.po   | 28930 ++++++-------
 superset/translations/ko/LC_MESSAGES/messages.po   | 27339 ++++++-------
 superset/translations/messages.pot                 | 23164 +++++------
 superset/translations/nl/LC_MESSAGES/messages.po   | 29216 ++++++-------
 superset/translations/pt/LC_MESSAGES/messages.po   | 29039 ++++++-------
 .../translations/pt_BR/LC_MESSAGES/messages.po     | 33151 +++++++--------
 superset/translations/ru/LC_MESSAGES/messages.po   | 32462 +++++++--------
 superset/translations/sk/LC_MESSAGES/messages.po   | 23754 +++++------
 superset/translations/sl/LC_MESSAGES/messages.po   | 32561 +++++++--------
 superset/translations/tr/LC_MESSAGES/messages.po   |  3024 +-
 superset/translations/uk/LC_MESSAGES/messages.po   | 32844 +++++++--------
 superset/translations/zh/LC_MESSAGES/messages.po   | 40490 ++++++++++---------
 superset/utils/core.py                             |    11 +-
 superset/utils/date_parser.py                      |     6 +-
 superset/utils/decorators.py                       |     3 +-
 superset/utils/log.py                              |    62 +-
 superset/utils/logging_configurator.py             |     2 +-
 superset/utils/pandas_postprocessing/prophet.py    |     2 +-
 superset/utils/webdriver.py                        |     4 +-
 superset/views/__init__.py                         |    14 +
 superset/views/base.py                             |     4 +-
 superset/views/base_api.py                         |    13 +-
 superset/views/chart/views.py                      |     4 +-
 superset/views/core.py                             |     4 +-
 superset/views/dashboard/views.py                  |     4 +-
 superset/views/database/views.py                   |     4 +-
 superset/views/filters.py                          |     2 -
 superset/views/key_value.py                        |     5 +-
 superset/views/sql_lab/views.py                    |     4 +-
 superset/views/utils.py                            |    14 +-
 superset/viz.py                                    |    40 +-
 tests/common/logger_utils.py                       |     3 +-
 tests/conftest.py                                  |     3 -
 .../example_data/data_generator/base_generator.py  |     3 +-
 .../birth_names/birth_names_generator_factory.py   |     3 +-
 .../example_data/data_loading/base_data_loader.py  |     6 +-
 .../data_loading/data_definitions/types.py         |     3 +-
 .../data_loading/pandas/pandas_data_loader.py      |     3 +-
 tests/integration_tests/access_tests.py            |    55 +-
 .../advanced_data_type/api_tests.py                |     7 +-
 .../annotation_layers/api_tests.py                 |     5 +-
 .../annotation_layers/fixtures.py                  |    60 +-
 tests/integration_tests/base_api_tests.py          |     8 +-
 tests/integration_tests/base_tests.py              |     3 +-
 tests/integration_tests/cache_tests.py             |     7 +-
 tests/integration_tests/cachekeys/api_tests.py     |     7 +-
 tests/integration_tests/celery_tests.py            |     9 +-
 tests/integration_tests/charts/api_tests.py        |    37 +-
 tests/integration_tests/charts/commands_tests.py   |    10 +-
 tests/integration_tests/charts/data/api_tests.py   |    51 +-
 tests/integration_tests/charts/schema_tests.py     |     5 +-
 tests/integration_tests/cli_tests.py               |     6 +-
 tests/integration_tests/conftest.py                |    13 +-
 tests/integration_tests/core_tests.py              |    23 +-
 tests/integration_tests/css_templates/api_tests.py |    11 +-
 tests/integration_tests/csv_upload_tests.py        |     3 +-
 tests/integration_tests/dashboard_tests.py         |    83 +-
 tests/integration_tests/dashboard_utils.py         |     2 +-
 tests/integration_tests/dashboards/api_tests.py    |    33 +-
 tests/integration_tests/dashboards/base_case.py    |    18 +-
 .../integration_tests/dashboards/commands_tests.py |     6 +-
 tests/integration_tests/dashboards/dao_tests.py    |     6 +-
 .../dashboards/filter_state/api_tests.py           |    14 +-
 .../dashboards/permalink/api_tests.py              |    16 +-
 .../dashboards/security/base_case.py               |     3 +-
 .../dashboards/security/security_dataset_tests.py  |    82 +-
 .../dashboards/security/security_rbac_tests.py     |   113 +-
 tests/integration_tests/databases/api_tests.py     |    39 +-
 .../databases/commands/csv_upload_test.py          |   286 -
 .../databases/commands/excel_upload_test.py        |   257 -
 .../databases/commands/upload_test.py              |   203 +
 .../integration_tests/databases/commands_tests.py  |    21 +-
 .../ssh_tunnel/commands/commands_tests.py          |     3 -
 tests/integration_tests/datasets/api_tests.py      |    29 +-
 tests/integration_tests/datasets/commands_tests.py |    12 +-
 tests/integration_tests/datasource/api_tests.py    |     8 +-
 tests/integration_tests/datasource_tests.py        |    13 +-
 .../db_engine_specs/base_engine_spec_tests.py      |    12 +-
 .../db_engine_specs/base_tests.py                  |     2 +-
 .../db_engine_specs/bigquery_tests.py              |     4 +-
 .../db_engine_specs/hive_tests.py                  |    38 +-
 .../db_engine_specs/presto_tests.py                |     2 +-
 .../integration_tests/dict_import_export_tests.py  |     1 +
 tests/integration_tests/email_tests.py             |     1 +
 tests/integration_tests/embedded/api_tests.py      |     5 +-
 tests/integration_tests/embedded/dao_tests.py      |     7 +-
 tests/integration_tests/embedded/test_view.py      |    14 +-
 tests/integration_tests/event_logger_tests.py      |     8 +-
 tests/integration_tests/explore/api_tests.py       |    42 +-
 .../explore/form_data/api_tests.py                 |    16 +-
 .../explore/form_data/commands_tests.py            |     6 +-
 .../explore/permalink/api_tests.py                 |    18 +-
 .../explore/permalink/commands_tests.py            |     5 +-
 .../extensions/metastore_cache_test.py             |     2 +-
 tests/integration_tests/fixtures/__init__.py       |    16 +-
 tests/integration_tests/fixtures/datasource.py     |    66 +-
 tests/integration_tests/fixtures/public_role.py    |    27 +-
 tests/integration_tests/fixtures/tags.py           |    16 +-
 tests/integration_tests/fixtures/users.py          |    43 +-
 .../fixtures/world_bank_dashboard.py               |    13 +-
 tests/integration_tests/import_export_tests.py     |    21 +-
 .../key_value/commands/create_test.py              |    10 +-
 .../key_value/commands/delete_test.py              |     8 +-
 .../key_value/commands/fixtures.py                 |     3 +-
 .../key_value/commands/get_test.py                 |     9 +-
 .../key_value/commands/update_test.py              |    14 +-
 .../key_value/commands/upsert_test.py              |    14 +-
 tests/integration_tests/log_api_tests.py           |     7 +-
 ...ef90fddd_fix_schema_perm_for_datasets__tests.py |     4 +-
 .../7e67aecbf3f1_chart_ds_constraint__tests.py     |     2 +-
 ...migrate_can_view_and_drill_permission__tests.py |    37 +-
 ...baba_rm_time_range_endpoints_from_qc_3__test.py |     2 +-
 tests/integration_tests/model_tests.py             |    16 +-
 tests/integration_tests/queries/api_tests.py       |     3 +-
 .../queries/saved_queries/api_tests.py             |    18 +-
 tests/integration_tests/query_context_tests.py     |     4 +-
 tests/integration_tests/reports/alert_tests.py     |    62 +-
 tests/integration_tests/reports/api_tests.py       |    41 +-
 .../commands/create_dashboard_report_tests.py      |     6 +-
 .../commands/execute_dashboard_report_tests.py     |     6 +-
 tests/integration_tests/reports/commands_tests.py  |   487 +-
 tests/integration_tests/reports/scheduler_tests.py |   249 +-
 tests/integration_tests/reports/utils.py           |     2 +-
 tests/integration_tests/result_set_tests.py        |     2 +-
 .../security/analytics_db_safety_tests.py          |    12 +-
 tests/integration_tests/security/api_tests.py      |     7 +-
 .../security/guest_token_security_tests.py         |    15 +-
 .../security/migrate_roles_tests.py                |     3 +-
 .../security/row_level_security_tests.py           |    24 +-
 tests/integration_tests/security_tests.py          |    28 +-
 tests/integration_tests/sql_lab/api_tests.py       |    17 +-
 tests/integration_tests/sql_lab/commands_tests.py  |     2 +-
 tests/integration_tests/sql_validator_tests.py     |     1 +
 tests/integration_tests/sqla_models_tests.py       |    53 +-
 tests/integration_tests/sqllab_tests.py            |    17 +-
 tests/integration_tests/stats_logger_tests.py      |     1 +
 tests/integration_tests/strategy_tests.py          |    27 +-
 tests/integration_tests/superset_test_config.py    |    34 +-
 .../superset_test_config_thumbnails.py             |    22 +-
 .../superset_test_custom_template_processors.py    |     2 +-
 tests/integration_tests/tagging_tests.py           |     2 +-
 tests/integration_tests/tags/api_tests.py          |    53 +-
 tests/integration_tests/tags/commands_tests.py     |    50 +-
 tests/integration_tests/tags/dao_tests.py          |    20 +-
 .../integration_tests/tasks/async_queries_tests.py |     7 +-
 tests/integration_tests/test_jinja_context.py      |     2 +-
 tests/integration_tests/thumbnails_tests.py        |    82 +-
 tests/integration_tests/users/api_tests.py         |     3 +-
 .../integration_tests/utils/cache_manager_tests.py |     6 +-
 tests/integration_tests/utils/core_tests.py        |     4 +-
 tests/integration_tests/utils/csv_tests.py         |     2 +-
 tests/integration_tests/utils/encrypt_tests.py     |    12 +-
 tests/integration_tests/utils/hashing_tests.py     |     2 +-
 tests/integration_tests/utils_tests.py             |    58 +-
 tests/integration_tests/viz_tests.py               |     4 +-
 tests/unit_tests/annotation_layers/schema_tests.py |     2 +-
 .../charts/commands/importers/v1/import_test.py    |     2 +-
 tests/unit_tests/charts/test_post_processing.py    |     3 +-
 .../unit_tests/commands/databases}/__init__.py     |     0
 .../commands/databases/csv_reader_test.py          |   313 +
 .../commands/databases/excel_reader_test.py        |   209 +
 tests/unit_tests/commands/test_utils.py            |     1 -
 .../unit_tests/common/test_query_object_factory.py |     4 +-
 tests/unit_tests/dao/tag_test.py                   |    17 +-
 tests/unit_tests/dao/user_test.py                  |     5 +-
 .../commands/importers/v1/import_test.py           |     2 +-
 tests/unit_tests/databases/api_test.py             |    98 +-
 tests/unit_tests/databases/schema_tests.py         |     1 -
 .../databases/ssh_tunnel/commands/create_test.py   |     3 -
 tests/unit_tests/databases/ssh_tunnel/dao_tests.py |     6 +-
 tests/unit_tests/datasets/commands/export_test.py  |     4 +-
 .../datasets/commands/importers/v1/import_test.py  |     6 +-
 tests/unit_tests/datasource/dao_tests.py           |     1 -
 tests/unit_tests/db_engine_specs/test_athena.py    |     6 +-
 tests/unit_tests/db_engine_specs/test_bigquery.py  |     6 +-
 .../unit_tests/db_engine_specs/test_clickhouse.py  |    10 +-
 tests/unit_tests/db_engine_specs/test_crate.py     |     6 +-
 tests/unit_tests/db_engine_specs/test_crdb.py      |     6 +-
 tests/unit_tests/db_engine_specs/test_databend.py  |     6 +-
 .../unit_tests/db_engine_specs/test_databricks.py  |     6 +-
 tests/unit_tests/db_engine_specs/test_db2.py       |     7 +-
 tests/unit_tests/db_engine_specs/test_dremio.py    |     6 +-
 tests/unit_tests/db_engine_specs/test_drill.py     |     6 +-
 tests/unit_tests/db_engine_specs/test_druid.py     |     6 +-
 tests/unit_tests/db_engine_specs/test_duckdb.py    |     6 +-
 tests/unit_tests/db_engine_specs/test_dynamodb.py  |     6 +-
 .../db_engine_specs/test_elasticsearch.py          |     8 +-
 tests/unit_tests/db_engine_specs/test_firebird.py  |     6 +-
 tests/unit_tests/db_engine_specs/test_firebolt.py  |     6 +-
 tests/unit_tests/db_engine_specs/test_hana.py      |     6 +-
 tests/unit_tests/db_engine_specs/test_hive.py      |     6 +-
 tests/unit_tests/db_engine_specs/test_impala.py    |     6 +-
 tests/unit_tests/db_engine_specs/test_kusto.py     |    10 +-
 tests/unit_tests/db_engine_specs/test_kylin.py     |     6 +-
 tests/unit_tests/db_engine_specs/test_mssql.py     |     4 +-
 tests/unit_tests/db_engine_specs/test_mysql.py     |     8 +-
 tests/unit_tests/db_engine_specs/test_oracle.py    |     6 +-
 tests/unit_tests/db_engine_specs/test_postgres.py  |     6 +-
 tests/unit_tests/db_engine_specs/test_redshift.py  |     6 +-
 tests/unit_tests/db_engine_specs/test_rockset.py   |     6 +-
 tests/unit_tests/db_engine_specs/test_snowflake.py |     6 +-
 tests/unit_tests/db_engine_specs/test_sqlite.py    |     6 +-
 tests/unit_tests/db_engine_specs/test_trino.py     |     4 +-
 tests/unit_tests/explore/api_test.py               |     2 -
 tests/unit_tests/explore/utils_test.py             |    11 +-
 tests/unit_tests/extensions/ssh_test.py            |     3 +-
 tests/unit_tests/fixtures/common.py                |     4 +-
 tests/unit_tests/jinja_context_test.py             |     6 +-
 tests/unit_tests/legacy_tests.py                   |     2 +-
 tests/unit_tests/models/sql_lab_test.py            |     2 +-
 tests/unit_tests/notifications/slack_tests.py      |     1 -
 tests/unit_tests/queries/query_object_test.py      |     1 -
 tests/unit_tests/reports/schemas_test.py           |     2 +-
 tests/unit_tests/scripts/docker_build.py           |     5 +-
 .../unit_tests/scripts/tag_latest_release_test.py  |     1 -
 tests/unit_tests/sql_lab_test.py                   |     8 +-
 tests/unit_tests/sql_parse_tests.py                |   257 +-
 tests/unit_tests/tags/commands/create_test.py      |    12 +-
 tests/unit_tests/tags/commands/update_test.py      |     8 +-
 tests/unit_tests/tasks/test_utils.py               |     2 +-
 tests/unit_tests/thumbnails/test_digest.py         |    34 +-
 tests/unit_tests/utils/docker.py                   |     3 +-
 tests/unit_tests/utils/lock_tests.py               |     2 +-
 tests/unit_tests/utils/test_core.py                |     2 -
 tests/unit_tests/utils/urls_tests.py               |     1 -
 689 files changed, 251161 insertions(+), 243575 deletions(-)
 copy superset-websocket/config.example.json => 
docker/superset-websocket/config.json (85%)
 rename docs/docs/{installation => configuration}/alerts-reports.mdx (98%)
 rename docs/docs/{installation => configuration}/async-queries-celery.mdx 
(100%)
 rename docs/docs/{installation => configuration}/cache.mdx (96%)
 rename docs/docs/{installation => configuration}/configuring-superset.mdx 
(100%)
 rename docs/docs/{miscellaneous => configuration}/country-map-tools.mdx (100%)
 rename docs/docs/{installation => configuration}/event-logging.mdx (100%)
 rename docs/docs/{miscellaneous => 
configuration}/importing-exporting-datasources.mdx (100%)
 rename docs/docs/{miscellaneous => configuration}/issue-codes.mdx (100%)
 rename docs/docs/{installation => configuration}/networking-settings.mdx (100%)
 rename docs/docs/{installation => configuration}/setup-ssh-tunneling.mdx (100%)
 rename docs/docs/{installation => configuration}/sql-templating.mdx (99%)
 rename docs/docs/{miscellaneous => configuration}/timezones.mdx (100%)
 delete mode 100644 docs/docs/contributing/_category_.json
 create mode 100644 docs/docs/contributing/erd.mdx
 delete mode 100644 docs/docs/creating-charts-dashboards/_category_.json
 delete mode 100644 docs/docs/databases/_category_.json
 delete mode 100644 docs/docs/installation/_category_.json
 rename docs/docs/installation/{docker.mdx => docker-builds.mdx} (98%)
 rename docs/docs/installation/{installing-superset-using-docker-compose.mdx => 
docker-compose.mdx} (99%)
 rename docs/docs/installation/{running-on-kubernetes.mdx => kubernetes.mdx} 
(99%)
 rename docs/docs/installation/{installing-superset-from-pypi.mdx => pypi.mdx} 
(98%)
 delete mode 100644 docs/docs/miscellaneous/_category_.json
 delete mode 100644 docs/docs/security/_category_.json
 rename docs/docs/{miscellaneous => using-superset}/chart-params.mdx (100%)
 rename docs/docs/{creating-charts-dashboards => 
using-superset}/creating-your-first-dashboard.mdx (97%)
 rename docs/docs/{creating-charts-dashboards => 
using-superset}/exploring-data.mdx (100%)
 copy superset-frontend/src/components/Table/cell-renderers/NullCell/index.tsx 
=> docs/src/components/InteractiveERDSVG.jsx (69%)
 create mode 100644 docs/static/img/erd.svg
 create mode 100644 scripts/erd/erd.puml
 create mode 100644 scripts/erd/erd.py
 copy docs/static/.nojekyll => scripts/erd/erd.svg (100%)
 create mode 100644 scripts/erd/erd.template.puml
 create mode 100644 scripts/templates/erd.plantuml.template
 delete mode 100644 superset/commands/database/csv_import.py
 copy superset/{advanced_data_type => commands/database/uploaders}/__init__.py 
(100%)
 rename superset/commands/database/{excel_import.py => uploaders/base.py} (65%)
 create mode 100644 superset/commands/database/uploaders/csv_reader.py
 create mode 100644 superset/commands/database/uploaders/excel_reader.py
 copy superset/translations/{en => ar}/LC_MESSAGES/messages.json (96%)
 copy superset/translations/{messages.pot => ar/LC_MESSAGES/messages.po} (99%)
 delete mode 100644 
tests/integration_tests/databases/commands/csv_upload_test.py
 delete mode 100644 
tests/integration_tests/databases/commands/excel_upload_test.py
 create mode 100644 tests/integration_tests/databases/commands/upload_test.py
 copy {superset/advanced_data_type => 
tests/unit_tests/commands/databases}/__init__.py (100%)
 create mode 100644 tests/unit_tests/commands/databases/csv_reader_test.py
 create mode 100644 tests/unit_tests/commands/databases/excel_reader_test.py

Reply via email to