fix: schema-qualified table handling in SQL Server - #184
Open
aambayec wants to merge 2 commits into
Open
Conversation
Use clause.CurrentTable instead of Statement.Table when generating
IDENTITY_INSERT and MERGE statements.
This allows GORM's core Statement.QuoteTo logic to honor
Statement.TableExpr for schema-qualified tables created via
db.Table("schema.table").
Author
|
The CI failure appears unrelated to this change. The workflow is failing while parsing |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What did this pull request do?
This PR fixes schema-qualified table handling in the SQL Server driver.
The SQL Server-specific Create and MergeCreate callbacks used
Statement.Table directly when generating IDENTITY_INSERT and MERGE
statements, causing the schema to be omitted when using
db.Table("schema.table").
This change uses clause.CurrentTable instead, allowing GORM's core
quoting logic to honor Statement.TableExpr.
Regression tests have been added for both Create and Save using
schema-qualified tables.
User Case Description
Applications may target tables in different schemas by using
db.Table("schema.table").
Before this change, Create and Save generated SQL that omitted the
schema in SQL Server-specific statements (IDENTITY_INSERT and MERGE),
resulting in errors such as "Invalid object name".
After this change, schema-qualified table names are preserved
consistently throughout SQL generation.
Note: The regression tests reproduce the issue on the current implementation and pass after this fix is applied.