From 0970a4a76cd060dd3695685039ad926c484103c9 Mon Sep 17 00:00:00 2001 From: Eric Masseran Date: Fri, 16 Jul 2021 12:02:42 +0200 Subject: [PATCH] Do not check language support --- lib/sqlalchemy/dialects/postgresql/base.py | 1 - lib/sqlalchemy/dialects/sqlite/base.py | 1 - lib/sqlalchemy/engine/default.py | 1 - lib/sqlalchemy/sql/compiler.py | 6 ------ test/sql/test_cte.py | 21 --------------------- 5 files changed, 30 deletions(-) diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index baa0efe4b2..4c654a643b 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -3091,7 +3091,6 @@ class PGDialect(default.DefaultDialect): supports_comments = True supports_default_values = True - supports_nesting_cte = True supports_default_metavalue = True diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py index 4d0cb56ade..66a556ae0d 100644 --- a/lib/sqlalchemy/dialects/sqlite/base.py +++ b/lib/sqlalchemy/dialects/sqlite/base.py @@ -1807,7 +1807,6 @@ class SQLiteDialect(default.DefaultDialect): supports_multivalues_insert = True tuple_in_values = True supports_statement_cache = True - supports_nesting_cte = True default_paramstyle = "qmark" execution_ctx_cls = SQLiteExecutionContext diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index 8cdde558b6..7b3fa091fd 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -81,7 +81,6 @@ class DefaultDialect(interfaces.Dialect): insert_executemany_returning = False cte_follows_insert = False - supports_nesting_cte = False supports_native_enum = False supports_native_boolean = False diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index e0c1028190..f5079c74a4 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -3361,12 +3361,6 @@ class SQLCompiler(Compiled): if not cte.nesting and self.level_by_ctes[cte] == nesting_level } - if ctes and not self.dialect.supports_nesting_cte: - raise exc.CompileError( - "Nesting CTE is not supported by this " - "dialect's statement compiler." - ) - ctes_recursive = any([cte.recursive for cte in ctes]) if self.positional: diff --git a/test/sql/test_cte.py b/test/sql/test_cte.py index 04d8a999c0..72e3f506e8 100644 --- a/test/sql/test_cte.py +++ b/test/sql/test_cte.py @@ -1,5 +1,4 @@ import functools -import pytest from sqlalchemy import delete from sqlalchemy import testing from sqlalchemy import text @@ -1570,26 +1569,6 @@ class NestingCTETest(fixtures.TestBase, AssertsCompiledSQL): "SELECT cte.outer_cte FROM cte", ) - @pytest.mark.parametrize( - "dialect", - [mysql], - ) - def test_nesting_cte_unsupported_backend_raise(self, dialect): - stmt = select( - [ - select( - [select([literal(1).label("one")]).cte("t2", nesting=True)] - ).cte("t") - ] - ) - - assert_raises_message( - CompileError, - "Nesting CTE is not supported by this " - "dialect's statement compiler.", - functools.partial(stmt.compile, dialect=dialect.dialect()), - ) - def test_select_from_insert_cte_with_nesting(self): products = table("products", column("id"), column("price")) -- 2.47.3