From aa4b94fcc9970731ae07c6f9a2a16b53918ed9b5 Mon Sep 17 00:00:00 2001 From: Angie Byron Date: Sun, 30 Nov 2008 01:26:45 +0000 Subject: #340568 by Damien Tournoud: in some versions of SQLite, SELECT DISINCT(field) will return '(field)' as the field name. --- includes/database/sqlite/database.inc | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'includes/database/sqlite') diff --git a/includes/database/sqlite/database.inc b/includes/database/sqlite/database.inc index 2a69e131f..02e73321e 100644 --- a/includes/database/sqlite/database.inc +++ b/includes/database/sqlite/database.inc @@ -238,6 +238,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]; -- cgit v1.2.3