summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2006-11-21 19:46:10 +0000
committerDries Buytaert <dries@buytaert.net>2006-11-21 19:46:10 +0000
commitbd2527a4edc8815459e2bc0783341d6849c60601 (patch)
tree2e85c46d91aaf54dc6b1e85284da136658d7202a
parente66c520aa4698853379173c3fcab87e302c82c02 (diff)
downloadbrdo-bd2527a4edc8815459e2bc0783341d6849c60601.tar.gz
brdo-bd2527a4edc8815459e2bc0783341d6849c60601.tar.bz2
- Patch #98059 by chx: trying to get the never-ending regex mess right.
-rw-r--r--includes/database.mysql.inc2
-rw-r--r--includes/database.mysqli.inc2
-rw-r--r--includes/database.pgsql.inc2
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;
}