Index: Db/Adapter/Pdo/Pgsql.php =================================================================== --- Db/Adapter/Pdo/Pgsql.php (revision 18719) +++ Db/Adapter/Pdo/Pgsql.php (working copy) @@ -195,15 +195,15 @@ $desc = array(); foreach ($result as $key => $row) { $defaultValue = $row[$default_value]; - if ($row[$type] == 'varchar') { - if (preg_match('/character varying(?:\((\d+)\))?/', $row[$complete_type], $matches)) { + if ($row[$type] == 'varchar' || $row[$type] == 'bpchar' ) { + if (preg_match('/character(?: varying)?(?:\((\d+)\))?/', $row[$complete_type], $matches)) { if (isset($matches[1])) { $row[$length] = $matches[1]; } else { $row[$length] = null; // unlimited } } - if (preg_match("/^'(.*?)'::character varying$/", $defaultValue, $matches)) { + if (preg_match("/^'(.*?)'::(?:character varying|bpchar)$/", $defaultValue, $matches)) { $defaultValue = $matches[1]; } }