diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/node.module | 1 | ||||
-rw-r--r-- | modules/node/node.module | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/modules/node.module b/modules/node.module index 8c021ad52..29000edce 100644 --- a/modules/node.module +++ b/modules/node.module @@ -1864,6 +1864,7 @@ function _node_rewrite_sql($query = '', $nid_alias = 'n', $args = array()) { function node_rewrite_sql($query, $nid_alias = 'n', $args = array()) { list($join, $where, $nid_to_select) = _node_rewrite_sql($query, $nid_alias, $args); + // (?<!text) is a negative look-behind (no need to rewrite queries that already use DISTINCT). $query = preg_replace('/(SELECT.*)('. $nid_alias .'\.)?(?<!DISTINCT\()(?<!DISTINCT\('. $nid_alias .'\.)nid(.*FROM)/AUsi', '\1'. $nid_to_select .'\3', $query); $query = preg_replace('|FROM[^[:upper:]/,]+|','\0 '. $join .' ', $query); diff --git a/modules/node/node.module b/modules/node/node.module index 8c021ad52..29000edce 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -1864,6 +1864,7 @@ function _node_rewrite_sql($query = '', $nid_alias = 'n', $args = array()) { function node_rewrite_sql($query, $nid_alias = 'n', $args = array()) { list($join, $where, $nid_to_select) = _node_rewrite_sql($query, $nid_alias, $args); + // (?<!text) is a negative look-behind (no need to rewrite queries that already use DISTINCT). $query = preg_replace('/(SELECT.*)('. $nid_alias .'\.)?(?<!DISTINCT\()(?<!DISTINCT\('. $nid_alias .'\.)nid(.*FROM)/AUsi', '\1'. $nid_to_select .'\3', $query); $query = preg_replace('|FROM[^[:upper:]/,]+|','\0 '. $join .' ', $query); |