summaryrefslogtreecommitdiffstats
path: root/src/Components
diff options
context:
space:
mode:
Diffstat (limited to 'src/Components')
-rw-r--r--src/Components/ArrayObj.php6
-rw-r--r--src/Components/PartitionDefinition.php26
2 files changed, 23 insertions, 9 deletions
diff --git a/src/Components/ArrayObj.php b/src/Components/ArrayObj.php
index 431ed6d..0e0b183 100644
--- a/src/Components/ArrayObj.php
+++ b/src/Components/ArrayObj.php
@@ -115,7 +115,11 @@ class ArrayObj extends Component
$ret->values[] = $token->value;
$ret->raw[] = $token->token;
} else {
- $ret[] = $options['type']::parse($parser, $list);
+ $ret[] = $options['type']::parse(
+ $parser,
+ $list,
+ empty($options['typeOptions']) ? array() : $options['typeOptions']
+ );
}
$state = 2;
} elseif ($state === 2) {
diff --git a/src/Components/PartitionDefinition.php b/src/Components/PartitionDefinition.php
index c7546b0..c46252d 100644
--- a/src/Components/PartitionDefinition.php
+++ b/src/Components/PartitionDefinition.php
@@ -155,7 +155,18 @@ class PartitionDefinition extends Component
$ret->type = $token->value;
$state = 4;
} elseif ($state === 4) {
- $ret->expr = Expression::parse($parser, $list, array('noAlias' => true, 'bracketsDelimited' => true));
+ if ($token->value === 'MAXVALUE') {
+ $ret->expr = $token->value;
+ } else {
+ $ret->expr = Expression::parse(
+ $parser,
+ $list,
+ array(
+ 'bracketsDelimited' => true,
+ 'noAlias' => true,
+ )
+ );
+ }
$state = 5;
} elseif ($state === 5) {
$ret->options = OptionsArray::parse($parser, $list, static::$OPTIONS);
@@ -166,12 +177,12 @@ class PartitionDefinition extends Component
$parser,
$list,
array(
- 'type' => 'SqlParser\Components\PartitionDefinition'
+ 'type' => 'SqlParser\\Components\\PartitionDefinition'
)
);
- } else {
- break;
+ ++$list->idx;
}
+ break;
}
}
@@ -196,11 +207,10 @@ class PartitionDefinition extends Component
if ($component->isSubpartition) {
return 'SUBPARTITION ' . $component->name;
} else {
- if (!empty($component->subpartitions)) {
- $subpartitions = ' ' . PartitionDefinition::build($component->subpartitions);
- }
+ $subpartitions = empty($component->subpartitions)
+ ? '' : ' ' . PartitionDefinition::build($component->subpartitions);
return 'PARTITION ' . $component->name
- . ' VALUES ' . $component->type . $component->expr
+ . ' VALUES ' . $component->type . ' ' . $component->expr
. $subpartitions;
}