/** * @param string $fieldType * @return string */ protected function _simplifiedType($fieldType) { if (strpos(strtolower($fieldType), 'tinyint(1)') !== false) { return 'boolean'; } elseif (preg_match('/enum/i', $fieldType)) { return 'string'; } return parent::_simplifiedType($fieldType); }
/** * @param string $fieldType * @return string */ protected function _simplifiedType($fieldType) { switch (true) { // Numeric and monetary types case preg_match('/^(?:real|double precision)$/', $fieldType): return 'float'; // Monetary types // Monetary types case preg_match('/^money$/', $fieldType): return 'decimal'; // Character types // Character types case preg_match('/^(?:character varying|bpchar)(?:\\(\\d+\\))?$/', $fieldType): return 'string'; // Binary data types // Binary data types case preg_match('/^bytea$/', $fieldType): return 'binary'; // Date/time types // Date/time types case preg_match('/^timestamp with(?:out)? time zone$/', $fieldType): return 'datetime'; case preg_match('/^interval$/', $fieldType): return 'string'; // Geometric types // Geometric types case preg_match('/^(?:point|line|lseg|box|"?path"?|polygon|circle)$/', $fieldType): return 'string'; // Network address types // Network address types case preg_match('/^(?:cidr|inet|macaddr)$/', $fieldType): return 'string'; // Bit strings // Bit strings case preg_match('/^bit(?: varying)?(?:\\(\\d+\\))?$/', $fieldType): return 'string'; // XML type // XML type case preg_match('/^xml$/', $fieldType): return 'string'; // Arrays // Arrays case preg_match('/^\\D+\\[\\]$/', $fieldType): return 'string'; // Object identifier types // Object identifier types case preg_match('/^oid$/', $fieldType): return 'integer'; } // Pass through all types that are not specific to PostgreSQL. return parent::_simplifiedType($fieldType); }