backporting r30991-4: using egw_db->capabilities[egw_db::CASE_INSENSITIVE_LIKE] and other PostgreSQL 8.3 fixes

This commit is contained in:
Ralf Becker 2010-06-22 17:14:48 +00:00
parent 749f20c718
commit 2045c0fd31
3 changed files with 3 additions and 4 deletions

View File

@ -344,7 +344,7 @@ class calendar_so
{
foreach(array('cal_title','cal_description','cal_location') as $col)
{
$to_or[] = $col . ' LIKE ' . $this->db->quote('%'.$query.'%');
$to_or[] = $col.' '.$this->db->capabilities[egw_db::CAPABILITY_CASE_INSENSITIV_LIKE].' '.$this->db->quote('%'.$query.'%');
}
$where[] = '('.implode(' OR ',$to_or).')';
}

View File

@ -514,7 +514,7 @@ class egw_db
$this->capabilities[self::CAPABILITY_NAME_CASE] = 'lower';
$this->capabilities[self::CAPABILITY_CLIENT_ENCODING] = (float) $db_version >= 7.4;
$this->capabilities[self::CAPABILITY_OUTER_JOIN] = true;
$this->capabilities[self::CAPABILITY_CASE_INSENSITIV_LIKE] = 'ILIKE';
$this->capabilities[self::CAPABILITY_CASE_INSENSITIV_LIKE] = '::text ILIKE';
$this->capabilities[self::CAPABILITY_REQUIRE_TRUNCATE_VARCHAR] = true;
break;

View File

@ -836,8 +836,7 @@ class translation
*/
function get_message_id($translation,$app=null,$lang=null)
{
$like = $this->db->Type == 'pgsql' ? 'ILIKE' : 'LIKE';
$where = array('content '.$like.' '.$this->db->quote($translation)); // like to be case-insensitive
$where = array('content '.$this->db->capabilities[egw_db::CAPABILITY_CASE_INSENSITIV_LIKE].' '.$this->db->quote($translation));
if ($app) $where['app_name'] = $app;
if ($lang) $where['lang'] = $lang;