-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix regression in QueryBuilder::and|orWhere() #4330
Conversation
@@ -834,7 +834,9 @@ public function andWhere($where) | |||
$where = $this->getQueryPart('where'); | |||
|
|||
if ($where instanceof CompositeExpression && $where->getType() === CompositeExpression::TYPE_AND) { | |||
$where = $where->with(...$args); | |||
if ($args) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please avoid implicit conversion to a boolean. Use count($args) > 0
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+2 opcodes 😉 Done.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-2 seconds to understand the logic 😎
Thanks, @BenMorel. |
Thank you guys, I love the pace to sort this out. |
@morozov is there any release planned? thx a ton for your work on this fix |
I didn't plan for it but given the demand, I can release it this week. |
Release [2.11.2](https://github.com/doctrine/dbal/milestone/81) 2.11.2 ====== - Total issues resolved: **5** - Total pull requests resolved: **16** - Total contributors: **10** Static Analysis --------------- - [4353: Update Psalm to 3.17.2 and lock the version used with GitHub Actions](doctrine#4353) thanks to @morozov - [4348: Bump Psalm level to 3](doctrine#4348) thanks to @morozov - [4332: Static analysis improvements](doctrine#4332) thanks to @morozov - [4319: Bump Psalm level to 4](doctrine#4319) thanks to @morozov Code Style ---------- - [4346: Minor CS improvement - use ::class for TestCase::expectException input](doctrine#4346) thanks to @mvorisek - [4344: Static analysis workflow](doctrine#4344) thanks to @greg0ire - [4340: Modernize existing ga](doctrine#4340) thanks to @greg0ire - [4309: Use cache action v2](doctrine#4309) thanks to @greg0ire - [4305: Move website config to default branch](doctrine#4305) thanks to @SenseException Improvement,Prepared Statements ------------------------------- - [4341: Add Statement::fetchAllIndexedAssociative() and ::iterateIndexedAssociative()](doctrine#4341) thanks to @morozov and @ZaneCEO - [4338: Add Statement::fetchAllKeyValue() and ::iterateKeyValue()](doctrine#4338) thanks to @morozov BC Fix,Query ------------ - [4330: Fix regression in QueryBuilder::and|orWhere()](doctrine#4330) thanks to @BenMorel Test Suite ---------- - [4321: Update PHPUnit to 9.4](doctrine#4321) thanks to @morozov Columns,SQL Server,Schema Managers ---------------------------------- - [4315: Fix handling existing SQL Server column comment when other properties change](doctrine#4315) thanks to @trusek CI -- - [4310: Migrate jobs away from Travis to Github Actions ](doctrine#4310) thanks to @greg0ire BC Fix,Connections ------------------ - [4308: doctrine#4295 Keep master, slaves, keepReplica params in MasterSlaveConnection](doctrine#4308) thanks to @kralos New Feature,Prepared Statements ------------------------------- - [4289: Add a fetch mode methods for "PDO::FETCH&doctrine#95;KEY&doctrine#95;PAIR"](doctrine#4289) thanks to @tswcode Bug,SQL Server,Schema --------------------- - [3400: Wrong column comment setting command in migrations of SQL Server](doctrine#3400) thanks to @msyfurukawa # gpg: Signature made Mon Oct 19 04:18:17 2020 # gpg: using DSA key 1BEDEE0A820BC30D858F9F0C2C3A645671828132 # gpg: Can't check signature: No public key
Summary
#4286 fixed only half of the regression.
Using
andWhere('')
ororWhere('')
after a non-empty where condition has already been set results in an error.See #4282 (comment)