diff options
Diffstat (limited to 'includes')
-rw-r--r-- | includes/database.mysql.inc | 2 | ||||
-rw-r--r-- | includes/database.mysqli.inc | 2 | ||||
-rw-r--r-- | includes/database.pgsql.inc | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/includes/database.mysql.inc b/includes/database.mysql.inc index 18eeee019..25517a310 100644 --- a/includes/database.mysql.inc +++ b/includes/database.mysql.inc @@ -431,7 +431,7 @@ function db_table_exists($table) { function db_distinct_field($table, $field, $query) { $field_to_select = 'DISTINCT('. $table .'.'. $field .')'; // (?<!text) is a negative look-behind (no need to rewrite queries that already use DISTINCT). - return preg_replace('/(SELECT.*)('. $table .'\.)?(?<!DISTINCT\()(?<!DISTINCT\('. $table .'\.)'. $field .'(.*FROM )/AUsi', '\1'. $field_to_select .'\3', $query); + return preg_replace('/(SELECT.*)(?:'. $table .'\.|\s)(?<!DISTINCT\()(?<!DISTINCT\('. $table .'\.)'. $field .'(.*FROM )/AUsi', '\1 '. $field_to_select .'\2', $query); } /** diff --git a/includes/database.mysqli.inc b/includes/database.mysqli.inc index 82a2c3a47..06e2bc744 100644 --- a/includes/database.mysqli.inc +++ b/includes/database.mysqli.inc @@ -416,7 +416,7 @@ function db_table_exists($table) { function db_distinct_field($table, $field, $query) { $field_to_select = 'DISTINCT('. $table .'.'. $field .')'; // (?<!text) is a negative look-behind (no need to rewrite queries that already use DISTINCT). - return preg_replace('/(SELECT.*)('. $table .'\.)?(?<!DISTINCT\()(?<!DISTINCT\('. $table .'\.)'. $field .'(.*FROM )/AUsi', '\1'. $field_to_select .'\3', $query); + return preg_replace('/(SELECT.*)(?:'. $table .'\.|\s)(?<!DISTINCT\()(?<!DISTINCT\('. $table .'\.)'. $field .'(.*FROM )/AUsi', '\1 '. $field_to_select .'\2', $query); } /** diff --git a/includes/database.pgsql.inc b/includes/database.pgsql.inc index 14a9a5025..1d4612b72 100644 --- a/includes/database.pgsql.inc +++ b/includes/database.pgsql.inc @@ -414,7 +414,7 @@ function db_check_setup() { function db_distinct_field($table, $field, $query) { $field_to_select = 'DISTINCT ON ('. $table .'.'. $field .") $table.$field"; // (?<!text) is a negative look-behind (no need to rewrite queries that already use DISTINCT). - $query = preg_replace('/(SELECT.*)('. $table .'\.)?(?<!DISTINCT\()(?<!DISTINCT\('. $table .'\.)'. $field .'(.*FROM )/AUsi', '\1'. $field_to_select .'\3', $query); + $query = preg_replace('/(SELECT.*)(?:'. $table .'\.|\s)(?<!DISTINCT\()(?<!DISTINCT\('. $table .'\.)'. $field .'(.*FROM )/AUsi', '\1 '. $field_to_select .'\2', $query); $query = preg_replace('/(ORDER BY )(?!'.$table.'\.'.$field.')/', '\1'."$table.$field, ", $query); return $query; } |