2222use Yiisoft \Db \Expression \CaseExpressionBuilder ;
2323use Yiisoft \Db \Expression \StructuredExpression ;
2424use Yiisoft \Db \Expression \StructuredExpressionBuilder ;
25- use Yiisoft \Db \QueryBuilder \Condition \HashCondition ;
25+ use Yiisoft \Db \QueryBuilder \Condition \Columns ;
2626use Yiisoft \Db \QueryBuilder \Condition \ConditionInterface ;
27- use Yiisoft \Db \QueryBuilder \Condition \SimpleCondition ;
27+ use Yiisoft \Db \QueryBuilder \Condition \Simple ;
2828use Yiisoft \Db \Query \Query ;
2929use Yiisoft \Db \Query \QueryExpressionBuilder ;
3030use Yiisoft \Db \Query \QueryInterface ;
@@ -445,12 +445,15 @@ public function createConditionFromArray(array $condition): ConditionInterface
445445 /** operator format: operator, operand 1, operand 2, ... */
446446 if (isset ($ condition [0 ])) {
447447 $ operator = strtoupper ((string ) array_shift ($ condition ));
448- $ className = $ this ->conditionClasses [$ operator ] ?? SimpleCondition ::class;
448+ $ className = $ this ->conditionClasses [$ operator ] ?? Simple ::class;
449449 return $ className ::fromArrayDefinition ($ operator , $ condition );
450450 }
451451
452- /** hash format: 'column1' => 'value1', 'column2' => 'value2', ... */
453- return new HashCondition ($ condition );
452+ /**
453+ * Key-value format: 'column1' => 'value1', 'column2' => 'value2', ...
454+ * @psalm-var array<string, mixed> $condition
455+ */
456+ return new Columns ($ condition );
454457 }
455458
456459 public function getExpressionBuilder (ExpressionInterface $ expression ): object
@@ -503,21 +506,21 @@ public function setSeparator(string $separator): void
503506 protected function defaultConditionClasses (): array
504507 {
505508 return [
506- 'NOT ' => Condition \NotCondition ::class,
507- 'AND ' => Condition \AndCondition ::class,
508- 'OR ' => Condition \OrCondition ::class,
509- 'BETWEEN ' => Condition \BetweenCondition ::class,
510- 'NOT BETWEEN ' => Condition \BetweenCondition ::class,
511- 'IN ' => Condition \InCondition ::class,
512- 'NOT IN ' => Condition \InCondition ::class,
513- 'LIKE ' => Condition \LikeCondition ::class,
514- 'NOT LIKE ' => Condition \LikeCondition ::class,
515- 'OR LIKE ' => Condition \LikeCondition ::class,
516- 'OR NOT LIKE ' => Condition \LikeCondition ::class,
517- 'EXISTS ' => Condition \ExistsCondition ::class,
518- 'NOT EXISTS ' => Condition \ExistsCondition ::class,
519- 'ARRAY OVERLAPS ' => Condition \ArrayOverlapsCondition ::class,
520- 'JSON OVERLAPS ' => Condition \JsonOverlapsCondition ::class,
509+ 'NOT ' => Condition \Not ::class,
510+ 'AND ' => Condition \AndX ::class,
511+ 'OR ' => Condition \OrX ::class,
512+ 'BETWEEN ' => Condition \Between ::class,
513+ 'NOT BETWEEN ' => Condition \Between ::class,
514+ 'IN ' => Condition \In ::class,
515+ 'NOT IN ' => Condition \In ::class,
516+ 'LIKE ' => Condition \Like ::class,
517+ 'NOT LIKE ' => Condition \Like ::class,
518+ 'OR LIKE ' => Condition \Like ::class,
519+ 'OR NOT LIKE ' => Condition \Like ::class,
520+ 'EXISTS ' => Condition \Exists ::class,
521+ 'NOT EXISTS ' => Condition \Exists ::class,
522+ 'ARRAY OVERLAPS ' => Condition \ArrayOverlaps ::class,
523+ 'JSON OVERLAPS ' => Condition \JsonOverlaps ::class,
521524 ];
522525 }
523526
@@ -536,16 +539,16 @@ protected function defaultExpressionBuilders(): array
536539 Query::class => QueryExpressionBuilder::class,
537540 Param::class => ParamBuilder::class,
538541 Expression::class => ExpressionBuilder::class,
539- Condition \NotCondition ::class => Condition \Builder \NotConditionBuilder ::class,
540- Condition \AndCondition ::class => Condition \Builder \LogicalConditionBuilder ::class,
541- Condition \OrCondition ::class => Condition \Builder \LogicalConditionBuilder ::class,
542- Condition \BetweenCondition ::class => Condition \Builder \BetweenConditionBuilder ::class,
543- Condition \InCondition ::class => Condition \Builder \InConditionBuilder ::class,
544- Condition \LikeCondition ::class => Condition \Builder \LikeConditionBuilder ::class,
545- Condition \ExistsCondition ::class => Condition \Builder \ExistsConditionBuilder ::class,
546- SimpleCondition ::class => Condition \Builder \SimpleConditionBuilder ::class,
547- HashCondition ::class => Condition \Builder \HashConditionBuilder ::class,
548- Condition \BetweenColumnsCondition ::class => Condition \Builder \BetweenColumnsConditionBuilder ::class,
542+ Condition \Not ::class => Condition \Builder \NotBuilder ::class,
543+ Condition \AndX ::class => Condition \Builder \LogicalBuilder ::class,
544+ Condition \OrX ::class => Condition \Builder \LogicalBuilder ::class,
545+ Condition \Between ::class => Condition \Builder \BetweenBuilder ::class,
546+ Condition \In ::class => Condition \Builder \InBuilder ::class,
547+ Condition \Like ::class => Condition \Builder \LikeBuilder ::class,
548+ Condition \Exists ::class => Condition \Builder \ExistsBuilder ::class,
549+ Simple ::class => Condition \Builder \SimpleBuilder ::class,
550+ Columns ::class => Condition \Builder \ColumnsBuilder ::class,
551+ Condition \BetweenColumns ::class => Condition \Builder \BetweenColumnsBuilder ::class,
549552 JsonExpression::class => JsonExpressionBuilder::class,
550553 ArrayExpression::class => ArrayExpressionBuilder::class,
551554 StructuredExpression::class => StructuredExpressionBuilder::class,
0 commit comments