iceberg-cpp
Loading...
Searching...
No Matches
Public Member Functions | List of all members
iceberg::UnboundPredicate Class Referenceabstract

Non-template base class for all UnboundPredicate instances. More...

#include <predicate.h>

Inheritance diagram for iceberg::UnboundPredicate:
iceberg::Expression iceberg::Unbound< Expression > iceberg::util::Formattable iceberg::UnboundPredicateImpl< B >

Public Member Functions

std::shared_ptr< NamedReferencereference () override=0
 Returns the reference of this UnboundPredicate.
 
Result< std::shared_ptr< Expression > > Bind (const Schema &schema, bool case_sensitive) const override=0
 Bind this UnboundPredicate.
 
Result< std::shared_ptr< Expression > > Negate () const override=0
 Negate this UnboundPredicate.
 
bool is_unbound_predicate () const override
 
virtual const Termunbound_term () const =0
 Returns the term of this predicate as a base Term reference.
 
virtual std::span< const Literalliterals () const =0
 Returns the literals of this predicate.
 
- Public Member Functions inherited from iceberg::Expression
virtual Operation op () const =0
 Returns the operation for an expression node.
 
virtual bool Equals (const Expression &other) const
 Returns whether this expression will accept the same values as another.
 
std::string ToString () const override
 Get a user-readable string representation.
 
virtual bool is_bound_predicate () const
 
virtual bool is_unbound_aggregate () const
 
virtual bool is_bound_aggregate () const
 
- Public Member Functions inherited from iceberg::Unbound< Expression >
Result< std::shared_ptr< Expression > > Bind (const Schema &schema) const
 Overloaded Bind method that uses case-sensitive matching by default.
 

Additional Inherited Members

- Public Types inherited from iceberg::Expression
enum class  Operation {
  kTrue , kFalse , kIsNull , kNotNull ,
  kIsNan , kNotNan , kLt , kLtEq ,
  kGt , kGtEq , kEq , kNotEq ,
  kIn , kNotIn , kNot , kAnd ,
  kOr , kStartsWith , kNotStartsWith , kCount ,
  kCountNull , kCountStar , kMax , kMin
}
 Operation types for expressions.
 

Detailed Description

Non-template base class for all UnboundPredicate instances.

This class enables type erasure for template-based UnboundPredicate classes, allowing them to be used in non-template visitor interfaces.

Member Function Documentation

◆ Bind()

Result< std::shared_ptr< Expression > > iceberg::UnboundPredicate::Bind ( const Schema schema,
bool  case_sensitive 
) const
overridepure virtual

◆ is_unbound_predicate()

bool iceberg::UnboundPredicate::is_unbound_predicate ( ) const
inlineoverridevirtual

Reimplemented from iceberg::Expression.

◆ literals()

virtual std::span< const Literal > iceberg::UnboundPredicate::literals ( ) const
pure virtual

Returns the literals of this predicate.

Implemented in iceberg::UnboundPredicateImpl< B >.

◆ Negate()

Result< std::shared_ptr< Expression > > iceberg::UnboundPredicate::Negate ( ) const
overridepure virtual

Negate this UnboundPredicate.

Reimplemented from iceberg::Expression.

Implemented in iceberg::UnboundPredicateImpl< B >.

◆ reference()

std::shared_ptr< NamedReference > iceberg::UnboundPredicate::reference ( )
overridepure virtual

Returns the reference of this UnboundPredicate.

Implements iceberg::Unbound< Expression >.

Implemented in iceberg::UnboundPredicateImpl< B >.

◆ unbound_term()

virtual const Term & iceberg::UnboundPredicate::unbound_term ( ) const
pure virtual

Returns the term of this predicate as a base Term reference.

Implemented in iceberg::UnboundPredicateImpl< B >.


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