summaryrefslogtreecommitdiffstats
path: root/src/Components/Expression.php
diff options
context:
space:
mode:
authorDan Ungureanu <udan1107@gmail.com>2015-08-18 02:24:42 +0300
committerDan Ungureanu <udan1107@gmail.com>2015-08-18 02:24:42 +0300
commit14c54da98c3b4f18c78ff44c22fbdd20e8ef6e18 (patch)
treea4604f6b1d1095790e313b71bf226e4291788ca8 /src/Components/Expression.php
parent1568adba1af7bf061354a30afd169e29fa43f133 (diff)
downloadsql-parser-14c54da98c3b4f18c78ff44c22fbdd20e8ef6e18.zip
sql-parser-14c54da98c3b4f18c78ff44c22fbdd20e8ef6e18.tar.gz
sql-parser-14c54da98c3b4f18c78ff44c22fbdd20e8ef6e18.tar.bz2
Replaced explicit calls to Component::build() with implicit calls to Component::__toString().
Fixed bugs that caused field names like '0', '0.0', etc. to be considered invalid. Refactoring.
Diffstat (limited to 'src/Components/Expression.php')
-rw-r--r--src/Components/Expression.php38
1 files changed, 21 insertions, 17 deletions
diff --git a/src/Components/Expression.php b/src/Components/Expression.php
index 11e7132..ad4d5e8 100644
--- a/src/Components/Expression.php
+++ b/src/Components/Expression.php
@@ -350,32 +350,36 @@ class Expression extends Component
}
/**
- * @param Expression $component The component to be built.
+ * @param Expression|Expression[] $component The component to be built.
*
* @return string
*/
public static function build($component)
{
- if (!empty($component->expr)) {
- $ret = $component->expr;
+ if (is_array($component)) {
+ return implode($component, ', ');
} else {
- $fields = array();
- if (!empty($component->database)) {
- $fields[] = $component->database;
- }
- if (!empty($component->table)) {
- $fields[] = $component->table;
+ if (!empty($component->expr)) {
+ $ret = $component->expr;
+ } else {
+ $fields = array();
+ if ((isset($component->database)) && ($component->database !== '')) {
+ $fields[] = $component->database;
+ }
+ if ((isset($component->table)) && ($component->table !== '')) {
+ $fields[] = $component->table;
+ }
+ if ((isset($component->column)) && ($component->column !== '')) {
+ $fields[] = $component->column;
+ }
+ $ret = implode('.', Context::escape($fields));
}
- if (!empty($component->column)) {
- $fields[] = $component->column;
+
+ if (!empty($component->alias)) {
+ $ret .= ' AS ' . Context::escape($component->alias);
}
- $ret = implode('.', Context::escape($fields));
- }
- if (!empty($component->alias)) {
- $ret .= ' AS ' . Context::escape($component->alias);
+ return $ret;
}
-
- return $ret;
}
}