diff --git a/README.md b/README.md index 961886df64d..b81cae0a1f2 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,6 @@ Here are some of the major database solutions that are supported: Apache Pinot   Apache Solr   Apache Spark SQL   - Ascend   Aurora MySQL (Data API)   Aurora PostgreSQL (Data API)   Azure Data Explorer   diff --git a/docs/docs/index.mdx b/docs/docs/index.mdx index bb204678b5d..62d032ce761 100644 --- a/docs/docs/index.mdx +++ b/docs/docs/index.mdx @@ -159,7 +159,6 @@ single source of truth. The README.md retains its own static copy Apache Pinot   Apache Solr   Apache Spark SQL   - Ascend   Aurora MySQL (Data API)   Aurora PostgreSQL (Data API)   Azure Data Explorer   diff --git a/docs/src/data/databases.json b/docs/src/data/databases.json index 229758e4703..e200d1d68f9 100644 --- a/docs/src/data/databases.json +++ b/docs/src/data/databases.json @@ -70,7 +70,6 @@ "Apache Doris", "Apache Kylin", "Apache Phoenix", - "Ascend", "Azure Data Explorer", "Azure Synapse", "ClickHouse", @@ -168,7 +167,6 @@ "base" ], "Cloud Data Warehouses": [ - "Ascend", "Azure Synapse", "Cloudflare D1", "Databend", @@ -180,7 +178,6 @@ "YugabyteDB" ], "Hosted Open Source": [ - "Ascend", "Cloudflare D1", "Databricks", "Google Sheets", @@ -1741,87 +1738,6 @@ "supports_catalog": false, "supports_dynamic_catalog": false }, - "Ascend": { - "time_grains": { - "SECOND": true, - "FIVE_SECONDS": false, - "THIRTY_SECONDS": false, - "MINUTE": true, - "FIVE_MINUTES": false, - "TEN_MINUTES": false, - "FIFTEEN_MINUTES": false, - "THIRTY_MINUTES": false, - "HALF_HOUR": false, - "HOUR": true, - "SIX_HOURS": false, - "DAY": true, - "WEEK": true, - "WEEK_STARTING_SUNDAY": false, - "WEEK_STARTING_MONDAY": false, - "WEEK_ENDING_SATURDAY": false, - "WEEK_ENDING_SUNDAY": false, - "MONTH": true, - "QUARTER": true, - "QUARTER_YEAR": false, - "YEAR": true - }, - "module": "superset.db_engine_specs.ascend", - "limit_method": 1, - "limit_clause": true, - "joins": true, - "subqueries": true, - "alias_in_select": true, - "alias_in_orderby": true, - "time_groupby_inline": false, - "alias_to_source_column": false, - "order_by_not_in_select": true, - "expressions_in_orderby": false, - "cte_in_subquery": true, - "max_column_name": null, - "sql_comments": true, - "escaped_colons": true, - "masked_encrypted_extra": false, - "column_type_mapping": false, - "function_names": false, - "user_impersonation": false, - "file_upload": true, - "get_extra_table_metadata": false, - "dbapi_exception_mapping": false, - "custom_errors": false, - "dynamic_schema": false, - "catalog": false, - "dynamic_catalog": false, - "ssh_tunneling": true, - "query_cancelation": true, - "get_metrics": false, - "where_latest_partition": false, - "expand_data": false, - "query_cost_estimation": false, - "sql_validation": false, - "score": 38, - "max_score": 201, - "documentation": { - "description": "Ascend.io is a data automation platform for building data pipelines.", - "logo": "ascend.webp", - "homepage_url": "https://www.ascend.io/", - "categories": [ - "Cloud Data Warehouses", - "Analytical Databases", - "Hosted Open Source" - ], - "pypi_packages": ["impyla"], - "connection_string": "ascend://{username}:{password}@{hostname}:{port}/{database}?auth_mechanism=PLAIN;use_ssl=true", - "category": "Other Databases" - }, - "engine": "ascend", - "engine_name": "Ascend", - "engine_aliases": [], - "default_driver": null, - "supports_file_upload": true, - "supports_dynamic_schema": false, - "supports_catalog": false, - "supports_dynamic_catalog": false - }, "Aurora MySQL": { "time_grains": { "SECOND": true, diff --git a/superset-frontend/playwright/generators/docs/screenshot-manifest.yaml b/superset-frontend/playwright/generators/docs/screenshot-manifest.yaml index f3279dfc958..333e9724090 100644 --- a/superset-frontend/playwright/generators/docs/screenshot-manifest.yaml +++ b/superset-frontend/playwright/generators/docs/screenshot-manifest.yaml @@ -573,12 +573,6 @@ images: alt: Apache Spark SQL source_file: docs/intro.md selector: null - - type: database-logo - page_url: "https://superset.apache.org/user-docs" - image_url: docs/static/img/databases/ascend.webp - alt: Ascend - source_file: docs/intro.md - selector: null - type: database-logo page_url: "https://superset.apache.org/user-docs" image_url: docs/static/img/databases/aws.png @@ -947,13 +941,6 @@ images: alt: Apache Spark SQL source_file: docs/index.mdx selector: null - - type: database-logo - page_url: "https://superset.apache.org/user-docs" - image_url: "https://superset.apache.org/img/databases/ascend.webp" - output_path: docs/static/img/databases/ascend.webp - alt: Ascend - source_file: docs/index.mdx - selector: null - type: database-logo page_url: "https://superset.apache.org/user-docs" image_url: "https://superset.apache.org/img/databases/aws.png" diff --git a/superset/db_engine_specs/METADATA_STATUS.md b/superset/db_engine_specs/METADATA_STATUS.md index 7a206565849..578a9351a40 100644 --- a/superset/db_engine_specs/METADATA_STATUS.md +++ b/superset/db_engine_specs/METADATA_STATUS.md @@ -59,7 +59,6 @@ These fields should be in every engine spec's `metadata` attribute: | Superset meta database | superset.py | 0% | category, connection_string, description, pypi_packages | default_port, homepage_url, logo | | Apache Drill | drill.py | 51% | connection_string, pypi_packages | default_port | | Amazon Athena | athena.py | 52% | connection_string, pypi_packages | default_port | -| Ascend | ascend.py | 60% | ✓ | default_port, homepage_url, logo | | Ocient | ocient.py | 61% | ✓ | default_port, homepage_url, logo | | RisingWave | risingwave.py | 61% | ✓ | default_port, homepage_url, logo | | Arc | arc.py | 62% | ✓ | default_port, homepage_url, logo | diff --git a/superset/db_engine_specs/README.md b/superset/db_engine_specs/README.md index b8769cc8afe..4b57b815f0d 100644 --- a/superset/db_engine_specs/README.md +++ b/superset/db_engine_specs/README.md @@ -101,7 +101,6 @@ The tables below (generated via `python superset/db_engine_specs/lib.py`) summar | SQLite | 41 | Supported | Partial | Supported | Supported | Not supported | Not supported | | Shillelagh | 41 | Supported | Partial | Supported | Supported | Not supported | Not supported | | KustoKQL | 40 | Supported | Partial | Partial | Partial | Partial | Not supported | -| Ascend | 38 | Supported | Partial | Supported | Not supported | Partial | Not supported | | DuckDB | 38 | Supported | Partial | Supported | Not supported | Partial | Not supported | | IBM Db2 | 38 | Supported | Partial | Supported | Not supported | Partial | Not supported | | IBM Db2 for i | 38 | Supported | Partial | Supported | Not supported | Partial | Not supported | @@ -149,7 +148,6 @@ The tables below (generated via `python superset/db_engine_specs/lib.py`) summar | Apache Pinot | superset.db_engine_specs.pinot | FORCE_LIMIT | True | None | | Apache Solr | superset.db_engine_specs.solr | FORCE_LIMIT | True | None | | Apache Spark SQL | superset.db_engine_specs.spark | FORCE_LIMIT | True | 767 | -| Ascend | superset.db_engine_specs.ascend | FORCE_LIMIT | True | None | | Aurora MySQL (Data API) | superset.db_engine_specs.aurora | FORCE_LIMIT | True | 64 | | Aurora PostgreSQL (Data API) | superset.db_engine_specs.aurora | FORCE_LIMIT | True | 63 | | Azure Synapse | superset.db_engine_specs.mssql | FORCE_LIMIT | True | 128 | @@ -219,7 +217,6 @@ The tables below (generated via `python superset/db_engine_specs/lib.py`) summar | Apache Pinot | False | False | False | False | True | True | True | False | False | True | False | | Apache Solr | False | False | True | True | True | True | True | False | False | True | False | | Apache Spark SQL | True | True | True | True | True | True | True | False | False | False | False | -| Ascend | True | True | True | True | True | True | True | False | False | True | False | | Aurora MySQL (Data API) | True | True | True | True | True | True | True | False | False | True | False | | Aurora PostgreSQL (Data API) | True | True | True | True | True | True | True | False | False | True | False | | Azure Synapse | True | True | True | True | False | True | True | False | False | True | False | @@ -289,7 +286,6 @@ The tables below (generated via `python superset/db_engine_specs/lib.py`) summar | Apache Pinot | True | True | True | True | True | True | True | True | | Apache Solr | False | False | False | False | False | False | False | False | | Apache Spark SQL | True | True | True | True | True | True | True | True | -| Ascend | True | True | True | True | True | True | True | True | | Aurora MySQL (Data API) | True | True | True | True | True | True | True | True | | Aurora PostgreSQL (Data API) | True | True | True | True | True | True | True | True | | Azure Synapse | True | True | True | True | True | True | True | True | @@ -359,7 +355,6 @@ The tables below (generated via `python superset/db_engine_specs/lib.py`) summar | Apache Pinot | False | False | True | True | True | True | False | False | False | False | False | False | False | | Apache Solr | False | False | False | False | False | False | False | False | False | False | False | False | False | | Apache Spark SQL | False | False | False | False | False | False | False | False | True | False | True | False | False | -| Ascend | False | False | False | False | False | False | False | False | False | False | False | False | False | | Aurora MySQL (Data API) | False | False | False | False | False | False | False | False | False | True | False | False | False | | Aurora PostgreSQL (Data API) | True | True | True | True | True | True | False | False | False | False | False | False | False | | Azure Synapse | False | False | True | True | True | True | False | False | True | True | False | False | False | @@ -432,7 +427,6 @@ Integration with platform features and metadata handling. | Apache Pinot | False | False | False | True | False | False | False | True | False | False | False | False | False | False | | Apache Solr | False | False | False | True | False | False | False | True | False | False | False | False | False | False | | Apache Spark SQL | False | True | True | True | True | True | True | True | True | True | False | True | False | False | -| Ascend | False | False | False | True | False | False | False | True | False | True | False | False | False | False | | Aurora MySQL (Data API) | False | True | False | True | True | False | False | True | False | True | False | False | False | False | | Aurora PostgreSQL (Data API) | False | True | False | True | True | True | True | True | False | True | False | False | False | False | | Azure Synapse | False | True | False | True | False | False | False | True | False | False | False | False | False | False | @@ -502,7 +496,6 @@ Integration with platform features and metadata handling. | Apache Pinot | False | False | False | False | | Apache Solr | False | False | False | False | | Apache Spark SQL | True | True | True | False | -| Ascend | False | False | False | False | | Aurora MySQL (Data API) | False | False | False | False | | Aurora PostgreSQL (Data API) | False | False | True | True | | Azure Synapse | False | False | False | False | diff --git a/superset/db_engine_specs/ascend.py b/superset/db_engine_specs/ascend.py deleted file mode 100644 index b695c4336a7..00000000000 --- a/superset/db_engine_specs/ascend.py +++ /dev/null @@ -1,60 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -from sqlalchemy.dialects import registry - -from superset.constants import TimeGrain -from superset.db_engine_specs.base import DatabaseCategory -from superset.db_engine_specs.impala import ImpalaEngineSpec - - -class AscendEngineSpec(ImpalaEngineSpec): - """Engine spec for Ascend.io (Hive2+TLS) using Cloudera's Impala""" - - engine = "ascend" - registry.register("ascend", "impala.sqlalchemy", "ImpalaDialect") - - engine_name = "Ascend" - - metadata = { - "description": ( - "Ascend.io is a data automation platform for building data pipelines." - ), - "logo": "ascend.webp", - "homepage_url": "https://www.ascend.io/", - "categories": [ - DatabaseCategory.CLOUD_DATA_WAREHOUSES, - DatabaseCategory.ANALYTICAL_DATABASES, - DatabaseCategory.HOSTED_OPEN_SOURCE, - ], - "pypi_packages": ["impyla"], - "connection_string": ( - "ascend://{username}:{password}@{hostname}:{port}/{database}" - "?auth_mechanism=PLAIN;use_ssl=true" - ), - } - - _time_grain_expressions = { - None: "{col}", - TimeGrain.SECOND: "DATE_TRUNC('second', {col})", - TimeGrain.MINUTE: "DATE_TRUNC('minute', {col})", - TimeGrain.HOUR: "DATE_TRUNC('hour', {col})", - TimeGrain.DAY: "DATE_TRUNC('day', {col})", - TimeGrain.WEEK: "DATE_TRUNC('week', {col})", - TimeGrain.MONTH: "DATE_TRUNC('month', {col})", - TimeGrain.QUARTER: "DATE_TRUNC('quarter', {col})", - TimeGrain.YEAR: "DATE_TRUNC('year', {col})", - } diff --git a/superset/sql/parse.py b/superset/sql/parse.py index b90cc55c471..a765e3953b8 100644 --- a/superset/sql/parse.py +++ b/superset/sql/parse.py @@ -105,7 +105,6 @@ def _check_script_length(script: str, engine: str | None) -> None: # mapping between DB engine specs and sqlglot dialects SQLGLOT_DIALECTS = { "base": Dialects.DIALECT, - "ascend": Dialects.HIVE, "awsathena": Dialects.ATHENA, "bigquery": Dialects.BIGQUERY, "datastore": Dialects.BIGQUERY, diff --git a/tests/integration_tests/db_engine_specs/ascend_tests.py b/tests/integration_tests/db_engine_specs/ascend_tests.py deleted file mode 100644 index 045cac7d76a..00000000000 --- a/tests/integration_tests/db_engine_specs/ascend_tests.py +++ /dev/null @@ -1,32 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -from superset.db_engine_specs.ascend import AscendEngineSpec -from tests.integration_tests.base_tests import SupersetTestCase - - -class TestAscendDbEngineSpec(SupersetTestCase): - def test_convert_dttm(self): - dttm = self.get_dttm() - - assert ( - AscendEngineSpec.convert_dttm("DATE", dttm) == "CAST('2019-01-02' AS DATE)" - ) - - assert ( - AscendEngineSpec.convert_dttm("TIMESTAMP", dttm) - == "CAST('2019-01-02T03:04:05.678900' AS TIMESTAMP)" - ) diff --git a/tests/unit_tests/sql/parse_tests.py b/tests/unit_tests/sql/parse_tests.py index 9749ef12c9b..153850a0dd3 100644 --- a/tests/unit_tests/sql/parse_tests.py +++ b/tests/unit_tests/sql/parse_tests.py @@ -1849,7 +1849,6 @@ def test_custom_dialect(app: None) -> None: @pytest.mark.parametrize( "engine", [ - "ascend", "awsathena", "base", "bigquery",