protected function convertColumnDefinitionToColumnSchema(ColumnDefinition $columnDefinition, ExecutionContext $executionContext) { $columnPage = new ColumnSchema(); $columnPage->setName($columnDefinition->getName()); /* @var $dataType DataType */ $dataType = $columnDefinition->getDataType(); $columnPage->setDataType($dataType); if (!is_null($columnDefinition->getDataTypeLength())) { $columnPage->setLength($columnDefinition->getDataTypeLength()); } if (!is_null($columnDefinition->getDataTypeSecondLength())) { $columnPage->setSecondLength($columnDefinition->getDataTypeSecondLength()); } $flags = 0; if ($columnDefinition->getIsAutoIncrement()) { $flags = $flags ^ ColumnSchema::EXTRA_AUTO_INCREMENT; } if (!$columnDefinition->getIsNullable()) { $flags = $flags ^ ColumnSchema::EXTRA_NOT_NULL; } if ($columnDefinition->getIsPrimaryKey()) { $flags = $flags ^ ColumnSchema::EXTRA_PRIMARY_KEY; } if ($columnDefinition->getIsUnique()) { $flags = $flags ^ ColumnSchema::EXTRA_UNIQUE_KEY; } if ($columnDefinition->getIsUnsigned()) { $flags = $flags ^ ColumnSchema::EXTRA_UNSIGNED; } if (false) { $flags = $flags ^ ColumnSchema::EXTRA_ZEROFILL; } $columnPage->setExtraFlags($flags); #$columnPage->setFKColumnIndex($index); #$columnPage->setFKTableIndex($index); /* @var $defaultValue Value */ $defaultValue = $columnDefinition->getDefaultValue(); if (!is_null($defaultValue)) { if (!$dataType->mustResolveDefaultValue()) { # default value must be resolved at insertion-time => save unresolved $defaultValueData = $this->valueResolver->resolveValue($defaultValue, $executionContext); $defaultValueData = $this->dataConverter->convertStringToBinary($defaultValueData, $columnPage->getDataType()); } else { $defaultValueData = (string) $defaultValue; } } else { $defaultValueData = null; } $columnPage->setDefaultValue($defaultValueData); $comment = $columnDefinition->getComment(); # TODO: save column comment return $columnPage; }