You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by vi...@apache.org on 2021/01/15 11:48:36 UTC

[superset] branch 1.0 updated (46fd85a -> a1f53fb)

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

villebro pushed a change to branch 1.0
in repository https://gitbox.apache.org/repos/asf/superset.git.


    from 46fd85a  update changelog with rc2 entries
     new 72977fc  fix: impose dataset ownership check on old API (#12491)
     new cf69f29  ci: remove refs/tags from docker tags on a release (#12518)
     new 5791f23  fix: lowercase all columns in examples (#12530)
     new 027e207  fix(explore): time table control panel (#12532)
     new 603ab75  fix(explore): Add Time section back to FilterBox (#12537)
     new 5f2de1d  Fixing Pinot queries for time granularities: WEEKS/MONTHS/QUARTERS/YEARS (#12536)
     new 52b581f  fix: Select options overflowing Save chart modal on Explore view (#12522)
     new a1f53fb  Fix list filters vertical alignment (#12497)

The 8 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/docker_build_push.sh             |   6 +-
 UPDATING.md                                        |   1 +
 superset-frontend/package-lock.json                | 115 ++++++++++-----------
 .../explore/components/SaveModal_spec.jsx          |   7 +-
 .../src/components/ListView/Filters/Base.ts        |   2 +-
 .../src/explore/components/SaveModal.tsx           |  12 ++-
 .../src/explore/controlPanels/TimeTable.js         |  10 +-
 .../src/visualizations/FilterBox/controlPanel.jsx  |   2 +
 superset/commands/exceptions.py                    |   2 +-
 superset/connectors/sqla/views.py                  |  22 ++++
 superset/db_engine_specs/pinot.py                  |  26 ++++-
 .../Are_you_an_ethnic_minority_in_your_city.yaml   |   2 +-
 .../charts/Breakdown_of_Developer_Type.yaml        |   2 +-
 superset/examples/configs/charts/Commute_Time.yaml |   2 +-
 ...elopers_Is_this_your_first_development_job.yaml |   2 +-
 .../configs/charts/Ethnic_Minority__Gender.yaml    |   4 +-
 .../examples/configs/charts/Filter_Segments.yaml   |   9 +-
 .../configs/charts/Filtering_Vaccines.yaml         |   7 +-
 .../configs/charts/First_Time_Developer.yaml       |   4 +-
 .../charts/First_Time_Developer__Commute_Time.yaml |   4 +-
 superset/examples/configs/charts/Games.yaml        |  20 ++--
 .../examples/configs/charts/Games_per_Genre.yaml   |   6 +-
 .../configs/charts/Games_per_Genre_over_time.yaml  |   6 +-
 superset/examples/configs/charts/Gender.yaml       |   2 +-
 .../How_much_do_you_expect_to_earn_0_-_100k.yaml   |   2 +-
 .../charts/Last_Year_Income_Distribution.yaml      |   2 +-
 .../configs/charts/Most_Dominant_Platforms.yaml    |   8 +-
 .../Number_of_Deals_for_each_Combination.yaml      |   6 +-
 ...mes_That_Hit_100k_in_Sales_By_Release_Year.yaml |   4 +-
 .../charts/Overall_Sales_By_Product_Line.yaml      |   6 +-
 .../charts/Popular_Genres_Across_Platforms.yaml    |   6 +-
 .../Proportion_of_Revenue_by_Product_Line.yaml     |   6 +-
 .../charts/Publishers_With_Most_Titles.yaml        |  16 +--
 .../examples/configs/charts/Quarterly_Sales.yaml   |   4 +-
 .../charts/Quarterly_Sales_By_Product_Line.yaml    |   6 +-
 .../configs/charts/Relocation_ability.yaml         |   2 +-
 .../configs/charts/Revenue_by_Deal_Size.yaml       |   6 +-
 .../charts/Rise__Fall_of_Video_Game_Consoles.yaml  |   8 +-
 .../Seasonality_of_Revenue_per_Product_Line.yaml   |   6 +-
 ...op_10_Games_Proportion_of_Sales_in_Markets.yaml |  14 +--
 .../examples/configs/charts/Total_Items_Sold.yaml  |   4 +-
 .../charts/Total_Items_Sold_By_Product_Line.yaml   |   6 +-
 .../examples/configs/charts/Total_Revenue.yaml     |   4 +-
 .../Total_Sales_per_Market_Grouped_by_Genre.yaml   |  14 +--
 .../Vaccine_Candidates_per_Approach__Stage.yaml    |   4 +-
 .../charts/Vaccine_Candidates_per_Country.yaml     |   2 +-
 .../charts/Vaccine_Candidates_per_Country_261.yaml |   4 +-
 .../Vaccine_Candidates_per_Country__Stage.yaml     |   4 +-
 .../Vaccine_Candidates_per_Country__Stage_749.yaml |   4 +-
 .../charts/Vaccine_Candidates_per_Phase.yaml       |   2 +-
 .../charts/Vaccine_Candidates_per_Phase_587.yaml   |   2 +-
 .../configs/charts/Vehicle_Sales_Filter.yaml       |   8 +-
 .../configs/charts/Video_Game_Sales_Filter.yaml    |  11 +-
 .../configs/charts/Work_Location_Preference.yaml   |   2 +-
 .../configs/datasets/examples/FCC_2018_Survey.yaml |  18 ++--
 .../datasets/examples/cleaned_sales_data.yaml      |  52 +++++-----
 .../configs/datasets/examples/covid_vaccines.yaml  |  44 ++++----
 .../datasets/examples/video_game_sales.yaml        |  24 ++---
 superset/views/datasource.py                       |  12 ++-
 tests/db_engine_specs/pinot_tests.py               |  12 ++-
 60 files changed, 339 insertions(+), 271 deletions(-)


[superset] 06/08: Fixing Pinot queries for time granularities: WEEKS/MONTHS/QUARTERS/YEARS (#12536)

Posted by vi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

villebro pushed a commit to branch 1.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 5f2de1df71a13866a86465c9d8c11881663b617a
Author: Xiang Fu <fx...@gmail.com>
AuthorDate: Fri Jan 15 01:05:31 2021 -0800

    Fixing Pinot queries for time granularities: WEEKS/MONTHS/QUARTERS/YEARS (#12536)
---
 superset/db_engine_specs/pinot.py    | 26 +++++++++++++++++++++-----
 tests/db_engine_specs/pinot_tests.py | 12 ++++++++++--
 2 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/superset/db_engine_specs/pinot.py b/superset/db_engine_specs/pinot.py
index 7a11d08..1f504b8 100644
--- a/superset/db_engine_specs/pinot.py
+++ b/superset/db_engine_specs/pinot.py
@@ -35,10 +35,10 @@ class PinotEngineSpec(BaseEngineSpec):  # pylint: disable=abstract-method
         "PT1M": "1:MINUTES",
         "PT1H": "1:HOURS",
         "P1D": "1:DAYS",
-        "P1W": "1:WEEKS",
-        "P1M": "1:MONTHS",
-        "P0.25Y": "3:MONTHS",
-        "P1Y": "1:YEARS",
+        "P1W": "week",
+        "P1M": "month",
+        "P0.25Y": "quarter",
+        "P1Y": "year",
     }
 
     _python_to_java_time_patterns: Dict[str, str] = {
@@ -50,6 +50,17 @@ class PinotEngineSpec(BaseEngineSpec):  # pylint: disable=abstract-method
         "%S": "ss",
     }
 
+    _use_date_trunc_function: Dict[str, bool] = {
+        "PT1S": False,
+        "PT1M": False,
+        "PT1H": False,
+        "P1D": False,
+        "P1W": True,
+        "P1M": True,
+        "P0.25Y": True,
+        "P1Y": True,
+    }
+
     @classmethod
     def get_timestamp_expr(
         cls,
@@ -86,8 +97,13 @@ class PinotEngineSpec(BaseEngineSpec):  # pylint: disable=abstract-method
                 raise NotImplementedError("No pinot grain spec for " + str(time_grain))
         else:
             return TimestampExpression("{{col}}", col)
+
         # In pinot the output is a string since there is no timestamp column like pg
-        time_expr = f"DATETIMECONVERT({{col}}, '{tf}', '{tf}', '{granularity}')"
+        if cls._use_date_trunc_function.get(time_grain):
+            time_expr = f"DATETRUNC('{granularity}', {{col}}, '{seconds_or_ms}')"
+        else:
+            time_expr = f"DATETIMECONVERT({{col}}, '{tf}', '{tf}', '{granularity}')"
+
         return TimestampExpression(time_expr, col)
 
     @classmethod
diff --git a/tests/db_engine_specs/pinot_tests.py b/tests/db_engine_specs/pinot_tests.py
index 9732827..4dcca0c 100644
--- a/tests/db_engine_specs/pinot_tests.py
+++ b/tests/db_engine_specs/pinot_tests.py
@@ -23,11 +23,19 @@ from tests.db_engine_specs.base_tests import TestDbEngineSpec
 class TestPinotDbEngineSpec(TestDbEngineSpec):
     """ Tests pertaining to our Pinot database support """
 
+    def test_pinot_time_expression_sec_one_1d_grain(self):
+        col = column("tstamp")
+        expr = PinotEngineSpec.get_timestamp_expr(col, "epoch_s", "P1D")
+        result = str(expr.compile())
+        self.assertEqual(
+            result,
+            "DATETIMECONVERT(tstamp, '1:SECONDS:EPOCH', '1:SECONDS:EPOCH', '1:DAYS')",
+        )  # noqa
+
     def test_pinot_time_expression_sec_one_1m_grain(self):
         col = column("tstamp")
         expr = PinotEngineSpec.get_timestamp_expr(col, "epoch_s", "P1M")
         result = str(expr.compile())
         self.assertEqual(
-            result,
-            "DATETIMECONVERT(tstamp, '1:SECONDS:EPOCH', '1:SECONDS:EPOCH', '1:MONTHS')",
+            result, "DATETRUNC('month', tstamp, 'SECONDS')",
         )  # noqa


[superset] 08/08: Fix list filters vertical alignment (#12497)

Posted by vi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

villebro pushed a commit to branch 1.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit a1f53fb645d1430b4970907c0f7ced096db38cb5
Author: Michael S. Molina <70...@users.noreply.github.com>
AuthorDate: Wed Jan 13 18:58:05 2021 -0300

    Fix list filters vertical alignment (#12497)
---
 superset-frontend/src/components/ListView/Filters/Base.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/superset-frontend/src/components/ListView/Filters/Base.ts b/superset-frontend/src/components/ListView/Filters/Base.ts
index 91554c3..4d10c65 100644
--- a/superset-frontend/src/components/ListView/Filters/Base.ts
+++ b/superset-frontend/src/components/ListView/Filters/Base.ts
@@ -28,10 +28,10 @@ export const FilterContainer = styled.div`
   display: inline-flex;
   margin-right: 2em;
   font-size: ${({ theme }) => theme.typography.sizes.s}px;
+  align-items: center;
 `;
 
 export const FilterTitle = styled.label`
   font-weight: bold;
-  line-height: 27px;
   margin: 0 0.4em 0 0;
 `;


[superset] 02/08: ci: remove refs/tags from docker tags on a release (#12518)

Posted by vi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

villebro pushed a commit to branch 1.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit cf69f29144d8ac999236306507da5812f6dadbbf
Author: Daniel Vaz Gaspar <da...@gmail.com>
AuthorDate: Fri Jan 15 07:23:59 2021 +0000

    ci: remove refs/tags from docker tags on a release (#12518)
    
    * ci: remove refs/tags from docker tags on a release
    
    * wider head
---
 .github/workflows/docker_build_push.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/docker_build_push.sh b/.github/workflows/docker_build_push.sh
index dbfd134..4291b6c 100755
--- a/.github/workflows/docker_build_push.sh
+++ b/.github/workflows/docker_build_push.sh
@@ -21,14 +21,14 @@ SHA=$(git rev-parse HEAD)
 REPO_NAME="apache/incubator-superset"
 
 if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
-  REFSPEC=$(echo "${GITHUB_HEAD_REF}" | sed 's/[^a-zA-Z0-9]/-/' | head -c 20)
+  REFSPEC=$(echo "${GITHUB_HEAD_REF}" | sed 's/[^a-zA-Z0-9]/-/' | head -c 40)
   PR_NUM=$(echo "${GITHUB_REF}" | sed 's:refs/pull/::' | sed 's:/merge::')
   LATEST_TAG="pr-${PR_NUM}"
 elif [[ "${GITHUB_EVENT_NAME}" == "release" ]]; then
-  REFSPEC="${GITHUB_REF}"
+  REFSPEC=$(echo "${GITHUB_REF}" | sed 's:refs/tags/::' | head -c 40)
   LATEST_TAG="${REFSPEC}"
 else
-  REFSPEC=$(echo "${GITHUB_REF}" | sed 's:refs/heads/::' | sed 's/[^a-zA-Z0-9]/-/' | head -c 20)
+  REFSPEC=$(echo "${GITHUB_REF}" | sed 's:refs/heads/::' | sed 's/[^a-zA-Z0-9]/-/' | head -c 40)
   LATEST_TAG="${REFSPEC}"
 fi
 


[superset] 04/08: fix(explore): time table control panel (#12532)

Posted by vi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

villebro pushed a commit to branch 1.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 027e2075f5c486eec8ca08260f7bad8388367caa
Author: Jesse Yang <je...@airbnb.com>
AuthorDate: Thu Jan 14 19:17:35 2021 -0800

    fix(explore): time table control panel (#12532)
---
 superset-frontend/src/explore/controlPanels/TimeTable.js | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/superset-frontend/src/explore/controlPanels/TimeTable.js b/superset-frontend/src/explore/controlPanels/TimeTable.js
index cae1d8d..c370f30 100644
--- a/superset-frontend/src/explore/controlPanels/TimeTable.js
+++ b/superset-frontend/src/explore/controlPanels/TimeTable.js
@@ -17,9 +17,11 @@
  * under the License.
  */
 import { t, validateNonEmpty } from '@superset-ui/core';
+import { sections } from '@superset-ui/chart-controls';
 
 export default {
   controlPanelSections: [
+    sections.legacyTimeseriesTime,
     {
       label: t('Query'),
       expanded: true,
@@ -61,12 +63,4 @@ export default {
       multiple: false,
     },
   },
-  sectionOverrides: {
-    druidTimeSeries: {
-      controlSetRows: [['granularity', 'druid_time_origin'], ['time_range']],
-    },
-    sqlaTimeSeries: {
-      controlSetRows: [['granularity_sqla', 'time_grain_sqla'], ['time_range']],
-    },
-  },
 };


[superset] 01/08: fix: impose dataset ownership check on old API (#12491)

Posted by vi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

villebro pushed a commit to branch 1.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 72977fc71f67072bc80f7d58bc21f3bd921ae0d5
Author: Daniel Vaz Gaspar <da...@gmail.com>
AuthorDate: Wed Jan 13 18:06:41 2021 +0000

    fix: impose dataset ownership check on old API (#12491)
    
    * fix: impose dataset ownership check on old API
    
    * update UPDATING.md
    
    * partially protect the old MVC also
    
    * prevent metric and column add and update
---
 UPDATING.md                       |  1 +
 superset/commands/exceptions.py   |  2 +-
 superset/connectors/sqla/views.py | 22 ++++++++++++++++++++++
 superset/views/datasource.py      | 12 +++++++++++-
 4 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/UPDATING.md b/UPDATING.md
index 6da7eb2..9240ee7 100644
--- a/UPDATING.md
+++ b/UPDATING.md
@@ -24,6 +24,7 @@ assists people when migrating to a new version.
 
 ## 1.0.0
 
+- [11509](https://github.com/apache/superset/pull/12491): Dataset metadata updates check user ownership, only owners or an Admin are allowed.
 - Security simplification (SIP-19), the following permission domains were simplified:
     - [12072](https://github.com/apache/superset/pull/12072): `Query` with `can_read`, `can_write`
     - [12036](https://github.com/apache/superset/pull/12036): `Database` with `can_read`, `can_write`.
diff --git a/superset/commands/exceptions.py b/superset/commands/exceptions.py
index 0eb5dba..9694755 100644
--- a/superset/commands/exceptions.py
+++ b/superset/commands/exceptions.py
@@ -69,7 +69,7 @@ class DeleteFailedError(CommandException):
 
 
 class ForbiddenError(CommandException):
-    status = 500
+    status = 403
     message = "Action is forbidden"
 
 
diff --git a/superset/connectors/sqla/views.py b/superset/connectors/sqla/views.py
index a9ae564..903cef2 100644
--- a/superset/connectors/sqla/views.py
+++ b/superset/connectors/sqla/views.py
@@ -37,6 +37,7 @@ from superset.constants import MODEL_VIEW_RW_METHOD_PERMISSION_MAP, RouteMethod
 from superset.typing import FlaskResponse
 from superset.utils import core as utils
 from superset.views.base import (
+    check_ownership,
     create_table_permissions,
     DatasourceFilter,
     DeleteMixin,
@@ -171,6 +172,15 @@ class TableColumnInlineView(  # pylint: disable=too-many-ancestors
 
     edit_form_extra_fields = add_form_extra_fields
 
+    def pre_add(self, item: "models.SqlMetric") -> None:
+        check_ownership(item.table)
+
+    def pre_update(self, item: "models.SqlMetric") -> None:
+        check_ownership(item.table)
+
+    def pre_delete(self, item: "models.SqlMetric") -> None:
+        check_ownership(item.table)
+
 
 class SqlMetricInlineView(  # pylint: disable=too-many-ancestors
     CompactCRUDMixin, SupersetModelView
@@ -245,6 +255,15 @@ class SqlMetricInlineView(  # pylint: disable=too-many-ancestors
 
     edit_form_extra_fields = add_form_extra_fields
 
+    def pre_add(self, item: "models.SqlMetric") -> None:
+        check_ownership(item.table)
+
+    def pre_update(self, item: "models.SqlMetric") -> None:
+        check_ownership(item.table)
+
+    def pre_delete(self, item: "models.SqlMetric") -> None:
+        check_ownership(item.table)
+
 
 class RowLevelSecurityListWidget(
     SupersetListWidget
@@ -459,6 +478,9 @@ class TableModelView(  # pylint: disable=too-many-ancestors
     def pre_add(self, item: "TableModelView") -> None:
         validate_sqlatable(item)
 
+    def pre_update(self, item: "TableModelView") -> None:
+        check_ownership(item)
+
     def post_add(  # pylint: disable=arguments-differ
         self,
         item: "TableModelView",
diff --git a/superset/views/datasource.py b/superset/views/datasource.py
index 7724d1e..5c9a41d 100644
--- a/superset/views/datasource.py
+++ b/superset/views/datasource.py
@@ -24,8 +24,10 @@ from sqlalchemy.orm.exc import NoResultFound
 
 from superset import db
 from superset.connectors.connector_registry import ConnectorRegistry
-from superset.exceptions import SupersetException
+from superset.datasets.commands.exceptions import DatasetForbiddenError
+from superset.exceptions import SupersetException, SupersetSecurityException
 from superset.typing import FlaskResponse
+from superset.views.base import check_ownership
 
 from .base import api, BaseSupersetView, handle_api_exception, json_error_response
 
@@ -52,6 +54,14 @@ class Datasource(BaseSupersetView):
         orm_datasource.database_id = database_id
 
         if "owners" in datasource_dict and orm_datasource.owner_class is not None:
+            # Check ownership
+            try:
+                check_ownership(orm_datasource)
+            except SupersetSecurityException:
+                return json_error_response(
+                    f"{DatasetForbiddenError.message}", DatasetForbiddenError.status
+                )
+
             datasource_dict["owners"] = (
                 db.session.query(orm_datasource.owner_class)
                 .filter(orm_datasource.owner_class.id.in_(datasource_dict["owners"]))


[superset] 05/08: fix(explore): Add Time section back to FilterBox (#12537)

Posted by vi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

villebro pushed a commit to branch 1.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 603ab75a62e04c32e5fd0a99c2a7406737686229
Author: Jesse Yang <je...@airbnb.com>
AuthorDate: Thu Jan 14 22:09:33 2021 -0800

    fix(explore): Add Time section back to FilterBox (#12537)
---
 superset-frontend/package-lock.json                | 115 ++++++++++-----------
 .../src/visualizations/FilterBox/controlPanel.jsx  |   2 +
 2 files changed, 59 insertions(+), 58 deletions(-)

diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json
index 7200319..7fc12b3 100644
--- a/superset-frontend/package-lock.json
+++ b/superset-frontend/package-lock.json
@@ -25318,28 +25318,28 @@
           "dependencies": {
             "abbrev": {
               "version": "1.1.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
               "dev": true,
               "optional": true
             },
             "ansi-regex": {
               "version": "2.1.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
               "dev": true,
               "optional": true
             },
             "aproba": {
               "version": "1.2.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
               "dev": true,
               "optional": true
             },
             "are-we-there-yet": {
               "version": "1.1.5",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
               "dev": true,
               "optional": true,
@@ -25350,14 +25350,14 @@
             },
             "balanced-match": {
               "version": "1.0.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
               "dev": true,
               "optional": true
             },
             "brace-expansion": {
               "version": "1.1.11",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
               "dev": true,
               "optional": true,
@@ -25368,35 +25368,35 @@
             },
             "code-point-at": {
               "version": "1.1.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
               "dev": true,
               "optional": true
             },
             "concat-map": {
               "version": "0.0.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
               "dev": true,
               "optional": true
             },
             "console-control-strings": {
               "version": "1.1.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
               "dev": true,
               "optional": true
             },
             "core-util-is": {
               "version": "1.0.2",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
               "dev": true,
               "optional": true
             },
             "debug": {
               "version": "4.1.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
               "dev": true,
               "optional": true,
@@ -25406,35 +25406,35 @@
             },
             "deep-extend": {
               "version": "0.6.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
               "dev": true,
               "optional": true
             },
             "delegates": {
               "version": "1.0.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
               "dev": true,
               "optional": true
             },
             "detect-libc": {
               "version": "1.0.3",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
               "dev": true,
               "optional": true
             },
             "fs.realpath": {
               "version": "1.0.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
               "dev": true,
               "optional": true
             },
             "gauge": {
               "version": "2.7.4",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
               "dev": true,
               "optional": true,
@@ -25451,7 +25451,7 @@
             },
             "glob": {
               "version": "7.1.3",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
               "dev": true,
               "optional": true,
@@ -25466,14 +25466,14 @@
             },
             "has-unicode": {
               "version": "2.0.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
               "dev": true,
               "optional": true
             },
             "iconv-lite": {
               "version": "0.4.24",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
               "dev": true,
               "optional": true,
@@ -25483,7 +25483,7 @@
             },
             "ignore-walk": {
               "version": "3.0.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
               "dev": true,
               "optional": true,
@@ -25493,7 +25493,7 @@
             },
             "inflight": {
               "version": "1.0.6",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
               "dev": true,
               "optional": true,
@@ -25504,14 +25504,14 @@
             },
             "inherits": {
               "version": "2.0.3",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
               "dev": true,
               "optional": true
             },
             "is-fullwidth-code-point": {
               "version": "1.0.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
               "dev": true,
               "optional": true,
@@ -25521,14 +25521,14 @@
             },
             "isarray": {
               "version": "1.0.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
               "dev": true,
               "optional": true
             },
             "minimatch": {
               "version": "3.0.4",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
               "dev": true,
               "optional": true,
@@ -25545,14 +25545,14 @@
             },
             "ms": {
               "version": "2.1.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
               "dev": true,
               "optional": true
             },
             "needle": {
               "version": "2.3.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==",
               "dev": true,
               "optional": true,
@@ -25564,7 +25564,7 @@
             },
             "node-pre-gyp": {
               "version": "0.12.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
               "dev": true,
               "optional": true,
@@ -25583,7 +25583,7 @@
             },
             "nopt": {
               "version": "4.0.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
               "dev": true,
               "optional": true,
@@ -25594,14 +25594,14 @@
             },
             "npm-bundled": {
               "version": "1.0.6",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
               "dev": true,
               "optional": true
             },
             "npm-packlist": {
               "version": "1.4.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
               "dev": true,
               "optional": true,
@@ -25612,7 +25612,7 @@
             },
             "npmlog": {
               "version": "4.1.2",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
               "dev": true,
               "optional": true,
@@ -25625,21 +25625,21 @@
             },
             "number-is-nan": {
               "version": "1.0.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
               "dev": true,
               "optional": true
             },
             "object-assign": {
               "version": "4.1.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
               "dev": true,
               "optional": true
             },
             "once": {
               "version": "1.4.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
               "dev": true,
               "optional": true,
@@ -25649,21 +25649,21 @@
             },
             "os-homedir": {
               "version": "1.0.2",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
               "dev": true,
               "optional": true
             },
             "os-tmpdir": {
               "version": "1.0.2",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
               "dev": true,
               "optional": true
             },
             "osenv": {
               "version": "0.1.5",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
               "dev": true,
               "optional": true,
@@ -25674,21 +25674,21 @@
             },
             "path-is-absolute": {
               "version": "1.0.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
               "dev": true,
               "optional": true
             },
             "process-nextick-args": {
               "version": "2.0.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
               "dev": true,
               "optional": true
             },
             "rc": {
               "version": "1.2.8",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
               "dev": true,
               "optional": true,
@@ -25701,7 +25701,7 @@
             },
             "readable-stream": {
               "version": "2.3.6",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
               "dev": true,
               "optional": true,
@@ -25717,7 +25717,7 @@
             },
             "rimraf": {
               "version": "2.6.3",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
               "dev": true,
               "optional": true,
@@ -25727,49 +25727,49 @@
             },
             "safe-buffer": {
               "version": "5.1.2",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
               "dev": true,
               "optional": true
             },
             "safer-buffer": {
               "version": "2.1.2",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
               "dev": true,
               "optional": true
             },
             "sax": {
               "version": "1.2.4",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
               "dev": true,
               "optional": true
             },
             "semver": {
               "version": "5.7.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
               "dev": true,
               "optional": true
             },
             "set-blocking": {
               "version": "2.0.0",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
               "dev": true,
               "optional": true
             },
             "signal-exit": {
               "version": "3.0.2",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
               "dev": true,
               "optional": true
             },
             "string-width": {
               "version": "1.0.2",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
               "dev": true,
               "optional": true,
@@ -25781,7 +25781,7 @@
             },
             "string_decoder": {
               "version": "1.1.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
               "dev": true,
               "optional": true,
@@ -25791,7 +25791,7 @@
             },
             "strip-ansi": {
               "version": "3.0.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
               "dev": true,
               "optional": true,
@@ -25801,21 +25801,21 @@
             },
             "strip-json-comments": {
               "version": "2.0.1",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
               "dev": true,
               "optional": true
             },
             "util-deprecate": {
               "version": "1.0.2",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
               "dev": true,
               "optional": true
             },
             "wide-align": {
               "version": "1.1.3",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
               "dev": true,
               "optional": true,
@@ -25825,7 +25825,7 @@
             },
             "wrappy": {
               "version": "1.0.2",
-              "resolved": "",
+              "resolved": false,
               "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
               "dev": true,
               "optional": true
@@ -39129,8 +39129,7 @@
     "lodash.debounce": {
       "version": "4.0.8",
       "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
-      "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
-      "dev": true
+      "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
     },
     "lodash.escape": {
       "version": "4.0.1",
diff --git a/superset-frontend/src/visualizations/FilterBox/controlPanel.jsx b/superset-frontend/src/visualizations/FilterBox/controlPanel.jsx
index cfdbecf..11045ad 100644
--- a/superset-frontend/src/visualizations/FilterBox/controlPanel.jsx
+++ b/superset-frontend/src/visualizations/FilterBox/controlPanel.jsx
@@ -18,9 +18,11 @@
  */
 import React from 'react';
 import { t } from '@superset-ui/core';
+import { sections } from '@superset-ui/chart-controls';
 
 export default {
   controlPanelSections: [
+    sections.legacyTimeseriesTime,
     {
       label: t('Filters Configuration'),
       expanded: true,


[superset] 07/08: fix: Select options overflowing Save chart modal on Explore view (#12522)

Posted by vi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

villebro pushed a commit to branch 1.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 52b581f9229ef0aabc42bb0ad0b4504aac6cd2c8
Author: Kamil Gabryjelski <ka...@gmail.com>
AuthorDate: Fri Jan 15 11:43:33 2021 +0100

    fix: Select options overflowing Save chart modal on Explore view (#12522)
    
    * Fix select options overflowing modal
    
    * fix unit test
    
    Co-authored-by: Ville Brofeldt <vi...@gmail.com>
---
 .../spec/javascripts/explore/components/SaveModal_spec.jsx   |  7 +++----
 superset-frontend/src/explore/components/SaveModal.tsx       | 12 +++++++++---
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx b/superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx
index c15b16d..66e7706 100644
--- a/superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx
+++ b/superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx
@@ -29,10 +29,9 @@ import Button from 'src/components/Button';
 import sinon from 'sinon';
 import fetchMock from 'fetch-mock';
 
-import Modal from 'src/common/components/Modal';
 import * as exploreUtils from 'src/explore/exploreUtils';
 import * as saveModalActions from 'src/explore/actions/saveModalActions';
-import SaveModal from 'src/explore/components/SaveModal';
+import SaveModal, { StyledModal } from 'src/explore/components/SaveModal';
 
 describe('SaveModal', () => {
   const middlewares = [thunk];
@@ -79,11 +78,11 @@ describe('SaveModal', () => {
 
   it('renders a Modal with the right set of components', () => {
     const wrapper = getWrapper();
-    expect(wrapper.find(Modal)).toExist();
+    expect(wrapper.find(StyledModal)).toExist();
     expect(wrapper.find(FormControl)).toExist();
     expect(wrapper.find(Radio)).toHaveLength(2);
 
-    const footerWrapper = shallow(wrapper.find('Modal').props().footer);
+    const footerWrapper = shallow(wrapper.find(StyledModal).props().footer);
     expect(footerWrapper.find(Button)).toHaveLength(3);
   });
 
diff --git a/superset-frontend/src/explore/components/SaveModal.tsx b/superset-frontend/src/explore/components/SaveModal.tsx
index dab88f2..e079b1a 100644
--- a/superset-frontend/src/explore/components/SaveModal.tsx
+++ b/superset-frontend/src/explore/components/SaveModal.tsx
@@ -19,7 +19,7 @@
 /* eslint camelcase: 0 */
 import React from 'react';
 import { Alert, FormControl, FormGroup, Radio } from 'react-bootstrap';
-import { JsonObject, t } from '@superset-ui/core';
+import { JsonObject, t, styled } from '@superset-ui/core';
 import ReactMarkdown from 'react-markdown';
 import Modal from 'src/common/components/Modal';
 import Button from 'src/components/Button';
@@ -55,6 +55,12 @@ type SaveModalState = {
   action: ActionType;
 };
 
+export const StyledModal = styled(Modal)`
+  .ant-modal-body {
+    overflow: visible;
+  }
+`;
+
 class SaveModal extends React.Component<SaveModalProps, SaveModalState> {
   constructor(props: SaveModalProps) {
     super(props);
@@ -153,7 +159,7 @@ class SaveModal extends React.Component<SaveModalProps, SaveModalState> {
 
   render() {
     return (
-      <Modal
+      <StyledModal
         show
         onHide={this.props.onHide}
         title={t('Save Chart')}
@@ -261,7 +267,7 @@ class SaveModal extends React.Component<SaveModalProps, SaveModalState> {
             />
           </FormGroup>
         </div>
-      </Modal>
+      </StyledModal>
     );
   }
 }


[superset] 03/08: fix: lowercase all columns in examples (#12530)

Posted by vi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

villebro pushed a commit to branch 1.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 5791f23e731d8edd64bfcbbb9384fe0f080acec2
Author: Beto Dealmeida <ro...@dealmeida.net>
AuthorDate: Thu Jan 14 23:28:52 2021 -0800

    fix: lowercase all columns in examples (#12530)
---
 .../Are_you_an_ethnic_minority_in_your_city.yaml   |  2 +-
 .../charts/Breakdown_of_Developer_Type.yaml        |  2 +-
 superset/examples/configs/charts/Commute_Time.yaml |  2 +-
 ...elopers_Is_this_your_first_development_job.yaml |  2 +-
 .../configs/charts/Ethnic_Minority__Gender.yaml    |  4 +-
 .../examples/configs/charts/Filter_Segments.yaml   |  9 +++-
 .../configs/charts/Filtering_Vaccines.yaml         |  7 +--
 .../configs/charts/First_Time_Developer.yaml       |  4 +-
 .../charts/First_Time_Developer__Commute_Time.yaml |  4 +-
 superset/examples/configs/charts/Games.yaml        | 20 ++++-----
 .../examples/configs/charts/Games_per_Genre.yaml   |  6 +--
 .../configs/charts/Games_per_Genre_over_time.yaml  |  6 +--
 superset/examples/configs/charts/Gender.yaml       |  2 +-
 .../How_much_do_you_expect_to_earn_0_-_100k.yaml   |  2 +-
 .../charts/Last_Year_Income_Distribution.yaml      |  2 +-
 .../configs/charts/Most_Dominant_Platforms.yaml    |  8 ++--
 .../Number_of_Deals_for_each_Combination.yaml      |  6 +--
 ...mes_That_Hit_100k_in_Sales_By_Release_Year.yaml |  4 +-
 .../charts/Overall_Sales_By_Product_Line.yaml      |  6 +--
 .../charts/Popular_Genres_Across_Platforms.yaml    |  6 +--
 .../Proportion_of_Revenue_by_Product_Line.yaml     |  6 +--
 .../charts/Publishers_With_Most_Titles.yaml        | 16 +++----
 .../examples/configs/charts/Quarterly_Sales.yaml   |  4 +-
 .../charts/Quarterly_Sales_By_Product_Line.yaml    |  6 +--
 .../configs/charts/Relocation_ability.yaml         |  2 +-
 .../configs/charts/Revenue_by_Deal_Size.yaml       |  6 +--
 .../charts/Rise__Fall_of_Video_Game_Consoles.yaml  |  8 ++--
 .../Seasonality_of_Revenue_per_Product_Line.yaml   |  6 +--
 ...op_10_Games_Proportion_of_Sales_in_Markets.yaml | 14 +++---
 .../examples/configs/charts/Total_Items_Sold.yaml  |  4 +-
 .../charts/Total_Items_Sold_By_Product_Line.yaml   |  6 +--
 .../examples/configs/charts/Total_Revenue.yaml     |  4 +-
 .../Total_Sales_per_Market_Grouped_by_Genre.yaml   | 14 +++---
 .../Vaccine_Candidates_per_Approach__Stage.yaml    |  4 +-
 .../charts/Vaccine_Candidates_per_Country.yaml     |  2 +-
 .../charts/Vaccine_Candidates_per_Country_261.yaml |  4 +-
 .../Vaccine_Candidates_per_Country__Stage.yaml     |  4 +-
 .../Vaccine_Candidates_per_Country__Stage_749.yaml |  4 +-
 .../charts/Vaccine_Candidates_per_Phase.yaml       |  2 +-
 .../charts/Vaccine_Candidates_per_Phase_587.yaml   |  2 +-
 .../configs/charts/Vehicle_Sales_Filter.yaml       |  8 ++--
 .../configs/charts/Video_Game_Sales_Filter.yaml    | 11 +++--
 .../configs/charts/Work_Location_Preference.yaml   |  2 +-
 .../configs/datasets/examples/FCC_2018_Survey.yaml | 18 ++++----
 .../datasets/examples/cleaned_sales_data.yaml      | 52 +++++++++++-----------
 .../configs/datasets/examples/covid_vaccines.yaml  | 44 +++++++++---------
 .../datasets/examples/video_game_sales.yaml        | 24 +++++-----
 47 files changed, 196 insertions(+), 185 deletions(-)

diff --git a/superset/examples/configs/charts/Are_you_an_ethnic_minority_in_your_city.yaml b/superset/examples/configs/charts/Are_you_an_ethnic_minority_in_your_city.yaml
index 850a881..b170d6a 100644
--- a/superset/examples/configs/charts/Are_you_an_ethnic_minority_in_your_city.yaml
+++ b/superset/examples/configs/charts/Are_you_an_ethnic_minority_in_your_city.yaml
@@ -23,7 +23,7 @@ params:
   donut: true
   granularity_sqla: time_start
   groupby:
-  - Ethnic Minority
+  - ethnic_minority
   innerRadius: 44
   label_line: true
   labels_outside: true
diff --git a/superset/examples/configs/charts/Breakdown_of_Developer_Type.yaml b/superset/examples/configs/charts/Breakdown_of_Developer_Type.yaml
index 8afd9d7..4e4b688 100644
--- a/superset/examples/configs/charts/Breakdown_of_Developer_Type.yaml
+++ b/superset/examples/configs/charts/Breakdown_of_Developer_Type.yaml
@@ -23,7 +23,7 @@ params:
   datasource: 42__table
   granularity_sqla: time_start
   groupby:
-  - Developer Type
+  - developer_type
   metrics:
   - count
   order_by_cols: []
diff --git a/superset/examples/configs/charts/Commute_Time.yaml b/superset/examples/configs/charts/Commute_Time.yaml
index 7481db6..162c3be 100644
--- a/superset/examples/configs/charts/Commute_Time.yaml
+++ b/superset/examples/configs/charts/Commute_Time.yaml
@@ -26,7 +26,7 @@ params:
     isNew: false
     operator: ==
     sqlExpression: null
-    subject: Developer Type
+    subject: developer_type
   - clause: WHERE
     comparator: 'NULL'
     expressionType: SIMPLE
diff --git a/superset/examples/configs/charts/Current_Developers_Is_this_your_first_development_job.yaml b/superset/examples/configs/charts/Current_Developers_Is_this_your_first_development_job.yaml
index 262e9e7..e051c6a 100644
--- a/superset/examples/configs/charts/Current_Developers_Is_this_your_first_development_job.yaml
+++ b/superset/examples/configs/charts/Current_Developers_Is_this_your_first_development_job.yaml
@@ -26,7 +26,7 @@ params:
     isNew: false
     operator: ==
     sqlExpression: null
-    subject: Developer Type
+    subject: developer_type
   datasource: 42__table
   granularity_sqla: time_start
   header_font_size: 0.4
diff --git a/superset/examples/configs/charts/Ethnic_Minority__Gender.yaml b/superset/examples/configs/charts/Ethnic_Minority__Gender.yaml
index 4665547..b5bd7a9 100644
--- a/superset/examples/configs/charts/Ethnic_Minority__Gender.yaml
+++ b/superset/examples/configs/charts/Ethnic_Minority__Gender.yaml
@@ -26,7 +26,7 @@ params:
     isNew: false
     operator: '!='
     sqlExpression: null
-    subject: Ethnic Minority
+    subject: ethnic_minority
   - clause: WHERE
     comparator: 'NULL'
     expressionType: SIMPLE
@@ -40,7 +40,7 @@ params:
   datasource: 42__table
   granularity_sqla: time_start
   groupby:
-  - Ethnic Minority
+  - ethnic_minority
   - gender
   label_colors: {}
   metric: count
diff --git a/superset/examples/configs/charts/Filter_Segments.yaml b/superset/examples/configs/charts/Filter_Segments.yaml
index 9824515..e98efd1 100644
--- a/superset/examples/configs/charts/Filter_Segments.yaml
+++ b/superset/examples/configs/charts/Filter_Segments.yaml
@@ -23,32 +23,37 @@ params:
   filter_configs:
   - asc: true
     clearable: true
-    column: Ethnic Minority
+    column: ethnic_minority
     key: -xNBqpfQo
+    label: Ethnic Minority
     multiple: true
     searchAllOptions: false
   - asc: true
     clearable: true
     column: gender
     key: 19VeBGTKf
+    label: Gender
     multiple: true
     searchAllOptions: false
   - asc: true
     clearable: true
-    column: Developer Type
+    column: developer_type
     key: OWTb4s69T
+    label: Developer Type
     multiple: true
     searchAllOptions: false
   - asc: true
     clearable: true
     column: lang_at_home
     key: Fn-YClyhb
+    label: Language at Home
     multiple: true
     searchAllOptions: false
   - asc: true
     clearable: true
     column: country_live
     key: 2fNskRCLJ
+    label: Country live
     multiple: true
     searchAllOptions: false
   granularity_sqla: time_start
diff --git a/superset/examples/configs/charts/Filtering_Vaccines.yaml b/superset/examples/configs/charts/Filtering_Vaccines.yaml
index a8e6a1b..7353492 100644
--- a/superset/examples/configs/charts/Filtering_Vaccines.yaml
+++ b/superset/examples/configs/charts/Filtering_Vaccines.yaml
@@ -23,22 +23,23 @@ params:
   filter_configs:
   - asc: true
     clearable: true
-    column: Country_Name
+    column: country_name
     key: D00hRxPLE
     label: Country
     multiple: true
     searchAllOptions: false
   - asc: true
     clearable: true
-    column: Product_Category
+    column: product_category
     key: jJ7x2cuIc
     label: Vaccine Approach
     multiple: true
     searchAllOptions: false
   - asc: true
     clearable: true
-    column: Clinical Stage
+    column: clinical_stage
     key: EgGwwAUU6
+    label: Clinical Stage
     multiple: true
     searchAllOptions: false
   queryFields: {}
diff --git a/superset/examples/configs/charts/First_Time_Developer.yaml b/superset/examples/configs/charts/First_Time_Developer.yaml
index 9f08859..d1c0902 100644
--- a/superset/examples/configs/charts/First_Time_Developer.yaml
+++ b/superset/examples/configs/charts/First_Time_Developer.yaml
@@ -26,13 +26,13 @@ params:
     isNew: false
     operator: ==
     sqlExpression: null
-    subject: Developer Type
+    subject: developer_type
   color_scheme: supersetColors
   datasource: 42__table
   donut: true
   granularity_sqla: time_start
   groupby:
-  - First Time Developer
+  - first_time_developer
   innerRadius: 43
   labels_outside: true
   metric: count
diff --git a/superset/examples/configs/charts/First_Time_Developer__Commute_Time.yaml b/superset/examples/configs/charts/First_Time_Developer__Commute_Time.yaml
index bcce0b4..49d7de6 100644
--- a/superset/examples/configs/charts/First_Time_Developer__Commute_Time.yaml
+++ b/superset/examples/configs/charts/First_Time_Developer__Commute_Time.yaml
@@ -35,7 +35,7 @@ params:
     isNew: false
     operator: '!='
     sqlExpression: null
-    subject: First Time Developer
+    subject: first_time_developer
   - clause: WHERE
     comparator: 'NULL'
     expressionType: SIMPLE
@@ -49,7 +49,7 @@ params:
   datasource: 42__table
   granularity_sqla: time_start
   groupby:
-  - First Time Developer
+  - first_time_developer
   - communite_time
   label_colors: {}
   metric: count
diff --git a/superset/examples/configs/charts/Games.yaml b/superset/examples/configs/charts/Games.yaml
index c77c4a8..cfdab3e 100644
--- a/superset/examples/configs/charts/Games.yaml
+++ b/superset/examples/configs/charts/Games.yaml
@@ -19,22 +19,22 @@ viz_type: table
 params:
   adhoc_filters: []
   all_columns:
-  - Name
-  - Global_Sales
-  - Platform
-  - Genre
-  - Publisher
-  - Year
+  - name
+  - global_sales
+  - platform
+  - genre
+  - publisher
+  - year
   color_pn: false
   datasource: 21__table
-  granularity_sqla: Year
+  granularity_sqla: year
   groupby:
-  - Name
+  - name
   include_search: true
   metrics:
   - aggregate: SUM
     column:
-      column_name: Global_Sales
+      column_name: global_sales
       description: null
       expression: null
       filterable: true
@@ -52,7 +52,7 @@ params:
     optionName: metric_pkpvgdsf70d_pnqv77v0x2p
     sqlExpression: null
   order_by_cols:
-  - '["Global_Sales", false]'
+  - '["global_sales", false]'
   order_desc: true
   page_length: '15'
   percent_metrics: []
diff --git a/superset/examples/configs/charts/Games_per_Genre.yaml b/superset/examples/configs/charts/Games_per_Genre.yaml
index 52398d1..2255622 100644
--- a/superset/examples/configs/charts/Games_per_Genre.yaml
+++ b/superset/examples/configs/charts/Games_per_Genre.yaml
@@ -20,9 +20,9 @@ params:
   adhoc_filters: []
   color_scheme: supersetColors
   datasource: 1559__table
-  granularity_sqla: Year
+  granularity_sqla: year
   groupby:
-  - Genre
+  - genre
   label_colors:
     '0': '#1FA8C9'
     '1': '#454E7C'
@@ -89,7 +89,7 @@ params:
   - exclusive
   treemap_ratio: 1.618033988749895
   url_params:
-    preselect_filters: '{"1389": {"Platform": ["PS", "PS2", "PS3", "PS4"], "Genre":
+    preselect_filters: '{"1389": {"platform": ["PS", "PS2", "PS3", "PS4"], "genre":
       null, "__time_range": "No filter"}}'
   viz_type: treemap
 cache_timeout: null
diff --git a/superset/examples/configs/charts/Games_per_Genre_over_time.yaml b/superset/examples/configs/charts/Games_per_Genre_over_time.yaml
index 186f4c9..6d700d4 100644
--- a/superset/examples/configs/charts/Games_per_Genre_over_time.yaml
+++ b/superset/examples/configs/charts/Games_per_Genre_over_time.yaml
@@ -24,9 +24,9 @@ params:
   comparison_type: values
   contribution: false
   datasource: 21__table
-  granularity_sqla: Year
+  granularity_sqla: year
   groupby:
-  - Genre
+  - genre
   label_colors:
     '0': '#1FA8C9'
     '1': '#454E7C'
@@ -101,7 +101,7 @@ params:
   - inclusive
   - exclusive
   url_params:
-    preselect_filters: '{"1389": {"Platform": ["PS", "PS2", "PS3", "PS4"], "Genre":
+    preselect_filters: '{"1389": {"platform": ["PS", "PS2", "PS3", "PS4"], "genre":
       null, "__time_range": "No filter"}}'
   viz_type: line
   x_axis_format: smart_date
diff --git a/superset/examples/configs/charts/Gender.yaml b/superset/examples/configs/charts/Gender.yaml
index 9728572..c20d02e 100644
--- a/superset/examples/configs/charts/Gender.yaml
+++ b/superset/examples/configs/charts/Gender.yaml
@@ -23,7 +23,7 @@ params:
   donut: true
   granularity_sqla: time_start
   groupby:
-  - Gender
+  - gender
   innerRadius: 44
   label_line: true
   labels_outside: true
diff --git a/superset/examples/configs/charts/How_much_do_you_expect_to_earn_0_-_100k.yaml b/superset/examples/configs/charts/How_much_do_you_expect_to_earn_0_-_100k.yaml
index b2490c2..6d88f5a 100644
--- a/superset/examples/configs/charts/How_much_do_you_expect_to_earn_0_-_100k.yaml
+++ b/superset/examples/configs/charts/How_much_do_you_expect_to_earn_0_-_100k.yaml
@@ -26,7 +26,7 @@ params:
     isNew: false
     operator: ==
     sqlExpression: null
-    subject: Developer Type
+    subject: developer_type
   - clause: WHERE
     comparator: '200000'
     expressionType: SIMPLE
diff --git a/superset/examples/configs/charts/Last_Year_Income_Distribution.yaml b/superset/examples/configs/charts/Last_Year_Income_Distribution.yaml
index c26aeb6..20ccbb7 100644
--- a/superset/examples/configs/charts/Last_Year_Income_Distribution.yaml
+++ b/superset/examples/configs/charts/Last_Year_Income_Distribution.yaml
@@ -26,7 +26,7 @@ params:
     isNew: false
     operator: ==
     sqlExpression: null
-    subject: Developer Type
+    subject: developer_type
   - clause: WHERE
     comparator: '100000'
     expressionType: SIMPLE
diff --git a/superset/examples/configs/charts/Most_Dominant_Platforms.yaml b/superset/examples/configs/charts/Most_Dominant_Platforms.yaml
index 243f4a6..0ba3c70 100644
--- a/superset/examples/configs/charts/Most_Dominant_Platforms.yaml
+++ b/superset/examples/configs/charts/Most_Dominant_Platforms.yaml
@@ -26,20 +26,20 @@ params:
     isNew: false
     operator: <=
     sqlExpression: null
-    subject: Rank
+    subject: rank
   color_scheme: supersetColors
   datasource: 21__table
   donut: true
-  granularity_sqla: Year
+  granularity_sqla: year
   groupby:
-  - Publisher
+  - publisher
   innerRadius: 45
   label_line: true
   labels_outside: true
   metric:
     aggregate: SUM
     column:
-      column_name: Global_Sales
+      column_name: global_sales
       description: null
       expression: null
       filterable: true
diff --git a/superset/examples/configs/charts/Number_of_Deals_for_each_Combination.yaml b/superset/examples/configs/charts/Number_of_Deals_for_each_Combination.yaml
index af9b4e8..73da100 100644
--- a/superset/examples/configs/charts/Number_of_Deals_for_each_Combination.yaml
+++ b/superset/examples/configs/charts/Number_of_Deals_for_each_Combination.yaml
@@ -18,12 +18,12 @@ slice_name: Number of Deals (for each Combination)
 viz_type: heatmap
 params:
   adhoc_filters: []
-  all_columns_x: DealSize
-  all_columns_y: ProductLine
+  all_columns_x: deal_size
+  all_columns_y: product_line
   bottom_margin: 100
   canvas_image_rendering: pixelated
   datasource: 23__table
-  granularity_sqla: OrderDate
+  granularity_sqla: order_date
   left_margin: 75
   linear_color_scheme: schemePuBuGn
   metric: count
diff --git a/superset/examples/configs/charts/Number_of_Games_That_Hit_100k_in_Sales_By_Release_Year.yaml b/superset/examples/configs/charts/Number_of_Games_That_Hit_100k_in_Sales_By_Release_Year.yaml
index 448fba3..5b54236 100644
--- a/superset/examples/configs/charts/Number_of_Games_That_Hit_100k_in_Sales_By_Release_Year.yaml
+++ b/superset/examples/configs/charts/Number_of_Games_That_Hit_100k_in_Sales_By_Release_Year.yaml
@@ -20,9 +20,9 @@ params:
   adhoc_filters: []
   color_scheme: supersetColors
   datasource: 21__table
-  granularity_sqla: Year
+  granularity_sqla: year
   groupby:
-  - Platform
+  - platform
   label_colors:
     '2600': '#D1C6BC'
     3DO: '#A38F79'
diff --git a/superset/examples/configs/charts/Overall_Sales_By_Product_Line.yaml b/superset/examples/configs/charts/Overall_Sales_By_Product_Line.yaml
index 26b395d..e7c6797 100644
--- a/superset/examples/configs/charts/Overall_Sales_By_Product_Line.yaml
+++ b/superset/examples/configs/charts/Overall_Sales_By_Product_Line.yaml
@@ -21,16 +21,16 @@ params:
   color_scheme: supersetColors
   datasource: 23__table
   donut: true
-  granularity_sqla: OrderDate
+  granularity_sqla: order_date
   groupby:
-  - ProductLine
+  - product_line
   innerRadius: 41
   label_line: true
   labels_outside: true
   metric:
     aggregate: SUM
     column:
-      column_name: Sales
+      column_name: sales
       description: null
       expression: null
       filterable: true
diff --git a/superset/examples/configs/charts/Popular_Genres_Across_Platforms.yaml b/superset/examples/configs/charts/Popular_Genres_Across_Platforms.yaml
index 5526424..a01a18a 100644
--- a/superset/examples/configs/charts/Popular_Genres_Across_Platforms.yaml
+++ b/superset/examples/configs/charts/Popular_Genres_Across_Platforms.yaml
@@ -18,12 +18,12 @@ slice_name: Popular Genres Across Platforms
 viz_type: heatmap
 params:
   adhoc_filters: []
-  all_columns_x: Platform
-  all_columns_y: Genre
+  all_columns_x: platform
+  all_columns_y: genre
   bottom_margin: auto
   canvas_image_rendering: pixelated
   datasource: 64__table
-  granularity_sqla: Year
+  granularity_sqla: year
   left_margin: auto
   linear_color_scheme: blue_white_yellow
   metric: count
diff --git a/superset/examples/configs/charts/Proportion_of_Revenue_by_Product_Line.yaml b/superset/examples/configs/charts/Proportion_of_Revenue_by_Product_Line.yaml
index bc671e9..fbdac5e 100644
--- a/superset/examples/configs/charts/Proportion_of_Revenue_by_Product_Line.yaml
+++ b/superset/examples/configs/charts/Proportion_of_Revenue_by_Product_Line.yaml
@@ -24,15 +24,15 @@ params:
   comparison_type: values
   contribution: true
   datasource: 23__table
-  granularity_sqla: OrderDate
+  granularity_sqla: order_date
   groupby:
-  - ProductLine
+  - product_line
   label_colors: {}
   line_interpolation: linear
   metrics:
   - aggregate: SUM
     column:
-      column_name: Sales
+      column_name: sales
       description: null
       expression: null
       filterable: true
diff --git a/superset/examples/configs/charts/Publishers_With_Most_Titles.yaml b/superset/examples/configs/charts/Publishers_With_Most_Titles.yaml
index 6f1dcce..aa93dfa 100644
--- a/superset/examples/configs/charts/Publishers_With_Most_Titles.yaml
+++ b/superset/examples/configs/charts/Publishers_With_Most_Titles.yaml
@@ -19,16 +19,16 @@ viz_type: table
 params:
   adhoc_filters: []
   all_columns:
-  - Rank
-  - Name
-  - Global_Sales
-  - Platform
-  - Genre
-  - Publisher
-  - Year
+  - rank
+  - name
+  - global_sales
+  - platform
+  - genre
+  - publisher
+  - year
   color_pn: false
   datasource: 21__table
-  granularity_sqla: Year
+  granularity_sqla: year
   groupby: []
   metrics:
   - count
diff --git a/superset/examples/configs/charts/Quarterly_Sales.yaml b/superset/examples/configs/charts/Quarterly_Sales.yaml
index acdd267..65553d5 100644
--- a/superset/examples/configs/charts/Quarterly_Sales.yaml
+++ b/superset/examples/configs/charts/Quarterly_Sales.yaml
@@ -23,7 +23,7 @@ params:
   color_scheme: supersetColors
   comparison_type: null
   datasource: 23__table
-  granularity_sqla: OrderDate
+  granularity_sqla: order_date
   groupby: []
   label_colors:
     Classic Cars: '#5AC189'
@@ -40,7 +40,7 @@ params:
   metrics:
   - aggregate: SUM
     column:
-      column_name: Sales
+      column_name: sales
       description: null
       expression: null
       filterable: true
diff --git a/superset/examples/configs/charts/Quarterly_Sales_By_Product_Line.yaml b/superset/examples/configs/charts/Quarterly_Sales_By_Product_Line.yaml
index 85968bd..66d8733 100644
--- a/superset/examples/configs/charts/Quarterly_Sales_By_Product_Line.yaml
+++ b/superset/examples/configs/charts/Quarterly_Sales_By_Product_Line.yaml
@@ -24,9 +24,9 @@ params:
   color_scheme: supersetColors
   comparison_type: null
   datasource: 23__table
-  granularity_sqla: OrderDate
+  granularity_sqla: order_date
   groupby:
-  - ProductLine
+  - product_line
   label_colors:
     Classic Cars: '#5AC189'
     Motorcycles: '#666666'
@@ -42,7 +42,7 @@ params:
   metrics:
   - aggregate: SUM
     column:
-      column_name: Sales
+      column_name: sales
       description: null
       expression: null
       filterable: true
diff --git a/superset/examples/configs/charts/Relocation_ability.yaml b/superset/examples/configs/charts/Relocation_ability.yaml
index c395fe4..4d5111c 100644
--- a/superset/examples/configs/charts/Relocation_ability.yaml
+++ b/superset/examples/configs/charts/Relocation_ability.yaml
@@ -32,7 +32,7 @@ params:
   donut: true
   granularity_sqla: time_start
   groupby:
-  - Willing To Relocate
+  - willing_to_relocate
   innerRadius: 44
   labels_outside: true
   metric: count
diff --git a/superset/examples/configs/charts/Revenue_by_Deal_Size.yaml b/superset/examples/configs/charts/Revenue_by_Deal_Size.yaml
index e7bb9e1..1c57449 100644
--- a/superset/examples/configs/charts/Revenue_by_Deal_Size.yaml
+++ b/superset/examples/configs/charts/Revenue_by_Deal_Size.yaml
@@ -25,16 +25,16 @@ params:
   comparison_type: values
   contribution: false
   datasource: 23__table
-  granularity_sqla: OrderDate
+  granularity_sqla: order_date
   groupby:
-  - DealSize
+  - deal_size
   label_colors: {}
   left_margin: auto
   line_interpolation: linear
   metrics:
   - aggregate: SUM
     column:
-      column_name: Sales
+      column_name: sales
       description: null
       expression: null
       filterable: true
diff --git a/superset/examples/configs/charts/Rise__Fall_of_Video_Game_Consoles.yaml b/superset/examples/configs/charts/Rise__Fall_of_Video_Game_Consoles.yaml
index d024221..8b66280 100644
--- a/superset/examples/configs/charts/Rise__Fall_of_Video_Game_Consoles.yaml
+++ b/superset/examples/configs/charts/Rise__Fall_of_Video_Game_Consoles.yaml
@@ -24,9 +24,9 @@ params:
   comparison_type: values
   contribution: false
   datasource: 21__table
-  granularity_sqla: Year
+  granularity_sqla: year
   groupby:
-  - Platform
+  - platform
   label_colors:
     '0': '#1FA8C9'
     '1': '#454E7C'
@@ -84,7 +84,7 @@ params:
   metrics:
   - aggregate: SUM
     column:
-      column_name: Global_Sales
+      column_name: global_sales
       description: null
       expression: null
       filterable: true
@@ -118,7 +118,7 @@ params:
   - inclusive
   - exclusive
   url_params:
-    preselect_filters: '{"1389": {"Platform": ["PS", "PS2", "PS3", "PS4"], "Genre":
+    preselect_filters: '{"1389": {"platform": ["PS", "PS2", "PS3", "PS4"], "genre":
       null, "__time_range": "No filter"}}'
   viz_type: area
   x_axis_format: smart_date
diff --git a/superset/examples/configs/charts/Seasonality_of_Revenue_per_Product_Line.yaml b/superset/examples/configs/charts/Seasonality_of_Revenue_per_Product_Line.yaml
index 3f9fcaa..b3161f6 100644
--- a/superset/examples/configs/charts/Seasonality_of_Revenue_per_Product_Line.yaml
+++ b/superset/examples/configs/charts/Seasonality_of_Revenue_per_Product_Line.yaml
@@ -19,14 +19,14 @@ viz_type: horizon
 params:
   adhoc_filters: []
   datasource: 23__table
-  granularity_sqla: OrderDate
+  granularity_sqla: order_date
   groupby:
-  - ProductLine
+  - product_line
   horizon_color_scale: series
   metrics:
   - aggregate: SUM
     column:
-      column_name: Sales
+      column_name: sales
       description: null
       expression: null
       filterable: true
diff --git a/superset/examples/configs/charts/Top_10_Games_Proportion_of_Sales_in_Markets.yaml b/superset/examples/configs/charts/Top_10_Games_Proportion_of_Sales_in_Markets.yaml
index 1b40b4b..99aa034 100644
--- a/superset/examples/configs/charts/Top_10_Games_Proportion_of_Sales_in_Markets.yaml
+++ b/superset/examples/configs/charts/Top_10_Games_Proportion_of_Sales_in_Markets.yaml
@@ -26,21 +26,21 @@ params:
     isNew: false
     operator: <=
     sqlExpression: null
-    subject: Rank
+    subject: rank
   bar_stacked: true
   bottom_margin: auto
   color_scheme: supersetColors
   columns: []
   contribution: true
   datasource: 21__table
-  granularity_sqla: Year
+  granularity_sqla: year
   groupby:
-  - Name
+  - name
   label_colors: {}
   metrics:
   - aggregate: SUM
     column:
-      column_name: NA_Sales
+      column_name: na_sales
       description: null
       expression: null
       filterable: true
@@ -59,7 +59,7 @@ params:
     sqlExpression: null
   - aggregate: SUM
     column:
-      column_name: EU_Sales
+      column_name: eu_sales
       description: null
       expression: null
       filterable: true
@@ -78,7 +78,7 @@ params:
     sqlExpression: null
   - aggregate: SUM
     column:
-      column_name: JP_Sales
+      column_name: jp_sales
       description: null
       expression: null
       filterable: true
@@ -97,7 +97,7 @@ params:
     sqlExpression: null
   - aggregate: SUM
     column:
-      column_name: Other_Sales
+      column_name: other_sales
       description: null
       expression: null
       filterable: true
diff --git a/superset/examples/configs/charts/Total_Items_Sold.yaml b/superset/examples/configs/charts/Total_Items_Sold.yaml
index 63bd19a..d02a702 100644
--- a/superset/examples/configs/charts/Total_Items_Sold.yaml
+++ b/superset/examples/configs/charts/Total_Items_Sold.yaml
@@ -19,12 +19,12 @@ viz_type: big_number_total
 params:
   adhoc_filters: []
   datasource: 23__table
-  granularity_sqla: OrderDate
+  granularity_sqla: order_date
   header_font_size: 0.4
   metric:
     aggregate: SUM
     column:
-      column_name: QuantityOrdered
+      column_name: quantity_ordered
       description: null
       expression: null
       filterable: true
diff --git a/superset/examples/configs/charts/Total_Items_Sold_By_Product_Line.yaml b/superset/examples/configs/charts/Total_Items_Sold_By_Product_Line.yaml
index 3a4dec6..4aae850 100644
--- a/superset/examples/configs/charts/Total_Items_Sold_By_Product_Line.yaml
+++ b/superset/examples/configs/charts/Total_Items_Sold_By_Product_Line.yaml
@@ -21,13 +21,13 @@ params:
   all_columns: []
   color_pn: true
   datasource: 23__table
-  granularity_sqla: OrderDate
+  granularity_sqla: order_date
   groupby:
-  - ProductLine
+  - product_line
   metrics:
   - aggregate: SUM
     column:
-      column_name: QuantityOrdered
+      column_name: quantity_ordered
       description: null
       expression: null
       filterable: true
diff --git a/superset/examples/configs/charts/Total_Revenue.yaml b/superset/examples/configs/charts/Total_Revenue.yaml
index c1e5de2..a1ae36a 100644
--- a/superset/examples/configs/charts/Total_Revenue.yaml
+++ b/superset/examples/configs/charts/Total_Revenue.yaml
@@ -19,12 +19,12 @@ viz_type: big_number_total
 params:
   adhoc_filters: []
   datasource: 23__table
-  granularity_sqla: OrderDate
+  granularity_sqla: order_date
   header_font_size: 0.4
   metric:
     aggregate: SUM
     column:
-      column_name: Sales
+      column_name: sales
       description: null
       expression: null
       filterable: true
diff --git a/superset/examples/configs/charts/Total_Sales_per_Market_Grouped_by_Genre.yaml b/superset/examples/configs/charts/Total_Sales_per_Market_Grouped_by_Genre.yaml
index db4580c..366c839 100644
--- a/superset/examples/configs/charts/Total_Sales_per_Market_Grouped_by_Genre.yaml
+++ b/superset/examples/configs/charts/Total_Sales_per_Market_Grouped_by_Genre.yaml
@@ -24,9 +24,9 @@ params:
   columns: []
   contribution: false
   datasource: 21__table
-  granularity_sqla: Year
+  granularity_sqla: year
   groupby:
-  - Genre
+  - genre
   label_colors:
     '0': '#1FA8C9'
     '1': '#454E7C'
@@ -83,7 +83,7 @@ params:
   metrics:
   - aggregate: SUM
     column:
-      column_name: NA_Sales
+      column_name: na_sales
       description: null
       expression: null
       filterable: true
@@ -102,7 +102,7 @@ params:
     sqlExpression: null
   - aggregate: SUM
     column:
-      column_name: EU_Sales
+      column_name: eu_sales
       description: null
       expression: null
       filterable: true
@@ -121,7 +121,7 @@ params:
     sqlExpression: null
   - aggregate: SUM
     column:
-      column_name: JP_Sales
+      column_name: jp_sales
       description: null
       expression: null
       filterable: true
@@ -140,7 +140,7 @@ params:
     sqlExpression: null
   - aggregate: SUM
     column:
-      column_name: Other_Sales
+      column_name: other_sales
       description: null
       expression: null
       filterable: true
@@ -172,7 +172,7 @@ params:
   - inclusive
   - exclusive
   url_params:
-    preselect_filters: '{"1389": {"Platform": ["PS", "PS2", "PS3", "PS4"], "Genre":
+    preselect_filters: '{"1389": {"platform": ["PS", "PS2", "PS3", "PS4"], "genre":
       null, "__time_range": "No filter"}}'
   viz_type: dist_bar
   x_axis_label: Genre
diff --git a/superset/examples/configs/charts/Vaccine_Candidates_per_Approach__Stage.yaml b/superset/examples/configs/charts/Vaccine_Candidates_per_Approach__Stage.yaml
index 1e505f9..330863b 100644
--- a/superset/examples/configs/charts/Vaccine_Candidates_per_Approach__Stage.yaml
+++ b/superset/examples/configs/charts/Vaccine_Candidates_per_Approach__Stage.yaml
@@ -18,8 +18,8 @@ slice_name: Vaccine Candidates per Approach & Stage
 viz_type: heatmap
 params:
   adhoc_filters: []
-  all_columns_x: Clinical Stage
-  all_columns_y: Product_Category
+  all_columns_x: clinical_stage
+  all_columns_y: product_category
   bottom_margin: auto
   canvas_image_rendering: pixelated
   datasource: 69__table
diff --git a/superset/examples/configs/charts/Vaccine_Candidates_per_Country.yaml b/superset/examples/configs/charts/Vaccine_Candidates_per_Country.yaml
index 0bcd3ae..bef6ec3 100644
--- a/superset/examples/configs/charts/Vaccine_Candidates_per_Country.yaml
+++ b/superset/examples/configs/charts/Vaccine_Candidates_per_Country.yaml
@@ -21,7 +21,7 @@ params:
   color_scheme: presetColors
   datasource: 69__table
   groupby:
-  - Country_Name
+  - country_name
   label_colors: {}
   metrics:
   - count
diff --git a/superset/examples/configs/charts/Vaccine_Candidates_per_Country_261.yaml b/superset/examples/configs/charts/Vaccine_Candidates_per_Country_261.yaml
index 20afb89..1218cbb 100644
--- a/superset/examples/configs/charts/Vaccine_Candidates_per_Country_261.yaml
+++ b/superset/examples/configs/charts/Vaccine_Candidates_per_Country_261.yaml
@@ -25,7 +25,7 @@ params:
     r: 0
   country_fieldtype: name
   datasource: 14__table
-  entity: Country_Name
+  entity: country_name
   linear_color_scheme: schemeYlOrBr
   max_bubble_size: '25'
   metric: count
@@ -33,7 +33,7 @@ params:
   secondary_metric:
     aggregate: COUNT
     column:
-      column_name: Country_Name
+      column_name: country_name
       description: null
       expression: null
       filterable: true
diff --git a/superset/examples/configs/charts/Vaccine_Candidates_per_Country__Stage.yaml b/superset/examples/configs/charts/Vaccine_Candidates_per_Country__Stage.yaml
index 8643634..88b9d17 100644
--- a/superset/examples/configs/charts/Vaccine_Candidates_per_Country__Stage.yaml
+++ b/superset/examples/configs/charts/Vaccine_Candidates_per_Country__Stage.yaml
@@ -21,8 +21,8 @@ params:
   color_scheme: supersetColors
   datasource: 69__table
   groupby:
-  - Product_Category
-  - Clinical Stage
+  - product_category
+  - clinical_stage
   linear_color_scheme: schemeYlOrBr
   metric: count
   queryFields:
diff --git a/superset/examples/configs/charts/Vaccine_Candidates_per_Country__Stage_749.yaml b/superset/examples/configs/charts/Vaccine_Candidates_per_Country__Stage_749.yaml
index f6305d0..8fba30f 100644
--- a/superset/examples/configs/charts/Vaccine_Candidates_per_Country__Stage_749.yaml
+++ b/superset/examples/configs/charts/Vaccine_Candidates_per_Country__Stage_749.yaml
@@ -18,8 +18,8 @@ slice_name: Vaccine Candidates per Country & Stage
 viz_type: heatmap
 params:
   adhoc_filters: []
-  all_columns_x: Clinical Stage
-  all_columns_y: Country_Name
+  all_columns_x: clinical_stage
+  all_columns_y: country_name
   bottom_margin: auto
   canvas_image_rendering: pixelated
   datasource: 14__table
diff --git a/superset/examples/configs/charts/Vaccine_Candidates_per_Phase.yaml b/superset/examples/configs/charts/Vaccine_Candidates_per_Phase.yaml
index 0fb0509..180f0b4 100644
--- a/superset/examples/configs/charts/Vaccine_Candidates_per_Phase.yaml
+++ b/superset/examples/configs/charts/Vaccine_Candidates_per_Phase.yaml
@@ -22,7 +22,7 @@ params:
   datasource: 69__table
   donut: true
   groupby:
-  - Clinical Stage
+  - clinical_stage
   innerRadius: 44
   label_line: true
   labels_outside: true
diff --git a/superset/examples/configs/charts/Vaccine_Candidates_per_Phase_587.yaml b/superset/examples/configs/charts/Vaccine_Candidates_per_Phase_587.yaml
index 03f9244..fc0d624 100644
--- a/superset/examples/configs/charts/Vaccine_Candidates_per_Phase_587.yaml
+++ b/superset/examples/configs/charts/Vaccine_Candidates_per_Phase_587.yaml
@@ -23,7 +23,7 @@ params:
   columns: []
   datasource: 14__table
   groupby:
-  - Clinical Stage
+  - clinical_stage
   label_colors: {}
   metrics:
   - count
diff --git a/superset/examples/configs/charts/Vehicle_Sales_Filter.yaml b/superset/examples/configs/charts/Vehicle_Sales_Filter.yaml
index a43a7a8..4950dc7 100644
--- a/superset/examples/configs/charts/Vehicle_Sales_Filter.yaml
+++ b/superset/examples/configs/charts/Vehicle_Sales_Filter.yaml
@@ -23,17 +23,19 @@ params:
   filter_configs:
   - asc: true
     clearable: true
-    column: ProductLine
+    column: product_line
     key: 7oUjq15eQ
+    label: Product Line
     multiple: true
     searchAllOptions: false
   - asc: true
     clearable: true
-    column: DealSize
+    column: deal_size
     key: c3hO6Eub8
+    label: Deal Size
     multiple: true
     searchAllOptions: false
-  granularity_sqla: OrderDate
+  granularity_sqla: order_date
   queryFields: {}
   slice_id: 671
   time_range: '2003-01-01T00:00:00 : 2005-06-01T00:00:00'
diff --git a/superset/examples/configs/charts/Video_Game_Sales_Filter.yaml b/superset/examples/configs/charts/Video_Game_Sales_Filter.yaml
index 0e83693..a7f7f4d 100644
--- a/superset/examples/configs/charts/Video_Game_Sales_Filter.yaml
+++ b/superset/examples/configs/charts/Video_Game_Sales_Filter.yaml
@@ -23,20 +23,23 @@ params:
   filter_configs:
   - asc: true
     clearable: true
-    column: Platform
+    column: platform
     key: s3ItH9vhG
+    label: Platform
     multiple: true
     searchAllOptions: false
   - asc: true
     clearable: true
-    column: Genre
+    column: genre
     key: 202hDeMsG
+    label: Genre
     multiple: true
     searchAllOptions: false
   - asc: true
     clearable: true
-    column: Publisher
+    column: publisher
     key: 5Os6jsJFK
+    label: Publisher
     multiple: true
     searchAllOptions: false
   granularity_sqla: Year
@@ -46,7 +49,7 @@ params:
   - inclusive
   - exclusive
   url_params:
-    preselect_filters: '{"1389": {"Platform": ["PS", "PS2", "PS3", "PS4"], "Genre":
+    preselect_filters: '{"1389": {"platform": ["PS", "PS2", "PS3", "PS4"], "genre":
       null, "__time_range": "No filter"}}'
   viz_type: filter_box
 cache_timeout: null
diff --git a/superset/examples/configs/charts/Work_Location_Preference.yaml b/superset/examples/configs/charts/Work_Location_Preference.yaml
index bab902f..bbf0891 100644
--- a/superset/examples/configs/charts/Work_Location_Preference.yaml
+++ b/superset/examples/configs/charts/Work_Location_Preference.yaml
@@ -32,7 +32,7 @@ params:
   donut: true
   granularity_sqla: time_start
   groupby:
-  - Job Location Preference
+  - job_location_preference
   innerRadius: 44
   labels_outside: true
   metric: count
diff --git a/superset/examples/configs/datasets/examples/FCC_2018_Survey.yaml b/superset/examples/configs/datasets/examples/FCC_2018_Survey.yaml
index 788e925..81505cc 100644
--- a/superset/examples/configs/datasets/examples/FCC_2018_Survey.yaml
+++ b/superset/examples/configs/datasets/examples/FCC_2018_Survey.yaml
@@ -38,7 +38,7 @@ metrics:
   extra: null
   warning_text: null
 columns:
-- column_name: Highest Degree Earned
+- column_name: highest_degree_earned
   verbose_name: Highest Degree Earned
   is_dttm: false
   is_active: null
@@ -60,8 +60,8 @@ columns:
     \ MD, JD, etc.)\"\nEND"
   description: Highest Degree Earned
   python_date_format: null
-- column_name: Job Location Preference
-  verbose_name: null
+- column_name: job_location_preference
+  verbose_name: Job Location Preference
   is_dttm: false
   is_active: null
   type: null
@@ -73,7 +73,7 @@ columns:
     \ 'In an Office (with Other Developers)'\nelse job_lctn_pref\nend "
   description: null
   python_date_format: null
-- column_name: Ethnic Minority
+- column_name: ethnic_minority
   verbose_name: Ethnic Minority
   is_dttm: null
   is_active: null
@@ -85,7 +85,7 @@ columns:
     END"
   description: null
   python_date_format: null
-- column_name: Willing To Relocate
+- column_name: willing_to_relocate
   verbose_name: Willing To Relocate
   is_dttm: false
   is_active: null
@@ -96,7 +96,7 @@ columns:
     \ = 1 THEN 'Yes: Willing To'\nELSE 'No Answer'\nEND"
   description: null
   python_date_format: null
-- column_name: Developer Type
+- column_name: developer_type
   verbose_name: Developer Type
   is_dttm: false
   is_active: null
@@ -107,8 +107,8 @@ columns:
     = 1 THEN 'Currently A Developer' END
   description: null
   python_date_format: null
-- column_name: First Time Developer
-  verbose_name: null
+- column_name: first_time_developer
+  verbose_name: First Time Developer
   is_dttm: false
   is_active: null
   type: null
@@ -118,7 +118,7 @@ columns:
     \ = 1 THEN 'Yes' \nELSE 'No Answer'\nEND"
   description: null
   python_date_format: null
-- column_name: Gender
+- column_name: gender
   verbose_name: null
   is_dttm: null
   is_active: null
diff --git a/superset/examples/configs/datasets/examples/cleaned_sales_data.yaml b/superset/examples/configs/datasets/examples/cleaned_sales_data.yaml
index 9138a55..4af19bc 100644
--- a/superset/examples/configs/datasets/examples/cleaned_sales_data.yaml
+++ b/superset/examples/configs/datasets/examples/cleaned_sales_data.yaml
@@ -38,7 +38,7 @@ metrics:
   extra: null
   warning_text: null
 columns:
-- column_name: OrderDate
+- column_name: order_date
   verbose_name: null
   is_dttm: true
   is_active: true
@@ -48,7 +48,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: PriceEach
+- column_name: price_each
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -58,7 +58,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Sales
+- column_name: sales
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -68,7 +68,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: AddressLine1
+- column_name: address_line1
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -78,7 +78,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: AddressLine2
+- column_name: address_line2
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -88,7 +88,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: ContactLastName
+- column_name: contact_last_name
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -98,7 +98,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: ContactFirstName
+- column_name: contact_first_name
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -108,7 +108,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: QuantityOrdered
+- column_name: quantity_ordered
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -118,7 +118,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Year
+- column_name: year
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -128,7 +128,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: PostalCode
+- column_name: postal_code
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -138,7 +138,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: CustomerName
+- column_name: customer_name
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -148,7 +148,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: DealSize
+- column_name: deal_size
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -158,7 +158,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: State
+- column_name: state
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -168,7 +168,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Status
+- column_name: status
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -178,7 +178,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: OrderLineNumber
+- column_name: order_line_number
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -188,7 +188,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: OrderNumber
+- column_name: order_number
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -198,7 +198,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Month
+- column_name: month
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -208,7 +208,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Quarter
+- column_name: quarter
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -218,7 +218,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: MSRP
+- column_name: msrp
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -228,7 +228,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: ProductCode
+- column_name: product_code
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -238,7 +238,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: ProductLine
+- column_name: product_line
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -248,7 +248,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: City
+- column_name: city
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -258,7 +258,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Country
+- column_name: country
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -268,7 +268,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Phone
+- column_name: phone
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -278,7 +278,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Territory
+- column_name: territory
   verbose_name: null
   is_dttm: false
   is_active: true
@@ -290,4 +290,4 @@ columns:
   python_date_format: null
 version: 1.0.0
 database_uuid: a2dc77af-e654-49bb-b321-40f6b559a1ee
-data: https://raw.githubusercontent.com/apache-superset/examples-data/master/datasets/examples/sales.csv
+data: https://raw.githubusercontent.com/apache-superset/examples-data/lowercase_columns_examples/datasets/examples/sales.csv
diff --git a/superset/examples/configs/datasets/examples/covid_vaccines.yaml b/superset/examples/configs/datasets/examples/covid_vaccines.yaml
index 954b159..992d4d9 100644
--- a/superset/examples/configs/datasets/examples/covid_vaccines.yaml
+++ b/superset/examples/configs/datasets/examples/covid_vaccines.yaml
@@ -38,21 +38,21 @@ metrics:
   extra: null
   warning_text: null
 columns:
-- column_name: Clinical Stage
+- column_name: clinical_stage
   verbose_name: null
   is_dttm: null
   is_active: null
   type: STRING
   groupby: true
   filterable: true
-  expression: "CASE \nWHEN Stage_of_Development = 'Pre-clinical' THEN '0. Pre-clinical'\n\
-    WHEN Stage_of_Development = 'Phase I' THEN '1. Phase I' \nWHEN Stage_of_Development\
-    \ = 'Phase I/II' or Stage_of_Development = 'Phase II' THEN '2. Phase II or\
-    \ Combined I/II'\nWHEN Stage_of_Development = 'Phase III' THEN '3. Phase III'\n\
-    WHEN Stage_of_Development = 'Authorized' THEN '4. Authorized'\nEND"
+  expression: "CASE \nWHEN stage_of_development = 'Pre-clinical' THEN '0. Pre-clinical'\n\
+    WHEN stage_of_development = 'Phase I' THEN '1. Phase I' \nWHEN stage_of_development\
+    \ = 'Phase I/II' or stage_of_development = 'Phase II' THEN '2. Phase II or\
+    \ Combined I/II'\nWHEN stage_of_development = 'Phase III' THEN '3. Phase III'\n\
+    WHEN stage_of_development = 'Authorized' THEN '4. Authorized'\nEND"
   description: null
   python_date_format: null
-- column_name: FDA_Approved_Indications
+- column_name: fda_approved_indications
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -62,7 +62,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Anticipated_Next_Steps
+- column_name: anticipated_next_steps
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -72,7 +72,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: IOC_Country_Code
+- column_name: ioc_country_code
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -82,7 +82,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Clinical_Trials_for_Other_Diseases_or_Related_Use
+- column_name: clinical_trials_for_other_diseases_or_related_use
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -92,7 +92,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Country_Name
+- column_name: country_name
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -102,7 +102,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Product_Category
+- column_name: product_category
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -112,7 +112,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Clinical_Trials
+- column_name: clinical_trials
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -122,7 +122,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Date_Last_Updated
+- column_name: date_last_updated
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -132,7 +132,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Product_Description
+- column_name: product_description
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -142,7 +142,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Developer_or_Researcher
+- column_name: developer_or_researcher
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -152,7 +152,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Stage_of_Development
+- column_name: stage_of_development
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -162,7 +162,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Funder
+- column_name: funder
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -172,7 +172,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Published_Results
+- column_name: published_results
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -182,7 +182,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Sources
+- column_name: sources
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -192,7 +192,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Treatment_vs_Vaccine
+- column_name: treatment_vs_vaccine
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -204,4 +204,4 @@ columns:
   python_date_format: null
 version: 1.0.0
 database_uuid: a2dc77af-e654-49bb-b321-40f6b559a1ee
-data: https://raw.githubusercontent.com/apache-superset/examples-data/master/datasets/examples/covid_vaccines.csv
+data: https://raw.githubusercontent.com/apache-superset/examples-data/lowercase_columns_examples/datasets/examples/covid_vaccines.csv
diff --git a/superset/examples/configs/datasets/examples/video_game_sales.yaml b/superset/examples/configs/datasets/examples/video_game_sales.yaml
index b10d841..cf6f058 100644
--- a/superset/examples/configs/datasets/examples/video_game_sales.yaml
+++ b/superset/examples/configs/datasets/examples/video_game_sales.yaml
@@ -41,7 +41,7 @@ metrics:
   extra: null
   warning_text: null
 columns:
-- column_name: Year
+- column_name: year
   verbose_name: null
   is_dttm: true
   is_active: null
@@ -51,7 +51,7 @@ columns:
   expression: null
   description: null
   python_date_format: '%Y'
-- column_name: NA_Sales
+- column_name: na_sales
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -61,7 +61,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: EU_Sales
+- column_name: eu_sales
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -71,7 +71,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Global_Sales
+- column_name: global_sales
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -81,7 +81,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: JP_Sales
+- column_name: jp_sales
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -91,7 +91,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Other_Sales
+- column_name: other_sales
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -101,7 +101,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Rank
+- column_name: rank
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -111,7 +111,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Genre
+- column_name: genre
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -121,7 +121,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Name
+- column_name: name
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -131,7 +131,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Platform
+- column_name: platform
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -141,7 +141,7 @@ columns:
   expression: null
   description: null
   python_date_format: null
-- column_name: Publisher
+- column_name: publisher
   verbose_name: null
   is_dttm: false
   is_active: null
@@ -153,4 +153,4 @@ columns:
   python_date_format: null
 version: 1.0.0
 database_uuid: a2dc77af-e654-49bb-b321-40f6b559a1ee
-data: https://github.com/apache-superset/examples-data/raw/master/datasets/examples/video_game_sales.csv
+data: https://github.com/apache-superset/examples-data/raw/lowercase_columns_examples/datasets/examples/video_game_sales.csv