Commit d196515a authored by Frédéric Buclin's avatar Frédéric Buclin

Bug 753688: Classification doesn't work as z-axis on reports

r=glob a=LpSolit
parent 83195bc9
...@@ -832,28 +832,38 @@ sub _add_extra_column { ...@@ -832,28 +832,38 @@ sub _add_extra_column {
} }
# These are the columns that we're going to be actually SELECTing. # These are the columns that we're going to be actually SELECTing.
sub _display_columns {
my ($self) = @_;
# Do not alter the list specified here at all, even if they are duplicated.
# Those are passed by the caller, and the caller expects to get them back
# in the exact same order.
$self->{display_columns} ||= [$self->_input_columns, $self->_extra_columns];
return @{ $self->{display_columns} };
}
# These are the columns that are involved in the query.
sub _select_columns { sub _select_columns {
my ($self) = @_; my ($self) = @_;
return @{ $self->{select_columns} } if $self->{select_columns}; return @{ $self->{select_columns} } if $self->{select_columns};
my @select_columns; my @select_columns;
foreach my $column ($self->_input_columns, $self->_extra_columns) { foreach my $column ($self->_display_columns) {
if (my $add_first = COLUMN_DEPENDS->{$column}) { if (my $add_first = COLUMN_DEPENDS->{$column}) {
push(@select_columns, @$add_first); push(@select_columns, @$add_first);
} }
push(@select_columns, $column); push(@select_columns, $column);
} }
# Remove duplicated columns.
$self->{select_columns} = [uniq @select_columns]; $self->{select_columns} = [uniq @select_columns];
return @{ $self->{select_columns} }; return @{ $self->{select_columns} };
} }
# This takes _select_columns and translates it into the actual SQL that # This takes _display_columns and translates it into the actual SQL that
# will go into the SELECT clause. # will go into the SELECT clause.
sub _sql_select { sub _sql_select {
my ($self) = @_; my ($self) = @_;
my @sql_fields; my @sql_fields;
foreach my $column ($self->_select_columns) { foreach my $column ($self->_display_columns) {
my $alias = $column; my $alias = $column;
# Aliases cannot contain dots in them. We convert them to underscores. # Aliases cannot contain dots in them. We convert them to underscores.
$alias =~ s/\./_/g; $alias =~ s/\./_/g;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment