=head1 NAME

Pg::SQL::PrettyPrinter::Node::SelectStmt - Class representing single select statement

=head1 SYNOPSIS

Not to be used directly.

=head1 FUNCTIONS

Aside from functions listed below, it inherits functions from
L<Pg::SQL::PrettyPrinter::Node>.

=head2 new

Makes select object, first using parent's constructur, and calls appropriate
L<init_*> method to initialize subelements.

=head2 setop

Text name of I<set operation> that this select has, or undef. These is one of:

=over

=item * EXCEPT

=item * EXCEPT ALL

=item * INTERSECT

=item * INTERSECT ALL

=item * UNION

=item * UNION ALL

=back

=head2 init_setop

Initializes elements of query if it's set operation based.

=head2 init_plain

Initializes elements of query if it's not set operation based.

=head2 as_text

Returns data from appropriate L<as_text_*> method.

=head2 as_text_setop

Returns this object as text without extra formatting. This is for set
operation based selects.

=head2 as_text_plain

Returns this object as text without extra formatting. This is for non set
operation based selects.

=head2 pretty_print

Returns data from appropriate L<pretty_print_*> method.

=head2 pretty_print_setop

Returns this object as text using pretty printing. This is for set operation
based selects.

=head2 pretty_print_plain

Returns this object as text using pretty printing. This is for not set
operation based selects.

=head1 AUTHOR

hubert depesz lubaczewski, C<< <depesz at depesz.com> >>

=head1 BUGS

Please report any bugs or feature requests to C<depesz at depesz.com>.

=head1 SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Pg::SQL::PrettyPrinter::Node::SelectStmt

=head1 COPYRIGHT & LICENSE

Copyright  hubert depesz lubaczewski, all rights reserved.

This program is distributed under the (Revised) BSD License.
