Stop creating SQL literals for aliases. #187
Closed
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.
PostgreSQL requires that the aliases aren't quoted, but MySQL and SQLite
don't seem to care at all, and it seems like we would do better to avoid
creating SqlLiteral nodes where we don't need to.
I ran the mysql/postgresql/sqlite3 tests for ActiveRecord against this
branch and everything passes. Of course, we all know that doesn't
necessarily mean anything.
This is tangentially related to activerecord-hackery/squeel#246, but still doesn't
address the "reserved word" complaint there. Might make sense to have an
Alias node for special visitation vs the SqlLiteral one, perhaps. Or
maybe we just don't care if someone wants to alias things using reserved
words in pg, because that's just cray-cray.