@@ 352-378 (lines=27) @@ | ||
349 | return substr($sql, 0, -1); |
|
350 | } |
|
351 | ||
352 | protected function processWhereExpression($parsed) |
|
353 | { |
|
354 | if ($parsed['expr_type'] !== ExpressionType::EXPRESSION) { |
|
355 | return ''; |
|
356 | } |
|
357 | $sql = ''; |
|
358 | foreach ($parsed['sub_tree'] as $k => $v) { |
|
359 | $len = strlen($sql); |
|
360 | $sql .= $this->processColRef($v); |
|
361 | $sql .= $this->processConstant($v); |
|
362 | $sql .= $this->processOperator($v); |
|
363 | $sql .= $this->processInList($v); |
|
364 | $sql .= $this->processFunction($v); |
|
365 | $sql .= $this->processWhereExpression($v); |
|
366 | $sql .= $this->processWhereBracketExpression($v); |
|
367 | ||
368 | if ($len == strlen($sql)) { |
|
369 | throw new UnableToCreateSQLException('WHERE expression subtree', $k, $v, 'expr_type'); |
|
370 | } |
|
371 | ||
372 | $sql .= ' '; |
|
373 | } |
|
374 | ||
375 | $sql = substr($sql, 0, -1); |
|
376 | ||
377 | return $sql; |
|
378 | } |
|
379 | ||
380 | protected function processWhereBracketExpression($parsed) |
|
381 | { |
|
@@ 380-406 (lines=27) @@ | ||
377 | return $sql; |
|
378 | } |
|
379 | ||
380 | protected function processWhereBracketExpression($parsed) |
|
381 | { |
|
382 | if ($parsed['expr_type'] !== ExpressionType::BRACKET_EXPRESSION) { |
|
383 | return ''; |
|
384 | } |
|
385 | $sql = ''; |
|
386 | foreach ($parsed['sub_tree'] as $k => $v) { |
|
387 | $len = strlen($sql); |
|
388 | $sql .= $this->processColRef($v); |
|
389 | $sql .= $this->processConstant($v); |
|
390 | $sql .= $this->processOperator($v); |
|
391 | $sql .= $this->processInList($v); |
|
392 | $sql .= $this->processFunction($v); |
|
393 | $sql .= $this->processWhereExpression($v); |
|
394 | $sql .= $this->processWhereBracketExpression($v); |
|
395 | ||
396 | if ($len == strlen($sql)) { |
|
397 | throw new UnableToCreateSQLException('WHERE expression subtree', $k, $v, 'expr_type'); |
|
398 | } |
|
399 | ||
400 | $sql .= ' '; |
|
401 | } |
|
402 | ||
403 | $sql = '('.substr($sql, 0, -1).')'; |
|
404 | ||
405 | return $sql; |
|
406 | } |
|
407 | ||
408 | protected function processOrderByAlias($parsed) |
|
409 | { |