GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  TANGRAM::EXPR (3)

.ds Aq ’

NAME

Tangram::Expr - represent expressions on database server side

CONTENTS

SYNOPSIS



   my ($r1, $r2) = $storage->remote(qw( ... ));

   $r1->{field} operator $value
   $r1->{field} operator $r2->{field2}

   $r1->{collection}->includes( $obj )
   $r1->{collection}->exists( $obj, $filter )
   $r1->{collection}->includes_or( $obj1, $obj2, ... )



DESCRIPTION

Tangram::Expr objects represent expressions that will be evaluated on the database server side.

Expression objects fall into one of the following categories: numeric, string, reference or collection.

Many of the methods in Expr are needed only by people extending Tangram. See also Tangram::Relational, and the source the Tangram::mysql and Tangram::Sybase for examples on how these functions are intercepted to allow RDBMS-specific expressions.

NUMERIC EXPRESSIONS

Numeric expression objects can be compared using the operators ==, !=, <, >, <= and >=. The other operand must be either another numeric expression object, or a normal Perl numeric value. The result of the comparison is a Filter.

STRING EXPRESSIONS

String expression objects can be compared using the operators eq, ne, lt, gt, le, and ge. The other operand must be either a string expression object or any Perl scalar value. Tangram will automatically quote the operand as required by the SQL syntax. The result of the comparison is a Tangram::Expr::Filter.

String expression objects also support the method like($str), where $str is a string that may contain SQL wildcards. The result is a Tangram::Expr::Filter that translates to a SQL LIKE $str predicate.

REFERENCE EXPRESSIONS

Reference expression objects can be compared for equality using operators == and !=. The other operand must be another reference expression, a persistent object or undef(). The result of the comparison is a Filter.

COLLECTION EXPRESSIONS

Collection expression objects represents a collection inside an object. It supports the includes() and exists() methods, which returns a Tangram::Expr::Filter stating that the collection must contain the operand. exists() uses a subselect.

It also supports the includes_or() methods, which accepts a list and is performs a logical OR - using the IN (x,y,z) SQL construct.

The operand may be a Tangram::Remote, a persistent object, or an object ID.

operator < is provided as a synonym for includes().

The includes() method can be used for all collection types (Set, Array, Hash, and the Intr* versions).

PREDICATES

Predicate objects represent logical expressions, or conditions. Predicates support logical operators &, | and !. Note that a single ampersand or vertical bar must be used (this is a Perl limitation). The result is another predicate.

CLASS METHODS

new($type, CW$expr, CW@remotes)

Returns a new instance.

$type is a Type object corresponding to this expression (see Tangram::Type).

$expr is a SQL expression. It will eventually become part of a WHERE-CLAUSE.

@remotes contains the Remote objects (see Tangram::Remote) that participate in the expression. Tangram uses this list to insert the corresponding tables in the FROM clause and conditions in the WHERE-CLAUSE.

INSTANCE METHODS

expr()

Returns the SQL equivalent for this expression.

type()

Returns the Type (see Tangram::Type) corresponding to this expression.

objects()

Returns the list of the objects that participate in this expression.

storage()

Returns the Storage associated with this expression.

EXAMPLES

$person is called ’Homer’



      $person->{name} eq Homer



$person’s name ends with ’mer’



      $person->{name}->like(%mer);



$person is older than 35



      $person->{age} > 35



$person is married to $homer



      $person->{partner} == $homer



$person is not $homer



      $person != $homer



$person is not $homer and is older than 65



      $person != $homer & $person->{age} > 65



$person is $bart’s parent



      $person->{children}->includes( $bart )
      $person->{children} < $bart



$person is not $bart’s parent



      !$person->{children}->includes( $bart )
      !($person->{children} < $bart)



$person is one of the local list of people, @person



      $person->in(@person)



SEE ALSO

Tangram::Remote, Tangram::Expr, Tangram::Storage
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 TANGRAM::EXPR (3) 2015-10-09

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.