summaryrefslogtreecommitdiffstats
path: root/src/Components
diff options
context:
space:
mode:
authorDan Ungureanu <udan1107@gmail.com>2015-08-14 00:16:12 +0300
committerDan Ungureanu <udan1107@gmail.com>2015-08-14 00:19:48 +0300
commit09a7047bf51de1d733dd95674f083c1e11c656e1 (patch)
tree6a9dbc92d7d4390ecae7cf0776dd6cb20fecef06 /src/Components
parenta36dbf270118af42e09b223957ed0d96f6ac0ed9 (diff)
downloadsql-parser-09a7047bf51de1d733dd95674f083c1e11c656e1.zip
sql-parser-09a7047bf51de1d733dd95674f083c1e11c656e1.tar.gz
sql-parser-09a7047bf51de1d733dd95674f083c1e11c656e1.tar.bz2
Finished builders for components.
Diffstat (limited to 'src/Components')
-rw-r--r--src/Components/Array2d.php10
-rw-r--r--src/Components/ArrayObj.php22
-rw-r--r--src/Components/IntoKeyword.php16
-rw-r--r--src/Components/RenameOperation.php21
4 files changed, 61 insertions, 8 deletions
diff --git a/src/Components/Array2d.php b/src/Components/Array2d.php
index c53c8be..c616fdb 100644
--- a/src/Components/Array2d.php
+++ b/src/Components/Array2d.php
@@ -118,4 +118,14 @@ class Array2d extends Component
--$list->idx;
return $ret;
}
+
+ /**
+ * @param ArrayObj[] $component The component to be built.
+ *
+ * @return string
+ */
+ public static function build($component)
+ {
+ return ArrayObj::build($component);
+ }
}
diff --git a/src/Components/ArrayObj.php b/src/Components/ArrayObj.php
index 8dde518..ef0f79f 100644
--- a/src/Components/ArrayObj.php
+++ b/src/Components/ArrayObj.php
@@ -133,20 +133,28 @@ class ArrayObj extends Component
}
/**
- * @param ArrayObj $component The component to be built.
+ * @param ArrayObj|ArrayObj[] $component The component to be built.
*
* @return string
*/
public static function build($component)
{
- $values = array();
- if (!empty($component->raw)) {
- $values = $component->raw;
+ if (is_array($component)) {
+ $values = array();
+ foreach ($component as $c) {
+ $values[] = static::build($c);
+ }
+ return implode(', ', $values);
} else {
- foreach ($component->values as $value) {
- $values[] = $value;
+ $values = array();
+ if (!empty($component->raw)) {
+ $values = $component->raw;
+ } else {
+ foreach ($component->values as $value) {
+ $values[] = $value;
+ }
}
+ return '(' . implode(', ', $values) . ')';
}
- return '(' . implode(', ', $values) . ')';
}
}
diff --git a/src/Components/IntoKeyword.php b/src/Components/IntoKeyword.php
index cb25481..9b52c7c 100644
--- a/src/Components/IntoKeyword.php
+++ b/src/Components/IntoKeyword.php
@@ -128,4 +128,20 @@ class IntoKeyword extends Component
--$list->idx;
return $ret;
}
+
+ /**
+ * @param IntoKeyword $component The component to be built.
+ *
+ * @return string
+ */
+ public static function build($component)
+ {
+ if ($component->type === 'OUTFILE') {
+ return 'OUTFILE "' . $component->dest . '"';
+ } else {
+ $columns = !empty($component->columns) ?
+ '(' . implode(', ', $component->columns) . ')' : '';
+ return Expression::build($component->dest) . $columns;
+ }
+ }
}
diff --git a/src/Components/RenameOperation.php b/src/Components/RenameOperation.php
index 7d115fb..cc9630c 100644
--- a/src/Components/RenameOperation.php
+++ b/src/Components/RenameOperation.php
@@ -44,7 +44,7 @@ class RenameOperation extends Component
* @param TokensList $list The list of tokens that are being parsed.
* @param array $options Parameters for parsing.
*
- * @return RenameOperation
+ * @return RenameOperation[]
*/
public static function parse(Parser $parser, TokensList $list, array $options = array())
{
@@ -157,4 +157,23 @@ class RenameOperation extends Component
--$list->idx;
return $ret;
}
+
+ /**
+ * @param RenameOperation $component The component to be built.
+ *
+ * @return string
+ */
+ public static function build($component)
+ {
+ if (is_array($component)) {
+ $values = array();
+ foreach ($component as $c) {
+ $values[] = static::build($c);
+ }
+ return implode(', ', $values);
+ } else {
+ return Expression::build($component->old) . ' TO '
+ . Expression::build($component->new);
+ }
+ }
}