forked from extern/egroupware
fix for bug #2624: SQL error - CONCAT not supported by postgres
This commit is contained in:
parent
4b9b76bbe7
commit
579cf86bbc
@ -1042,7 +1042,7 @@ class so_sql
|
||||
{
|
||||
// This function can get called multiple times. Make sure it doesn't re-process.
|
||||
if (empty($pattern) || is_array($pattern)) return $pattern;
|
||||
if(strpos($pattern, 'CONCAT') !== false)
|
||||
if(strpos($pattern, 'CAST(COALESCE(') !== false)
|
||||
{
|
||||
return $pattern;
|
||||
}
|
||||
@ -1050,7 +1050,7 @@ class so_sql
|
||||
$pattern = trim($pattern);
|
||||
$criteria = array();
|
||||
$filter = array();
|
||||
$columns = '';
|
||||
$columns = array();
|
||||
|
||||
/*
|
||||
* Special handling for numeric columns. They are only considered if the pattern is numeric.
|
||||
@ -1076,11 +1076,11 @@ class so_sql
|
||||
$numeric_columns[] = $col;
|
||||
continue;
|
||||
}
|
||||
$columns .= "CAST(COALESCE($col,'') AS char),";
|
||||
$columns[] = "CAST(COALESCE($col,'') AS char)";
|
||||
}
|
||||
if(strlen($columns) > 0)
|
||||
if($columns)
|
||||
{
|
||||
$columns = 'CONCAT(' . substr($columns, 0, -1) . ')';
|
||||
$columns = call_user_func_array(array($this->db,'concat'),$columns);
|
||||
}
|
||||
|
||||
// Break the search string into tokens
|
||||
|
@ -525,7 +525,7 @@ class so_sql_cf extends so_sql
|
||||
// Multi-select - any entry with the filter value selected matches
|
||||
$sql_filter = str_replace($this->extra_value,'extra_filter.'.
|
||||
$this->extra_value,$this->db->expression($this->extra_table,array(
|
||||
"CONCAT(',',{$this->extra_value},',') LIKE '%,$val,%'"
|
||||
$this->db->concat("','",$this->extra_value,"','").' '.$this->db->capabilities[egw_db::CAPABILITY_CASE_INSENSITIV_LIKE].' '.$this->db->quote('%,'.$val.',%')
|
||||
))
|
||||
);
|
||||
}
|
||||
@ -575,7 +575,7 @@ class so_sql_cf extends so_sql
|
||||
{
|
||||
// This function can get called multiple times. Make sure it doesn't re-process.
|
||||
if (empty($pattern) || is_array($pattern)) return $pattern;
|
||||
if(strpos($pattern, 'CONCAT') !== false)
|
||||
if(strpos($pattern, 'CAST(COALESCE(') !== false)
|
||||
{
|
||||
return $pattern;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user