From 33ac18fe6c9863d02924d076df4179e7572afebc Mon Sep 17 00:00:00 2001 From: Sebastian Riedel Date: Sun, 28 Jan 2018 12:34:40 +0100 Subject: [PATCH] Add overloadable _select_fields method, consistent with _update_set_values and _insert_values --- lib/SQL/Abstract.pm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/SQL/Abstract.pm b/lib/SQL/Abstract.pm index d30a7e31..e3fe8da9 100644 --- a/lib/SQL/Abstract.pm +++ b/lib/SQL/Abstract.pm @@ -464,17 +464,23 @@ sub select { my $where = shift; my $order = shift; - my($where_sql, @bind) = $self->where($where, $order); + my ($fields_sql, @bind) = $self->_select_fields($fields); - my $f = (ref $fields eq 'ARRAY') ? join ', ', map { $self->_quote($_) } @$fields - : $fields; - my $sql = join(' ', $self->_sqlcase('select'), $f, + my($where_sql, @where_bind) = $self->where($where, $order); + push @bind, @where_bind; + my $sql = join(' ', $self->_sqlcase('select'), $fields_sql, $self->_sqlcase('from'), $table) . $where_sql; return wantarray ? ($sql, @bind) : $sql; } +sub _select_fields { + my ($self, $fields) = @_; + return ref $fields eq 'ARRAY' ? join ', ', map { $self->_quote($_) } @$fields + : $fields; +} + #====================================================================== # DELETE #======================================================================