From a163e2688c810fa771c9e1ef733cc1cd173abf2d Mon Sep 17 00:00:00 2001 From: Peng Ren Date: Thu, 18 Dec 2025 20:46:01 -0500 Subject: [PATCH 1/2] Fix bug for superset --- pymongosql/__init__.py | 2 +- .../sqlalchemy_mongodb/sqlalchemy_compat.py | 2 +- .../sqlalchemy_mongodb/sqlalchemy_dialect.py | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/pymongosql/__init__.py b/pymongosql/__init__.py index e404a89..3014e99 100644 --- a/pymongosql/__init__.py +++ b/pymongosql/__init__.py @@ -6,7 +6,7 @@ if TYPE_CHECKING: from .connection import Connection -__version__: str = "0.2.0" +__version__: str = "0.2.1" # Globals https://www.python.org/dev/peps/pep-0249/#globals apilevel: str = "2.0" diff --git a/pymongosql/sqlalchemy_mongodb/sqlalchemy_compat.py b/pymongosql/sqlalchemy_mongodb/sqlalchemy_compat.py index 2c1263c..14d76d5 100644 --- a/pymongosql/sqlalchemy_mongodb/sqlalchemy_compat.py +++ b/pymongosql/sqlalchemy_mongodb/sqlalchemy_compat.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +# -*- coding: utf-8 -*- """ SQLAlchemy version compatibility utilities for PyMongoSQL. diff --git a/pymongosql/sqlalchemy_mongodb/sqlalchemy_dialect.py b/pymongosql/sqlalchemy_mongodb/sqlalchemy_dialect.py index 3026cea..7d6b09b 100644 --- a/pymongosql/sqlalchemy_mongodb/sqlalchemy_dialect.py +++ b/pymongosql/sqlalchemy_mongodb/sqlalchemy_dialect.py @@ -324,6 +324,24 @@ def get_table_names(self, connection, schema: Optional[str] = None, **kwargs) -> _logger.warning(f"Failed to get table names: {e}") return [] + def get_view_names(self, connection, schema: Optional[str] = None, **kwargs) -> List[str]: + """Get list of views. + + MongoDB doesn't have traditional SQL views like relational databases. + Return empty list to satisfy SQLAlchemy and tools like Superset. + + Args: + connection: Database connection + schema: Optional schema/database name + **kwargs: Additional arguments + + Returns: + Empty list as MongoDB doesn't support SQL views + """ + # MongoDB doesn't have traditional SQL views + # Return empty list to avoid NotImplementedError + return [] + def get_columns(self, connection, table_name: str, schema: Optional[str] = None, **kwargs) -> List[Dict[str, Any]]: """Get column information for a collection. From 8aa663bb48e928c1c9ba024e33a1090727e0e150 Mon Sep 17 00:00:00 2001 From: Peng Ren Date: Thu, 18 Dec 2025 20:48:00 -0500 Subject: [PATCH 2/2] Fix code smell --- pymongosql/sqlalchemy_mongodb/sqlalchemy_dialect.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pymongosql/sqlalchemy_mongodb/sqlalchemy_dialect.py b/pymongosql/sqlalchemy_mongodb/sqlalchemy_dialect.py index 7d6b09b..f137eb4 100644 --- a/pymongosql/sqlalchemy_mongodb/sqlalchemy_dialect.py +++ b/pymongosql/sqlalchemy_mongodb/sqlalchemy_dialect.py @@ -326,15 +326,15 @@ def get_table_names(self, connection, schema: Optional[str] = None, **kwargs) -> def get_view_names(self, connection, schema: Optional[str] = None, **kwargs) -> List[str]: """Get list of views. - + MongoDB doesn't have traditional SQL views like relational databases. Return empty list to satisfy SQLAlchemy and tools like Superset. - + Args: connection: Database connection schema: Optional schema/database name **kwargs: Additional arguments - + Returns: Empty list as MongoDB doesn't support SQL views """