(Propel) * @author Martin Poeschl (Torque) * @version $Revision: 1612 $ * @package propel.generator.platform */ class MysqlPlatform extends DefaultPlatform { /** * Initializes db specific domain mapping. */ protected function initialize() { parent::initialize(); $this->setSchemaDomainMapping(new Domain(PropelTypes::BOOLEAN, "TINYINT")); $this->setSchemaDomainMapping(new Domain(PropelTypes::NUMERIC, "DECIMAL")); $this->setSchemaDomainMapping(new Domain(PropelTypes::LONGVARCHAR, "TEXT")); $this->setSchemaDomainMapping(new Domain(PropelTypes::BINARY, "BLOB")); $this->setSchemaDomainMapping(new Domain(PropelTypes::VARBINARY, "MEDIUMBLOB")); $this->setSchemaDomainMapping(new Domain(PropelTypes::LONGVARBINARY, "LONGBLOB")); $this->setSchemaDomainMapping(new Domain(PropelTypes::BLOB, "LONGBLOB")); $this->setSchemaDomainMapping(new Domain(PropelTypes::CLOB, "LONGTEXT")); $this->setSchemaDomainMapping(new Domain(PropelTypes::TIMESTAMP, "DATETIME")); } /** * @see Platform#getAutoIncrement() */ public function getAutoIncrement() { return "AUTO_INCREMENT"; } /** * @see Platform#getMaxColumnNameLength() */ public function getMaxColumnNameLength() { return 64; } /** * @see Platform::supportsNativeDeleteTrigger() */ public function supportsNativeDeleteTrigger() { $usingInnoDB = false; if (class_exists('DataModelBuilder', false)) { $usingInnoDB = strtolower($this->getBuildProperty('mysqlTableType')) == 'innodb'; } return $usingInnoDB || false; } /** * @see Platform#hasSize(String) */ public function hasSize($sqlType) { return !("MEDIUMTEXT" == $sqlType || "LONGTEXT" == $sqlType || "BLOB" == $sqlType || "MEDIUMBLOB" == $sqlType || "LONGBLOB" == $sqlType); } /** * Escape the string for RDBMS. * @param string $text * @return string */ public function disconnectedEscapeText($text) { if (function_exists('mysql_escape_string')) { return mysql_escape_string($text); } else { return addslashes($text); } } /** * @see Platform::quoteIdentifier() */ public function quoteIdentifier($text) { return '`' . $text . '`'; } /** * Gets the preferred timestamp formatter for setting date/time values. * @return string */ public function getTimestampFormatter() { return 'Y-m-d H:i:s'; } }