Browse Source

Merge pull request #6734 from StewEucen/fix-parenthesis-of-functionexpression

Fix: unused parenthesis for parameters of FunctionExpression.
José Lorenzo Rodríguez 10 years ago
parent
commit
1cbaa016d6

+ 1 - 1
src/Database/Expression/FunctionExpression.php

@@ -127,7 +127,7 @@ class FunctionExpression extends QueryExpression
         $parts = [];
         foreach ($this->_conditions as $condition) {
             if ($condition instanceof ExpressionInterface) {
-                $condition = $condition->sql($generator);
+                $condition = sprintf('(%s)', $condition->sql($generator));
             } elseif (is_array($condition)) {
                 $p = $generator->placeholder('param');
                 $generator->bind($p, $condition['value'], $condition['type']);

+ 1 - 1
tests/TestCase/Database/Expression/FunctionExpressionTest.php

@@ -79,7 +79,7 @@ class FunctionExpressionTest extends TestCase
         $binder = new ValueBinder;
         $f = new FunctionExpression('MyFunction', ['foo', 'bar']);
         $g = new FunctionExpression('Wrapper', ['bar' => 'literal', $f]);
-        $this->assertEquals("Wrapper(bar, MyFunction(:c0, :c1))", $g->sql($binder));
+        $this->assertEquals("Wrapper(bar, (MyFunction(:c0, :c1)))", $g->sql($binder));
     }
 
     /**