? views-571548-1.patch Index: includes/query.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/views/includes/query.inc,v retrieving revision 1.50.2.4 diff -u -p -r1.50.2.4 query.inc --- includes/query.inc 2 Dec 2009 22:59:18 -0000 1.50.2.4 +++ includes/query.inc 25 Jan 2010 23:30:06 -0000 @@ -641,11 +641,16 @@ class views_query { $alias = $table . '_' . $field; } - $name = $alias ? $alias : $field; + $alias = $alias ? $alias : $field; + + // PostgreSQL truncates aliases to 63 characters: http://drupal.org/node/571548 + + // We limit the length of the original alias up to 60 characters + // to get a unique alias later if its have duplicates + if(strlen($alias) >= 60){ $alias = 'views_'.md5($alias); }//$alias = substr($alias, 0, 60); - // @todo FIXME -- $alias, then $name is inconsistent if (empty($this->fields[$alias])) { - $this->fields[$name] = array( + $this->fields[$alias] = array( 'field' => $field, 'table' => $table, 'alias' => $alias, @@ -653,10 +658,10 @@ class views_query { } foreach ((array)$params as $key => $value) { - $this->fields[$name][$key] = $value; + $this->fields[$alias][$key] = $value; } - return $name; + return $alias; } /** @@ -833,7 +838,7 @@ class views_query { } if ($field) { - $this->add_field($table, $field, $as); + $as = $this->add_field($table, $field, $as, $params); } $this->orderby[] = "$as " . strtoupper($order);