Пример #1
0
 protected function getComputedTypeRepresentation($name, DBType $type)
 {
     if ($type->canHaveSize()) {
         return $this->computeSized($name, $type->isNullable(), $type->getSize());
     } else {
         if ($type->canHavePrecision()) {
             return $this->computeDecimal($name, $type->isNullable(), $type->getPrecision(), $type->getScale());
         } else {
             return $this->compute($name, $type->isNullable());
         }
     }
 }
Пример #2
0
 function getTypeRepresentation(DBType $dbType)
 {
     switch ($dbType->getValue()) {
         case DBType::BOOLEAN:
             return $this->compute('TINYINT(1) UNSIGNED', $dbType->isNullable());
         case DBType::BINARY:
             $size = $dbType->getSize();
             if ($size < 65535) {
                 $customType = 'BLOB';
             } else {
                 if ($size < 16777215) {
                     $customType = 'MEDIUMBLOB';
                 } else {
                     $customType = 'LONGTBLOB';
                 }
             }
             return $this->compute($customType, $dbType->isNullable());
         case DBType::VARCHAR:
             $size = $dbType->getSize();
             if (!$size) {
                 $dbType->setSize(255);
             } else {
                 if ($size > 255) {
                     if ($size < 65535) {
                         $customType = 'TEXT';
                     } else {
                         if ($size < 16777215) {
                             $customType = 'MEDIUMTEXT';
                         } else {
                             $customType = 'LONGTEXT';
                         }
                     }
                     return $this->compute($customType, $dbType->isNullable());
                 }
             }
     }
     $type = parent::getTypeRepresentation($dbType);
     if ($dbType->isGenerated()) {
         $type .= ' AUTO_INCREMENT';
     }
     return $type;
 }
Пример #3
0
 function getTypeRepresentation(DBType $dbType)
 {
     $type = $dbType->getId();
     if ($size = $dbType->getSize()) {
         $type .= '(' . $size . ')';
     }
     if ($precision = $dbType->getPrecision()) {
         $type .= '(' . $precision;
         if ($scale = $dbType->getScale()) {
             $type .= ',' . $scale;
         }
         $type .= ')';
     }
     if (!$dbType->isNullable()) {
         $type .= ' NOT NULL';
     }
     if ($dbType->isGenerated()) {
         $type .= ' GENERATED';
     }
     return $type;
 }