X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FAbstract%2FTree.pm;h=a8894f21fb5ba823bb2c527cd28e82b622638091;hb=c4d7cfcf707fc754a03934300414c16416257698;hp=1c3a82f6821765fc4a881c4487ddde869e0e5934;hpb=4d52eb55eea8d6f6e49c3a2b0633da18bee2a0a2;p=scpubgit%2FQ-Branch.git diff --git a/lib/SQL/Abstract/Tree.pm b/lib/SQL/Abstract/Tree.pm index 1c3a82f..a8894f2 100644 --- a/lib/SQL/Abstract/Tree.pm +++ b/lib/SQL/Abstract/Tree.pm @@ -488,7 +488,7 @@ sub _unparse { return $self->fill_in_placeholder($bindargs); } elsif ($car eq 'PAREN') { - return sprintf ('(%s)', + return sprintf ('( %s )', join (' ', map { $self->_unparse($_, $bindargs, $depth + 2) } @{$cdr} ) . ($self->_is_key($cdr) @@ -505,7 +505,15 @@ sub _unparse { } else { my ($l, $r) = @{$self->pad_keyword($car, $depth)}; - return sprintf "$l%s %s$r", $self->format_keyword($car), $self->_unparse($cdr, $bindargs, $depth); + + return sprintf "$l%s%s%s$r", + $self->format_keyword($car), + ( ref $cdr eq 'ARRAY' and ref $cdr->[0] eq 'ARRAY' and $cdr->[0][0] and $cdr->[0][0] eq 'PAREN' ) + ? '' # mysql-- + : ' ' + , + $self->_unparse($cdr, $bindargs, $depth), + ; } }