This repository has been archived by the owner on Nov 9, 2021. It is now read-only.
quoting field names in where(), having() and expressions #224
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.
I added auto-quoting ability to WhereBlock.where(), HavingBlock.having(), Expression.or() and Expression.and() by providing an alternate method signature (field, operator, ...params). All existing tests pass and I added new tests to check the quoting feature. This is also related to issue #164
So for example if you have
autoQuoteFieldNames = true
and you call.where("field", "=", 42)
you will getWHERE
field= 42
If you call
.where("field = ?", 42)
you will getWHERE field = 42
as before.So its:
.where("field = ?", 42)
vs..where("field", "=", 42)
.having("field <> ?", "val")
vs..having("field", "<>", "val")
.and("field IN ?", [4, 8, 15, 16, 23, 42])
vs..where("field", "IN", [4, 8, 15, 16, 23, 42])
.or("field like ?", "~foo")
vs..where("field", "like", "~foo")
Recognized operators are
['=', '<', '>', '<=', '>=', '<>', '!=', 'in', 'not in', 'like', 'not like']