Example #1
0
 /**
  * {@inheritDoc}
  */
 public function createTableSql(Table $table, $columns, $constraints, $indexes)
 {
     $lines = array_merge($columns, $constraints);
     $content = implode(",\n", array_filter($lines));
     $temporary = $table->temporary() ? ' TEMPORARY ' : ' ';
     $table = sprintf("CREATE%sTABLE \"%s\" (\n%s\n)", $temporary, $table->name(), $content);
     $out = [$table];
     foreach ($indexes as $index) {
         $out[] = $index;
     }
     return $out;
 }
Example #2
0
 /**
  * {@inheritDoc}
  */
 public function createTableSql(Table $table, $columns, $constraints, $indexes)
 {
     $content = implode(",\n", array_merge($columns, $constraints, $indexes));
     $temporary = $table->temporary() ? ' TEMPORARY ' : ' ';
     $content = sprintf("CREATE%sTABLE `%s` (\n%s\n)", $temporary, $table->name(), $content);
     $options = $table->options();
     if (isset($options['engine'])) {
         $content .= sprintf(' ENGINE=%s', $options['engine']);
     }
     if (isset($options['charset'])) {
         $content .= sprintf(' DEFAULT CHARSET=%s', $options['charset']);
     }
     if (isset($options['collate'])) {
         $content .= sprintf(' COLLATE=%s', $options['collate']);
     }
     return [$content];
 }
Example #3
0
 /**
  * {@inheritDoc}
  */
 public function createTableSql(Table $table, $columns, $constraints, $indexes)
 {
     $content = array_merge($columns, $constraints);
     $content = implode(",\n", array_filter($content));
     $tableName = $this->_driver->quoteIdentifier($table->name());
     $temporary = $table->temporary() ? ' TEMPORARY ' : ' ';
     $out = [];
     $out[] = sprintf("CREATE%sTABLE %s (\n%s\n)", $temporary, $tableName, $content);
     foreach ($indexes as $index) {
         $out[] = $index;
     }
     foreach ($table->columns() as $column) {
         $columnData = $table->column($column);
         if (isset($columnData['comment'])) {
             $out[] = sprintf('COMMENT ON COLUMN %s.%s IS %s', $tableName, $this->_driver->quoteIdentifier($column), $this->_driver->schemaValue($columnData['comment']));
         }
     }
     return $out;
 }
Example #4
0
 /**
  * Tests the temporary() method
  *
  * @return void
  */
 public function testTemporary()
 {
     $table = new Table('articles');
     $this->assertFalse($table->temporary());
     $this->assertSame($table, $table->temporary(true));
     $this->assertTrue($table->temporary());
     $table->temporary(false);
     $this->assertFalse($table->temporary());
 }