support case insensitive field matching #74
Merged
+66
−4
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.
Incorporate the changes from joboon-CaseInsensitiveFieldMatching.
And here's the description copied from the email:
In tandem with skipping quotes on identifiers, we’ve discovered a way to get the dialector to do a pseudo-case-insensitive match on returned unquoted columns/tables from Oracle (which are all uppercase) to struct fields which may not necessarily be all uppercased. This helps us maintain parity between SQL calls we make in postgres with Oracle, without relying on quoting everything (and breaking existing unquoted ad-hoc SQL statements). This solution leverages the db.Statement.ColumnMapping feature in gorm. I think it is a pretty simple solution that makes sense to be used in all situations where one wishes to skip quoting to give the illusion of case insensitivity.
This PR also updates config_test.go to verify the 'skipping quotes' option through an actual insertion instead of just comparing the generated SQL.