summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Component.php3
-rw-r--r--src/Components/AlterOperation.php3
-rw-r--r--src/Components/Array2d.php3
-rw-r--r--src/Components/ArrayObj.php3
-rw-r--r--src/Components/Condition.php3
-rw-r--r--src/Components/CreateDefinition.php10
-rw-r--r--src/Components/DataType.php12
-rw-r--r--src/Components/Expression.php3
-rw-r--r--src/Components/ExpressionArray.php3
-rw-r--r--src/Components/FunctionCall.php3
-rw-r--r--src/Components/IntoKeyword.php3
-rw-r--r--src/Components/JoinKeyword.php3
-rw-r--r--src/Components/Key.php7
-rw-r--r--src/Components/Limit.php3
-rw-r--r--src/Components/OptionsArray.php3
-rw-r--r--src/Components/OrderKeyword.php3
-rw-r--r--src/Components/ParameterDefinition.php3
-rw-r--r--src/Components/PartitionDefinition.php3
-rw-r--r--src/Components/Reference.php3
-rw-r--r--src/Components/RenameOperation.php3
-rw-r--r--src/Components/SetOperation.php3
-rw-r--r--src/Components/UnionKeyword.php3
-rw-r--r--src/Utils/Formatter.php2
-rw-r--r--tests/Builder/CreateStatementTest.php8
24 files changed, 62 insertions, 34 deletions
diff --git a/src/Component.php b/src/Component.php
index 1678706..eff88e6 100644
--- a/src/Component.php
+++ b/src/Component.php
@@ -70,12 +70,13 @@ namespace SqlParser {
* `static::parse`.
*
* @param mixed $component The component to be built.
+ * @param array $options Parameters for building.
*
* @throws \Exception Not implemented yet.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
// This method should be abstract, but it can't be both static and
// abstract.
diff --git a/src/Components/AlterOperation.php b/src/Components/AlterOperation.php
index 348f81f..ee9302c 100644
--- a/src/Components/AlterOperation.php
+++ b/src/Components/AlterOperation.php
@@ -210,10 +210,11 @@ class AlterOperation extends Component
/**
* @param AlterOperation $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
$ret = $component->options . ' ';
if ((isset($component->field)) && ($component->field !== '')) {
diff --git a/src/Components/Array2d.php b/src/Components/Array2d.php
index 268dcea..e4c0ed7 100644
--- a/src/Components/Array2d.php
+++ b/src/Components/Array2d.php
@@ -124,10 +124,11 @@ class Array2d extends Component
/**
* @param ArrayObj[] $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
return ArrayObj::build($component);
}
diff --git a/src/Components/ArrayObj.php b/src/Components/ArrayObj.php
index d3017fa..9f4e972 100644
--- a/src/Components/ArrayObj.php
+++ b/src/Components/ArrayObj.php
@@ -143,10 +143,11 @@ class ArrayObj extends Component
/**
* @param ArrayObj|ArrayObj[] $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
if (is_array($component)) {
return implode(', ', $component);
diff --git a/src/Components/Condition.php b/src/Components/Condition.php
index c8b4d1e..43347a8 100644
--- a/src/Components/Condition.php
+++ b/src/Components/Condition.php
@@ -197,10 +197,11 @@ class Condition extends Component
/**
* @param Condition[] $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
if (is_array($component)) {
return implode(' ', $component);
diff --git a/src/Components/CreateDefinition.php b/src/Components/CreateDefinition.php
index 54c2475..0ef7c4a 100644
--- a/src/Components/CreateDefinition.php
+++ b/src/Components/CreateDefinition.php
@@ -272,13 +272,14 @@ class CreateDefinition extends Component
/**
* @param CreateDefinition|CreateDefinition[] $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
if (is_array($component)) {
- return "(\n" . implode(",\n", $component) . "\n)";
+ return "(\n " . implode(",\n ", $component) . "\n)";
} else {
$tmp = '';
@@ -291,7 +292,10 @@ class CreateDefinition extends Component
}
if (!empty($component->type)) {
- $tmp .= $component->type . ' ';
+ $tmp .= DataType::build(
+ $component->type,
+ array('lowercase' => true)
+ ) . ' ';
}
if (!empty($component->key)) {
diff --git a/src/Components/DataType.php b/src/Components/DataType.php
index 8d42ea1..a3aca73 100644
--- a/src/Components/DataType.php
+++ b/src/Components/DataType.php
@@ -151,16 +151,20 @@ class DataType extends Component
/**
* @param DataType $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
- $tmp = '';
+ $name = (empty($options['lowercase'])) ?
+ $component->name : strtolower($component->name);
+
+ $parameters = '';
if (!empty($component->parameters)) {
- $tmp = '(' . implode(', ', $component->parameters) . ')';
+ $parameters = '(' . implode(',', $component->parameters) . ')';
}
- return trim($component->name . $tmp . ' ' . $component->options);
+ return trim($name . $parameters . ' ' . $component->options);
}
}
diff --git a/src/Components/Expression.php b/src/Components/Expression.php
index ad4d5e8..1f8752e 100644
--- a/src/Components/Expression.php
+++ b/src/Components/Expression.php
@@ -351,10 +351,11 @@ class Expression extends Component
/**
* @param Expression|Expression[] $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
if (is_array($component)) {
return implode($component, ', ');
diff --git a/src/Components/ExpressionArray.php b/src/Components/ExpressionArray.php
index 82e67c9..8327296 100644
--- a/src/Components/ExpressionArray.php
+++ b/src/Components/ExpressionArray.php
@@ -106,10 +106,11 @@ class ExpressionArray extends Component
/**
* @param Expression[] $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
$ret = array();
foreach ($component as $frag) {
diff --git a/src/Components/FunctionCall.php b/src/Components/FunctionCall.php
index 55d9e2c..54e95ac 100644
--- a/src/Components/FunctionCall.php
+++ b/src/Components/FunctionCall.php
@@ -115,10 +115,11 @@ class FunctionCall extends Component
/**
* @param FunctionCall $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
return $component->name . $component->parameters;
}
diff --git a/src/Components/IntoKeyword.php b/src/Components/IntoKeyword.php
index 05540e6..b230308 100644
--- a/src/Components/IntoKeyword.php
+++ b/src/Components/IntoKeyword.php
@@ -133,10 +133,11 @@ class IntoKeyword extends Component
/**
* @param IntoKeyword $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
if ($component->dest instanceof Expression) {
$columns = !empty($component->columns) ?
diff --git a/src/Components/JoinKeyword.php b/src/Components/JoinKeyword.php
index b95912e..529763b 100644
--- a/src/Components/JoinKeyword.php
+++ b/src/Components/JoinKeyword.php
@@ -151,10 +151,11 @@ class JoinKeyword extends Component
/**
* @param JoinKeyword[] $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
$ret = array();
foreach ($component as $c) {
diff --git a/src/Components/Key.php b/src/Components/Key.php
index ef5d3a8..89371fa 100644
--- a/src/Components/Key.php
+++ b/src/Components/Key.php
@@ -152,17 +152,18 @@ class Key extends Component
}
/**
- * @param Key $component The component to be built.
+ * @param Key $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
$ret = $component->type . ' ';
if (!empty($component->name)) {
$ret .= Context::escape($component->name) . ' ';
}
- $ret .= '(' . implode(', ', Context::escape($component->columns)) . ') '
+ $ret .= '(' . implode(',', Context::escape($component->columns)) . ') '
. $component->options;
return trim($ret);
}
diff --git a/src/Components/Limit.php b/src/Components/Limit.php
index 8622c96..edf663a 100644
--- a/src/Components/Limit.php
+++ b/src/Components/Limit.php
@@ -122,10 +122,11 @@ class Limit extends Component
/**
* @param Limit $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
if (empty($component->offset)) {
return $component->rowCount;
diff --git a/src/Components/OptionsArray.php b/src/Components/OptionsArray.php
index a496273..f24635a 100644
--- a/src/Components/OptionsArray.php
+++ b/src/Components/OptionsArray.php
@@ -251,10 +251,11 @@ class OptionsArray extends Component
/**
* @param OptionsArray $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
if (empty($component->options)) {
return '';
diff --git a/src/Components/OrderKeyword.php b/src/Components/OrderKeyword.php
index b6918e9..9c1ad59 100644
--- a/src/Components/OrderKeyword.php
+++ b/src/Components/OrderKeyword.php
@@ -127,10 +127,11 @@ class OrderKeyword extends Component
/**
* @param OrderKeyword|OrderKeyword[] $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
if (is_array($component)) {
return implode(', ', $component);
diff --git a/src/Components/ParameterDefinition.php b/src/Components/ParameterDefinition.php
index d24aefc..9ed9cfc 100644
--- a/src/Components/ParameterDefinition.php
+++ b/src/Components/ParameterDefinition.php
@@ -140,10 +140,11 @@ class ParameterDefinition extends Component
/**
* @param ParameterDefinition[] $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
if (is_array($component)) {
return '(' . implode(', ', $component) . ')';
diff --git a/src/Components/PartitionDefinition.php b/src/Components/PartitionDefinition.php
index ad31176..34acbb8 100644
--- a/src/Components/PartitionDefinition.php
+++ b/src/Components/PartitionDefinition.php
@@ -192,10 +192,11 @@ class PartitionDefinition extends Component
/**
* @param PartitionDefinition|PartitionDefinition[] $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
if (is_array($component)) {
return "(\n" . implode(",\n", $component) . "\n)";
diff --git a/src/Components/Reference.php b/src/Components/Reference.php
index 3515791..6826f7f 100644
--- a/src/Components/Reference.php
+++ b/src/Components/Reference.php
@@ -137,10 +137,11 @@ class Reference extends Component
/**
* @param Reference $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
return trim(
Context::escape($component->table)
diff --git a/src/Components/RenameOperation.php b/src/Components/RenameOperation.php
index b8b1691..5f7c9a5 100644
--- a/src/Components/RenameOperation.php
+++ b/src/Components/RenameOperation.php
@@ -162,10 +162,11 @@ class RenameOperation extends Component
/**
* @param RenameOperation $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
if (is_array($component)) {
return implode(', ', $component);
diff --git a/src/Components/SetOperation.php b/src/Components/SetOperation.php
index d272cab..3d04320 100644
--- a/src/Components/SetOperation.php
+++ b/src/Components/SetOperation.php
@@ -122,10 +122,11 @@ class SetOperation extends Component
/**
* @param SetOperation|SetOperation[] $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
if (is_array($component)) {
return implode(', ', $component);
diff --git a/src/Components/UnionKeyword.php b/src/Components/UnionKeyword.php
index 8cf8a9f..d1a1ef5 100644
--- a/src/Components/UnionKeyword.php
+++ b/src/Components/UnionKeyword.php
@@ -25,10 +25,11 @@ class UnionKeyword extends Component
/**
* @param SelectStatement[] $component The component to be built.
+ * @param array $options Parameters for building.
*
* @return string
*/
- public static function build($component)
+ public static function build($component, array $options = array())
{
return implode(' UNION ', $component);
}
diff --git a/src/Utils/Formatter.php b/src/Utils/Formatter.php
index 998d94b..ebdea42 100644
--- a/src/Utils/Formatter.php
+++ b/src/Utils/Formatter.php
@@ -80,7 +80,7 @@ class Formatter
*
* @var string
*/
- 'indentation' => " ",
+ 'indentation' => " ",
/**
* Whether comments should be removed or not.
diff --git a/tests/Builder/CreateStatementTest.php b/tests/Builder/CreateStatementTest.php
index 418a0ba..64712f9 100644
--- a/tests/Builder/CreateStatementTest.php
+++ b/tests/Builder/CreateStatementTest.php
@@ -58,8 +58,8 @@ class CreateStatementTest extends TestCase
$this->assertEquals(
"CREATE TABLE `test` (\n" .
- "`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,\n" .
- "PRIMARY KEY (`id`)\n" .
+ " `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,\n" .
+ " PRIMARY KEY (`id`)\n" .
") ",
$stmt->build()
);
@@ -68,8 +68,8 @@ class CreateStatementTest extends TestCase
public function testBuilderPartitions()
{
$query = 'CREATE TABLE ts (' . "\n"
- . '`id` INT,' . "\n"
- . '`purchased` DATE' . "\n"
+ . ' `id` int,' . "\n"
+ . ' `purchased` date' . "\n"
. ') ' . "\n"
. 'PARTITION BY RANGE(YEAR(purchased))' . "\n"
. 'PARTITIONS 3' . "\n"