-
Notifications
You must be signed in to change notification settings - Fork 11
Use prefixed table name, add case-insensitivity #51
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
Use prefixed table name, add case-insensitivity #51
Conversation
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 implements case-insensitive table and column name handling in the Dataverse client, with a significant change to how table names are interpreted: table_schema_name parameters now represent the SchemaName directly rather than being normalized with prefixes. The changes add helper methods for case normalization, update parameter names throughout the codebase from logical_name to table_schema_name, and modify metadata lookup to use LogicalName (lowercase) for case-insensitive queries.
Key changes:
- Added case-insensitive cache key normalization and automatic lowercasing of column names in CRUD operations
- Changed table creation to accept SchemaName directly as
table_schema_nameparameter - Updated all public APIs to use
table_schema_nameparameter instead oflogical_name
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/PowerPlatform/Dataverse/data/odata.py | Core implementation of case-insensitive handling with new helper methods, cache normalization, and metadata lookup changes |
| src/PowerPlatform/Dataverse/client.py | Updated public API parameter names and added detailed docstrings explaining case-sensitivity rules |
| examples/basic/functional_testing.py | Updated example to use explicit SchemaName with prefix and include primary column schema name |
| examples/advanced/walkthrough.py | New comprehensive walkthrough example demonstrating all SDK features with proper naming conventions |
| examples/advanced/pandas_integration.py | Updated to use explicit SchemaName format with prefixes in column definitions |
| examples/advanced/file_upload.py | Updated variable references and terminology in comments |
| examples/advanced/complete_walkthrough.py | Deleted (replaced by walkthrough.py) |
| README.md | Updated documentation with detailed case-sensitivity rules and examples using explicit prefixes |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Do you think README sample and various examples now pass with this iteration? |
b69d8f2
Round 2 of #39
This time, interpret tablename as the SchemaName in create_table and persist that in the table directly.
More details to be added once we discuss and decide if it's what we want.