-
Notifications
You must be signed in to change notification settings - Fork 39
feat(connectors): BI-6586 Support YDB VIEW #1245
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
a575e6c to
8dde00c
Compare
02ef2a5 to
9f1aeeb
Compare
08f6a01 to
e80cc55
Compare
234fada to
a0f6652
Compare
4156d76 to
01e92a0
Compare
636eec7 to
6d54f1d
Compare
574a010 to
9575ee3
Compare
9575ee3 to
333c80c
Compare
e80cc55 to
304098d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds support for YDB VIEW objects by enabling views to be treated similarly to tables in queries and dataset operations. The changes enable YDB views functionality through feature flags and update the connector to properly handle view objects alongside tables.
- Enables YDB view support via feature flag configuration
- Updates table listing logic to include view objects
- Implements custom column info retrieval for views using subselect queries
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| lib/dl_sqlalchemy_ydb/dl_sqlalchemy_ydb/dialect.py | Updates type hint to accept integer values in interval processing |
| lib/dl_connector_ydb/pyproject.toml | Fixes relative path reference for dl-sqlalchemy-ydb dependency |
| lib/dl_connector_ydb/docker-compose.yml | Adds feature flag to enable views in YDB test environment |
| lib/dl_connector_ydb/dl_connector_ydb_tests/db/api/test_dataset.py | Adds test class for view-based datasets |
| lib/dl_connector_ydb/dl_connector_ydb_tests/db/api/base.py | Implements test fixture base class for YDB view testing |
| lib/dl_connector_ydb/dl_connector_ydb/core/ydb/adapter.py | Updates table listing to include view objects |
| lib/dl_connector_ydb/dl_connector_ydb/core/base/adapter.py | Implements custom column info retrieval for views using subselects |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| table_path = table_def.table_name | ||
| else: | ||
| # Not ok? | ||
| raise ValueError("absolute table path is not subpath of database path") |
Copilot
AI
Dec 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The error message should be more descriptive and include the actual paths to help debugging. Consider: f'Absolute table path {table_def.table_name} is not a subpath of database path {table_def.db_name}'
| raise ValueError("absolute table path is not subpath of database path") | |
| raise ValueError( | |
| f"Absolute table path '{table_def.table_name}' is not a subpath of database path '{table_def.db_name}'" | |
| ) |
| else: | ||
| # Not ok? | ||
| raise ValueError("absolute table path is not subpath of database path") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Is this scenario actually possible? If it is, let's create a test for it
- Is
ValueErrorsuitable here? Won't it fire as a 5xx from the API?
No description provided.