Skip to content

Commit 6737695

Browse files
authored
Build User Varaiable Expression in FunctionBuilder (#340)
Implement UserVariableBuilder in FunctionBuilder to build for custom variable. This changes solve issues of subtree with user_variable expr_type Solve this error while building parsed query. Message: unknown [expr_type] = user_variable in "function subtree
1 parent c20bc35 commit 6737695

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

src/PHPSQLParser/builders/FunctionBuilder.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,12 @@ protected function buildSubQuery($parsed) {
9292
$builder = new SubQueryBuilder();
9393
return $builder->build($parsed);
9494
}
95-
95+
96+
protected function buildUserVariableExpression($parsed) {
97+
$builder = new UserVariableBuilder();
98+
return $builder->build($parsed);
99+
}
100+
96101
public function build(array $parsed) {
97102
if (($parsed['expr_type'] !== ExpressionType::AGGREGATE_FUNCTION)
98103
&& ($parsed['expr_type'] !== ExpressionType::SIMPLE_FUNCTION)
@@ -114,6 +119,7 @@ public function build(array $parsed) {
114119
$sql .= $this->buildReserved($v);
115120
$sql .= $this->buildSelectBracketExpression($v);
116121
$sql .= $this->buildSelectExpression($v);
122+
$sql .= $this->buildUserVariableExpression($v);
117123

118124
if ($len == strlen($sql)) {
119125
throw new UnableToCreateSQLException('function subtree', $k, $v, 'expr_type');

0 commit comments

Comments
 (0)