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; }
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()); } } }
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; }