Repository navigation
MsSql: Preserve ALTER ROLE ... WITH NAME = on display - #2709
Open
princejain756 wants to merge 2 commits into
Open
princejain756 wants to merge 2 commits into
princejain756 wants to merge 2 commits into
Conversation
A field access whose target identifier starts with a digit, as in SELECT [dbo]. 1te_sk in Hive, displayed without the space as [dbo].1te_sk. On re-lexing, .1 is read as a number, so the output parsed as a different statement or failed to parse. AccessExpr::Dot now writes ' . ' before an unquoted identifier starting with a digit, extending the existing handling for numeric literals from apache#2463. Fixes apache#2589
The T-SQL parser maps ALTER ROLE x WITH NAME = y to AlterRoleOperation::RenameRole, which Display renders as RENAME TO - syntax T-SQL cannot parse. Track the surface form with a use_with_name flag so the mssql parse emits WITH NAME = back. RENAME TO still renders for dialects that parsed it.
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.
ALTER ROLE old_name WITH NAME = new_name, the only rename form T-SQL accepts [1], parses intoAlterRoleOperation::RenameRole, whichDisplayrenders asRENAME TO- syntax T-SQL cannot parse back:RenameRolenow carries ause_with_nameflag set by the mssql parse path, so the statement renders back asWITH NAME =. TheRENAME TOparse path (Postgres/Generic) is unchanged.Verified against the T-SQL grammar [1]:
ALTER ROLEoffers onlyADD MEMBER,DROP MEMBER, andWITH NAME =;RENAME TOdoes not exist there.[1] https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-role-transact-sql
Written with AI assistance (SWE-2 Max via Devin).