Fix SQL query quoting/casting when type is passed to where function #936
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.
The
$type
variable can be both string or int, so before comparing it toTYPE_CONDITION
string it has to be casted to avoid comparing integer zerowith string
(0 == 'TYPE_CONDITION')
which will wrongly return true,and remove the information about type.
Pass type provided to where function down the chain to allow automatic
casting of arrays of values e.g. to int.
This fixes following cases:
and
In both cases now passed value is correctly casted to int
(either single value, or each value from array)
Passing
Zend_Db::INT_TYPE
to where condition will prevent mysql performanceissues which might occur when mixed types are passed in "
in()
" condition.related: #381
Also fixes type hints along the way.
Related PR on Magento2 side magento/magento2#27980