sub _render_join {
my ($self, $dq) = @_;
my ($left, $right) = @{$dq}{qw(left right)};
- my $join = do {
- if ($dq->{outer}) {
- $self->_format_keyword(uc($dq->{outer}).' JOIN');
- } elsif ($dq->{on}) {
- $self->_format_keyword('JOIN');
- } else {
- ','
- }
- };
my $rhs = $self->_render($right);
[
- $self->_render($left), $join,
+ $self->_render($left), $self->_format_join_keyword($dq),
(is_Join($right) ? ('(', $rhs, ')') : $rhs),
($dq->{on}
? ($self->_format_keyword('ON'), $self->_render($dq->{on}))
];
}
+sub _format_join_keyword {
+ my ($self, $dq) = @_;
+ if ($dq->{outer}) {
+ $self->_format_keyword(uc($dq->{outer}).' JOIN');
+ } elsif ($dq->{on}) {
+ $self->_format_keyword('JOIN');
+ } else {
+ ','
+ }
+}
+
sub _render_where {
my ($self, $dq) = @_;
my ($from, $where) = @{$dq}{qw(from where)};