summaryrefslogtreecommitdiffstats
path: root/src/Statements/CreateStatement.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Statements/CreateStatement.php')
-rw-r--r--src/Statements/CreateStatement.php10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/Statements/CreateStatement.php b/src/Statements/CreateStatement.php
index 48773bd..64ea57d 100644
--- a/src/Statements/CreateStatement.php
+++ b/src/Statements/CreateStatement.php
@@ -62,6 +62,7 @@ class CreateStatement extends Statement
'TRIGGER' => 6,
'USER' => 6,
'VIEW' => 6,
+ 'SCHEMA' => 6,
// CREATE TABLE
'IF NOT EXISTS' => 7,
@@ -378,7 +379,7 @@ class CreateStatement extends Statement
$fields = ArrayObj::build($this->fields);
}
}
- if ($this->options->has('DATABASE')) {
+ if ($this->options->has('DATABASE') || $this->options->has('SCHEMA')) {
return 'CREATE '
. OptionsArray::build($this->options) . ' '
. Expression::build($this->name) . ' '
@@ -466,12 +467,15 @@ class CreateStatement extends Statement
$this->options = OptionsArray::parse($parser, $list, static::$OPTIONS);
++$list->idx; // Skipping last option.
+ $isDatabase = $this->options->has('DATABASE') || $this->options->has('SCHEMA');
+ $fieldName = $isDatabase ? 'database' : 'table';
+
// Parsing the field name.
$this->name = Expression::parse(
$parser,
$list,
[
- 'parseField' => 'table',
+ 'parseField' => $fieldName,
'breakOnAlias' => true,
]
);
@@ -496,7 +500,7 @@ class CreateStatement extends Statement
++$nextidx;
}
- if ($this->options->has('DATABASE')) {
+ if ($isDatabase) {
$this->entityOptions = OptionsArray::parse(
$parser,
$list,