From: Matt S Trout Date: Sun, 28 Oct 2018 00:31:54 +0000 (+0000) Subject: for compat, single select arg doesnt quote X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=de63ce570a396ba4b165b40191bfc1ba4dd45089;p=scpubgit%2FQ-Branch.git for compat, single select arg doesnt quote --- diff --git a/lib/SQL/Abstract.pm b/lib/SQL/Abstract.pm index 6b9d4a2..b376909 100644 --- a/lib/SQL/Abstract.pm +++ b/lib/SQL/Abstract.pm @@ -433,6 +433,7 @@ sub select { sub _select_fields { my ($self, $fields) = @_; + return $fields unless ref($fields); return $self->_render_expr( $self->_expand_maybe_list_expr($fields, undef, '-ident') ); diff --git a/t/01generate.t b/t/01generate.t index 50e2f46..4c23c48 100644 --- a/t/01generate.t +++ b/t/01generate.t @@ -75,6 +75,14 @@ my @tests = ( bind => ['boom'] }, { + # this is maybe wrong but a single arg doesn't get quoted + func => 'select', + args => ['test', 'id', { a => { '!=', 'boom' } }], + stmt => 'SELECT id FROM test WHERE ( a != ? )', + stmt_q => 'SELECT id FROM `test` WHERE ( `a` != ? )', + bind => ['boom'] + }, + { func => 'update', args => ['test', {a => 'boom'}, {a => undef}], stmt => 'UPDATE test SET a = ? WHERE ( a IS NULL )',