MySQL 9.1.0
Source Code Documentation
Linear_comp_creator Class Referenceabstract

Abstract base class for the comparison operators =, <> and <=>. More...

#include <item_cmpfunc.h>

Inheritance diagram for Linear_comp_creator:
[legend]

Public Member Functions

Item_bool_funccreate (Item *a, Item *b) const override
 This implementation of the factory method also implements flattening of row constructors. More...
 
bool eqne_op () const override
 
bool l_op () const override
 
- Public Member Functions inherited from Comp_creator
virtual ~Comp_creator ()=default
 
virtual const char * symbol (bool invert) const =0
 This interface is only used by Item_allany_subselect. More...
 

Protected Member Functions

virtual Item_bool_funccreate_scalar_predicate (Item *a, Item *b) const =0
 Creates only an item tree node, without attempting to rewrite row constructors. More...
 
virtual Item_bool_funccombine (List< Item > list) const =0
 Combines a list of conditions exp op exp. More...
 

Detailed Description

Abstract base class for the comparison operators =, <> and <=>.

Member Function Documentation

◆ combine()

virtual Item_bool_func * Linear_comp_creator::combine ( List< Item list) const
protectedpure virtual

Combines a list of conditions exp op exp.

Implemented in Eq_creator, Equal_creator, and Ne_creator.

◆ create()

Item_bool_func * Linear_comp_creator::create ( Item a,
Item b 
) const
overridevirtual

This implementation of the factory method also implements flattening of row constructors.

Examples of flattening are:

  • ROW(a, b) op ROW(x, y) => a op x P b op y.
  • ROW(a, ROW(b, c) op ROW(x, ROW(y, z))) => a op x P b op y P c op z.

P is either AND or OR, depending on the comparison operation, and this detail is left for combine().

The actual operator op is created by the concrete subclass in create_scalar_predicate().

Implements Comp_creator.

◆ create_scalar_predicate()

virtual Item_bool_func * Linear_comp_creator::create_scalar_predicate ( Item a,
Item b 
) const
protectedpure virtual

Creates only an item tree node, without attempting to rewrite row constructors.

See also
create()

Implemented in Eq_creator, Equal_creator, and Ne_creator.

◆ eqne_op()

bool Linear_comp_creator::eqne_op ( ) const
inlineoverridevirtual

Implements Comp_creator.

◆ l_op()

bool Linear_comp_creator::l_op ( ) const
inlineoverridevirtual

Implements Comp_creator.


The documentation for this class was generated from the following files: