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