#340568 by Damien Tournoud: in some versions of SQLite, SELECT DISINCT(field) will return "(field)" as the field name.

From: Damien Tournoud <damien@tournoud.net>


---

 includes/database/sqlite/database.inc |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)


diff --git includes/database/sqlite/database.inc includes/database/sqlite/database.inc
index 864b4f7..9a890b4 100644
--- includes/database/sqlite/database.inc
+++ includes/database/sqlite/database.inc
@@ -228,6 +228,15 @@ class DatabaseStatement_sqlite extends DatabaseStatementPrefetch implements Iter
     // using the same convention as MySQL and PostgreSQL.
     $rename_columns = array();
     foreach ($this->columnNames as $k => $column) {
+      // In some SQLite versions, SELECT DISTINCT(field) will return "(field)"
+      // instead of "field".
+      if (preg_match("/^\((.*)\)$/", $column, $matches)) {
+        $rename_columns[$column] = $matches[1];
+        $this->columnNames[$k] = $matches[1];
+        $column = $matches[1];
+      }
+
+      // Remove "table." prefixes.
       if (preg_match("/^.*\.(.*)$/", $column, $matches)) {
         $rename_columns[$column] = $matches[1];
         $this->columnNames[$k] = $matches[1];
