Jens Rehsack > SQL-Statement-1.401 > SQL::Statement::Operation

Download:
SQL-Statement-1.401.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  6
Open  9
Stalled  7
View/Report Bugs
Module Version: 1.401   Source   Latest Release: SQL-Statement-1.405

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.

syntax highlighting: