Repository navigation
Reverse SQLite string-literal identifiers to double-quoted ones - #149
Merged
Merged
Conversation
SQLite accepts a string literal where its grammar names an identifier, so `SELECT id AS 'label' FROM users` names the column `label`. The reverse translator kept the single quotes, and PostgreSQL rejects `AS 'label'`. Since sqlparser #2668 its PostgreSQL dialect rejects it as well, so the committed reverse seed `ec46c0b9` now fails `fuzz_reverse_translation` on main. The identifier normalizer now rewrites single-quoted identifiers to double quotes, as it already did for backticks and brackets. PostgreSQL has no zero-length identifier, so an empty delimited one is refused instead of rendered.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.
SQLite accepts a string literal where its grammar names an identifier, so
SELECT id AS 'label' FROM usersnames the columnlabel. The reverse translator kept the single quotes, and PostgreSQL rejectsAS 'label'. Since sqlparser #2668 its PostgreSQL dialect rejects it as well, so the committed reverse seedec46c0b9now failsfuzz_reverse_translationon main.The identifier normalizer now rewrites single-quoted identifiers to double quotes, as it already did for backticks and brackets. PostgreSQL has no zero-length identifier, so an empty delimited one is refused instead of rendered.