Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Tangram::Expr(3)      User Contributed Perl Documentation     Tangram::Expr(3)

NAME
       Tangram::Expr - represent expressions on	database server	side

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, $expr, @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

perl v5.32.0			  2015-10-09		      Tangram::Expr(3)

NAME | SYNOPSIS | DESCRIPTION | NUMERIC EXPRESSIONS | STRING EXPRESSIONS | REFERENCE EXPRESSIONS | COLLECTION EXPRESSIONS | PREDICATES | CLASS METHODS | INSTANCE METHODS | EXAMPLES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Tangram::Expr&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help