Class LikeAnyAllExpression

java.lang.Object
dev.frostlake.executor.expressions.LikeAnyAllExpression
All Implemented Interfaces:
Expression

public class LikeAnyAllExpression extends Object implements Expression
Snowflake multi-pattern matching: x LIKE ANY (p1, p2, …), x LIKE ALL (…) and x ILIKE ANY (…), with an optional shared ESCAPE. This is NOT the OR/AND expansion of the single-pattern predicate: Snowflake skips NULL patterns entirely (live-verified — 'a' LIKE ALL ('a', NULL) is TRUE and 'a' LIKE ANY ('b', NULL) is FALSE, where three-valued logic would say NULL), returning NULL only for a NULL subject or when every pattern is NULL.
  • Constructor Details

  • Method Details

    • getSubject

      public Expression getSubject()
    • getPatterns

      public List<Expression> getPatterns()
    • isAll

      public boolean isAll()
    • isCaseInsensitive

      public boolean isCaseInsensitive()
    • getEscape

      public Expression getEscape()
    • getPosition

      public SourcePosition getPosition()
      Where the LIKE or ILIKE keyword sits, where live points a collation the predicate refuses.
    • setPosition

      public void setPosition(SourcePosition position)
    • accept

      public <T> T accept(ExpressionVisitor<T> visitor)
      Description copied from interface: Expression
      Accept a visitor for the visitor pattern
      Specified by:
      accept in interface Expression
    • toString

      public String toString()
      Overrides:
      toString in class Object