Provided by: libsql-statement-perl_1.405-1_all bug

NAME

       SQL::Statement::Operation - base class for all operation terms

SYNOPSIS

         # create an operation with an SQL::Statement object as owner, specifying
         # the operation name (for error purposes), the left and the right
         # operand
         my $term = SQL::Statement::Operation->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation is an abstract base class providing the interface for all
       operation terms.

INHERITANCE

         SQL::Statement::Operation
         ISA SQL::Statement::Term

METHODS

   new
       Instantiates new operation term.

   value
       Return the result of the operation of the term by calling operate

   operate
       Abstract method which will do the operation of the term. Must be overridden by derived
       classes.

   op
       Returns the name of the executed operation.

   left
       Returns the left operand (if any).

   right
       Returns the right operand (if any).

   DESTROY
       Destroys the term and undefines the weak reference to the owner as well as the stored
       operation, the left and the right operand.

NAME

       SQL::Statement::Operation::Neg - negate operation

SYNOPSIS

         # create an <not> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and B<no> right operand
         my $term = SQL::Statement::Neg->new( $owner, $op, $left, undef );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::Neg

INHERITANCE

         SQL::Statement::Operation::Neg
         ISA SQL::Statement::Operation
           ISA SQL::Statement::Term

METHODS

   operate
       Return the logical negated value of the left operand.

NAME

       SQL::Statement::Operation::And - and operation

SYNOPSIS

         # create an C<and> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::And->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::And implements the logical "and" operation between two terms.

INHERITANCE

         SQL::Statement::Operation::And
         ISA SQL::Statement::Operation
           ISA SQL::Statement::Term

METHODS

   operate
       Return the result of the logical "and" operation for the values of the left and right
       operand.

NAME

       SQL::Statement::Operation::Or - or operation

SYNOPSIS

         # create an C<or> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::Or->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::Or implements the logical "or" operation between two terms.

INHERITANCE

         SQL::Statement::Operation::Or
         ISA SQL::Statement::Operation
           ISA SQL::Statement::Term

METHODS

   operate
       Return the result of the logical "or" operation for the values of the left and right
       operand.

NAME

       SQL::Statement::Operation::Is - is operation

SYNOPSIS

         # create an C<is> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::Is->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::Is supports: "IS NULL", "IS TRUE" and "IS FALSE".  The right
       operand is always evaluated in boolean context in case of "IS TRUE" and "IS FALSE". "IS
       NULL" returns true even if the left term is an empty string ('').

INHERITANCE

         SQL::Statement::Operation::Is
         ISA SQL::Statement::Operation
           ISA SQL::Statement::Term

METHODS

   operate
       Returns true when the left term is null, true or false - based on the requested right
       value.

NAME

       SQL::Statement::Operation::ANSI::Is - is operation

SYNOPSIS

         # create an C<is> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::Is->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::ANSI::Is supports: "IS NULL", "IS TRUE" and "IS FALSE".  The
       right operand is always evaluated in boolean context in case of "IS TRUE" and "IS FALSE".
       "IS NULL" returns true if the right term is not defined, false otherwise.

INHERITANCE

         SQL::Statement::Operation::Is
         ISA SQL::Statement::Operation
           ISA SQL::Statement::Term

METHODS

   operate
       Returns true when the left term is null, true or false - based on the requested right
       value.

NAME

       SQL::Statement::Operation::Contains - in operation

SYNOPSIS

         # create an C<in> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::Contains->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::Contains expects the right operand is an array of
       SQL::Statement::Term instances. It checks whether the left operand is in the list of the
       right operands or not like:

         $left->value($eval) ~~ map { $_->value($eval) } @{$right}

INHERITANCE

         SQL::Statement::Operation::Contains
         ISA SQL::Statement::Operation
           ISA SQL::Statement::Term

METHODS

   operate
       Returns true when the left term is equal to any of the right terms

NAME

       SQL::Statement::Operation::Between - between operation

SYNOPSIS

         # create an C<between> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::Between->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::Between expects the right operand is an array of 2
       SQL::Statement::Term instances. It checks whether the left operand is between the right
       operands like:

            ( $left->value($eval) >= $right[0]->value($eval) )
         && ( $left->value($eval) <= $right[1]->value($eval) )

INHERITANCE

         SQL::Statement::Operation::Between
         ISA SQL::Statement::Operation
           ISA SQL::Statement::Term

METHODS

   operate
       Returns true when the left term is between both right terms

NAME

       SQL::Statement::Operation::Equality - abstract base class for comparisons

SYNOPSIS

         # create an C<equality> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::Equality->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::Equality implements compare operations between two terms -
       choosing either numerical comparison or string comparison, depending whether both operands
       are numeric or not.

INHERITANCE

         SQL::Statement::Operation::Equality
         ISA SQL::Statement::Operation
           ISA SQL::Statement::Term

METHODS

   operate
       Return the result of the comparison.

   numcmp
       Abstract method which will do the numeric comparison of both terms. Must be overridden by
       derived classes.

   strcmp
       Abstract method which will do the string comparison of both terms. Must be overridden by
       derived classes.

NAME

       SQL::Statement::Operation::Equal - implements equal operation

SYNOPSIS

         # create an C<equal> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::Equal->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::Equal implements compare operations between two numbers and two
       strings.

