protected function getTableOptions(Table $table)
 {
     $dbVI = $table->getDatabase()->getVendorInfoForType('mysql');
     $tableVI = $table->getVendorInfoForType('mysql');
     $vi = $dbVI->getMergedVendorInfo($tableVI);
     $tableOptions = array();
     $supportedOptions = array('Charset' => 'CHARACTER SET', 'Collate' => 'COLLATE', 'Checksum' => 'CHECKSUM', 'Pack_Keys' => 'PACK_KEYS', 'Delay_key_write' => 'DELAY_KEY_WRITE');
     foreach ($supportedOptions as $name => $sqlName) {
         if ($vi->hasParameter($name)) {
             $tableOptions[] = sprintf('%s=%s', $sqlName, $this->quote($vi->getParameter($name)));
         }
     }
     return $tableOptions;
 }
Example #2
0
 protected function getTableOptions(Table $table)
 {
     $dbVI = $table->getDatabase()->getVendorInfoForType('mysql');
     $tableVI = $table->getVendorInfoForType('mysql');
     $vi = $dbVI->getMergedVendorInfo($tableVI);
     $tableOptions = array();
     // List of supported table options
     // see http://dev.mysql.com/doc/refman/5.5/en/create-table.html
     $supportedOptions = array('AutoIncrement' => 'AUTO_INCREMENT', 'AvgRowLength' => 'AVG_ROW_LENGTH', 'Charset' => 'CHARACTER SET', 'Checksum' => 'CHECKSUM', 'Collate' => 'COLLATE', 'Connection' => 'CONNECTION', 'DataDirectory' => 'DATA DIRECTORY', 'Delay_key_write' => 'DELAY_KEY_WRITE', 'DelayKeyWrite' => 'DELAY_KEY_WRITE', 'IndexDirectory' => 'INDEX DIRECTORY', 'InsertMethod' => 'INSERT_METHOD', 'KeyBlockSize' => 'KEY_BLOCK_SIZE', 'MaxRows' => 'MAX_ROWS', 'MinRows' => 'MIN_ROWS', 'Pack_Keys' => 'PACK_KEYS', 'PackKeys' => 'PACK_KEYS', 'RowFormat' => 'ROW_FORMAT', 'Union' => 'UNION');
     foreach ($supportedOptions as $name => $sqlName) {
         if ($vi->hasParameter($name)) {
             $tableOptions[] = sprintf('%s=%s', $sqlName, $this->quote($vi->getParameter($name)));
         } elseif ($vi->hasParameter($sqlName)) {
             $tableOptions[] = sprintf('%s=%s', $sqlName, $this->quote($vi->getParameter($sqlName)));
         }
     }
     return $tableOptions;
 }
 public function getResetSchemaDDL(Table $table)
 {
     $vi = $table->getVendorInfoForType('pgsql');
     if ($vi->hasParameter('schema')) {
         return "\nSET search_path TO public;\n";
     }
 }
Example #4
0
 /**
  * Generate oracle block storage
  *
  * @param Table|Index $object       object with vendor parameters
  * @param bool        $isPrimaryKey is a primary key vendor part
  *
  * @return string oracle vendor sql part
  */
 public function generateBlockStorage($object, $isPrimaryKey = false)
 {
     $vendorSpecific = $object->getVendorInfoForType('oracle');
     if ($vendorSpecific->isEmpty()) {
         return '';
     }
     if ($isPrimaryKey) {
         $physicalParameters = "\r\nUSING INDEX\r\n";
         $prefix = "PK";
     } else {
         $physicalParameters = "\n";
         $prefix = "";
     }
     if ($vendorSpecific->hasParameter($prefix . 'PCTFree')) {
         $physicalParameters .= "PCTFREE " . $vendorSpecific->getParameter($prefix . 'PCTFree') . "\r\n";
     }
     if ($vendorSpecific->hasParameter($prefix . 'InitTrans')) {
         $physicalParameters .= "INITRANS " . $vendorSpecific->getParameter($prefix . 'InitTrans') . "\r\n";
     }
     if ($vendorSpecific->hasParameter($prefix . 'MinExtents') || $vendorSpecific->hasParameter($prefix . 'MaxExtents') || $vendorSpecific->hasParameter($prefix . 'PCTIncrease')) {
         $physicalParameters .= "STORAGE\r\n(\r\n";
         if ($vendorSpecific->hasParameter($prefix . 'MinExtents')) {
             $physicalParameters .= "\tMINEXTENTS " . $vendorSpecific->getParameter($prefix . 'MinExtents') . "\r\n";
         }
         if ($vendorSpecific->hasParameter($prefix . 'MaxExtents')) {
             $physicalParameters .= "\tMAXEXTENTS " . $vendorSpecific->getParameter($prefix . 'MaxExtents') . "\r\n";
         }
         if ($vendorSpecific->hasParameter($prefix . 'PCTIncrease')) {
             $physicalParameters .= "\tPCTINCREASE " . $vendorSpecific->getParameter($prefix . 'PCTIncrease') . "\r\n";
         }
         $physicalParameters .= ")\r\n";
     }
     if ($vendorSpecific->hasParameter($prefix . 'Tablespace')) {
         $physicalParameters .= "TABLESPACE " . $vendorSpecific->getParameter($prefix . 'Tablespace');
     }
     return $physicalParameters;
 }