コード例 #1
0
 public function getColumnDDL(Column $col)
 {
     $domain = $col->getDomain();
     $ddl = array($this->quoteIdentifier($col->getName()));
     $sqlType = $domain->getSqlType();
     $table = $col->getTable();
     if ($col->isAutoIncrement() && $table && $table->getIdMethodParameters() == null) {
         $sqlType = $col->getType() === PropelTypes::BIGINT ? 'bigserial' : 'serial';
     }
     if ($this->hasSize($sqlType) && $col->isDefaultSqlType($this)) {
         $ddl[] = $sqlType . $domain->printSize();
     } else {
         $ddl[] = $sqlType;
     }
     if ($default = $this->getColumnDefaultValueDDL($col)) {
         $ddl[] = $default;
     }
     if ($notNull = $this->getNullString($col->isNotNull())) {
         $ddl[] = $notNull;
     }
     if ($autoIncrement = $col->getAutoIncrementString()) {
         $ddl[] = $autoIncrement;
     }
     return implode(' ', $ddl);
 }
コード例 #2
0
ファイル: XmlDumper.php プロジェクト: SwissalpS/Propel2
 /**
  * Appends the generated <column> XML node to its parent node.
  *
  * @param Column   $column     The Column model instance
  * @param \DOMNode $parentNode The parent DOMNode object
  */
 private function appendColumnNode(Column $column, \DOMNode $parentNode)
 {
     $columnNode = $parentNode->appendChild($this->document->createElement('column'));
     $columnNode->setAttribute('name', $column->getName());
     if ($phpName = $column->getPhpName()) {
         $columnNode->setAttribute('phpName', $phpName);
     }
     $columnNode->setAttribute('type', $column->getType());
     $domain = $column->getDomain();
     if ($size = $domain->getSize()) {
         $columnNode->setAttribute('size', $size);
     }
     if (null !== ($scale = $domain->getScale())) {
         $columnNode->setAttribute('scale', $scale);
     }
     $platform = $column->getPlatform();
     if ($platform && !$column->isDefaultSqlType($platform)) {
         $columnNode->setAttribute('sqlType', $domain->getSqlType());
     }
     if ($description = $column->getDescription()) {
         $columnNode->setAttribute('description', $description);
     }
     if ($column->isPrimaryKey()) {
         $columnNode->setAttribute('primaryKey', 'true');
     }
     if ($column->isAutoIncrement()) {
         $columnNode->setAttribute('autoIncrement', 'true');
     }
     if ($column->isNotNull()) {
         $columnNode->setAttribute('required', 'true');
     }
     $defaultValue = $domain->getDefaultValue();
     if ($defaultValue) {
         $type = $defaultValue->isExpression() ? 'defaultExpr' : 'defaultValue';
         $columnNode->setAttribute($type, $defaultValue->getValue());
     }
     if ($column->isInheritance()) {
         $columnNode->setAttribute('inheritance', $column->getInheritanceType());
         foreach ($column->getInheritanceList() as $inheritance) {
             $this->appendInheritanceNode($inheritance, $columnNode);
         }
     }
     if ($column->isNodeKey()) {
         $columnNode->setAttribute('nodeKey', 'true');
         if ($nodeKeySeparator = $column->getNodeKeySep()) {
             $columnNode->setAttribute('nodeKeySep', $nodeKeySeparator);
         }
     }
     foreach ($column->getVendorInformation() as $vendorInformation) {
         $this->appendVendorInformationNode($vendorInformation, $columnNode);
     }
 }
コード例 #3
0
 /**
  * Builds the DDL SQL for a Column object.
  * @return string
  */
 public function getColumnDDL(Column $col)
 {
     $domain = $col->getDomain();
     $ddl = array($this->quoteIdentifier($col->getName()));
     $sqlType = $domain->getSqlType();
     if ($this->hasSize($sqlType) && $col->isDefaultSqlType($this)) {
         $ddl[] = $sqlType . $col->getSizeDefinition();
     } else {
         $ddl[] = $sqlType;
     }
     if ($default = $this->getColumnDefaultValueDDL($col)) {
         $ddl[] = $default;
     }
     if ($notNull = $this->getNullString($col->isNotNull())) {
         $ddl[] = $notNull;
     }
     if ($autoIncrement = $col->getAutoIncrementString()) {
         $ddl[] = $autoIncrement;
     }
     return implode(' ', $ddl);
 }
コード例 #4
0
 public function testIsDefaultSqlType()
 {
     $column = new Column();
     $this->assertTrue($column->isDefaultSqlType());
 }