INHERITANCE

         SQL::Statement::Operation::Equal
         ISA SQL::Statement::Operation::Equality
           ISA SQL::Statement::Operation
             ISA SQL::Statement::Term

METHODS

   numcmp
       Return true when "$left == $right"

   strcmp
       Return true when "$left eq $right"

NAME

       SQL::Statement::Operation::NotEqual - implements not equal operation

SYNOPSIS

         # create an C<not equal> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::NotEqual->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::NotEqual implements negated compare operations between two
       numbers and two strings.

INHERITANCE

         SQL::Statement::Operation::NotEqual
         ISA SQL::Statement::Operation::Equality
           ISA SQL::Statement::Operation
             ISA SQL::Statement::Term

METHODS

   numcmp
       Return true when "$left != $right"

   strcmp
       Return true when "$left ne $right"

NAME

       SQL::Statement::Operation::Lower - implements lower than operation

SYNOPSIS

         # create an C<lower than> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::Lower->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::Lower implements lower than compare operations between two
       numbers and two strings.

INHERITANCE

         SQL::Statement::Operation::Lower
         ISA SQL::Statement::Operation::Equality
           ISA SQL::Statement::Operation
             ISA SQL::Statement::Term

METHODS

   numcmp
       Return true when "$left < $right"

   strcmp
       Return true when "$left lt $right"

NAME

       SQL::Statement::Operation::Greater - implements greater than operation

SYNOPSIS

         # create an C<greater than> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::Greater->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::Greater implements greater than compare operations between two
       numbers and two strings.

INHERITANCE

         SQL::Statement::Operation::Greater
         ISA SQL::Statement::Operation::Equality
           ISA SQL::Statement::Operation
             ISA SQL::Statement::Term

METHODS

   numcmp
       Return true when $left  $right>

   strcmp
       Return true when "$left gt $right"

NAME

       SQL::Statement::Operation::LowerEqual - implements lower equal operation

SYNOPSIS

         # create an C<lower equal> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::LowerEqual->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::LowerEqual implements lower equal compare operations between
       two numbers and two strings.

INHERITANCE

         SQL::Statement::Operation::LowerEqual
         ISA SQL::Statement::Operation::Equality
           ISA SQL::Statement::Operation
             ISA SQL::Statement::Term

METHODS

   numcmp
       Return true when "$left <= $right"

   strcmp
       Return true when "$left le $right"

NAME

       SQL::Statement::Operation::GreaterEqual - implements greater equal operation

SYNOPSIS

         # create an C<greater equal> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::GreaterEqual->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::GreaterEqual implements greater equal compare operations
       between two numbers and two strings.

INHERITANCE

         SQL::Statement::Operation::GreaterEqual
         ISA SQL::Statement::Operation::Equality
           ISA SQL::Statement::Operation
             ISA SQL::Statement::Term

METHODS

   numcmp
       Return true when $left = $right>

   strcmp
       Return true when "$left ge $right"

NAME

       SQL::Statement::Operation::Regexp - abstract base class for comparisons based on regular
       expressions

SYNOPSIS

         # create an C<regexp> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::Regexp->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::Regexp implements the comparisons for the "LIKE" operation
       family.

INHERITANCE

         SQL::Statement::Operation::Regexp
         ISA SQL::Statement::Operation
           ISA SQL::Statement::Term

METHODS

   operate
       Return the result of the comparison.

   right
       Returns the regular expression based on the right term. The right term is expected to be
       constant - so "a LIKE b" in not supported.

   regexp
       Abstract method which must return a regular expression ("qr//") from the given string.
       Must be overridden by derived classes.

NAME

       SQL::Statement::Operation::Like - implements the like operation

SYNOPSIS

         # create an C<like> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::Like->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::Like is used to to the comparisons for the "LIKE" operation.

INHERITANCE

         SQL::Statement::Operation::Like
         ISA SQL::Statement::Operation::Regexp
           ISA SQL::Statement::Operation
             ISA SQL::Statement::Term

METHODS

   regexp
       Returns "qr/^$right$/s"

NAME

       SQL::Statement::Operation::Clike - implements the clike operation

SYNOPSIS

         # create an C<clike> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::Clike->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::Clike is used to to the comparisons for the "CLIKE" operation.

INHERITANCE

         SQL::Statement::Operation::Clike
         ISA SQL::Statement::Operation::Regexp
           ISA SQL::Statement::Operation
             ISA SQL::Statement::Term

METHODS

   regexp
       Returns "qr/^$right$/si"

NAME

       SQL::Statement::Operation::RLike - implements the rlike operation

SYNOPSIS

         # create an C<rlike> operation with an SQL::Statement object as owner,
         # specifying the operation name, the left and the right operand
         my $term = SQL::Statement::RLike->new( $owner, $op, $left, $right );
         # access the result of that operation
         $term->value( $eval );

DESCRIPTION

       SQL::Statement::Operation::RLike is used to to the comparisons for the "RLIKE" operation.

INHERITANCE

         SQL::Statement::Operation::RLike
         ISA SQL::Statement::Operation::Regexp
           ISA SQL::Statement::Operation
             ISA SQL::Statement::Term

METHODS

   regexp
       Returns "qr/$right$/s"

AUTHOR AND COPYRIGHT

       Copyright (c) 2009,2010 by Jens Rehsack: rehsackATcpan.org

       All rights reserved.

       You may distribute this module under the terms of either the GNU General Public License or
       the Artistic License, as specified in the Perl README file.