--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: An array of args for this object
  name: args
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The operator symbol for this object
  name: op
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Represents a complex SQL expression, with a given operator and one or more attributes (which may also be ComplexExpressions, forming a tree). This class is the backbone of the blockless filter support in Sequel.
- !ruby/struct:SM::Flow::P 
  body: This is an abstract class that is not that useful by itself. The subclasses BooleanExpression, NumericExpression, and StringExpression define the behavior of the DSL via operators.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: A hash of the opposite for each operator symbol, used for inverting objects.
  name: OPERTATOR_INVERSIONS
  value: "{:AND => :OR, :OR => :AND, :< => :>=, :> => :<=,         :<= => :>, :>= => :<, :'=' => :'!=' , :'!=' => :'=', :LIKE => :'NOT LIKE',         :'NOT LIKE' => :LIKE, :~ => :'!~', :'!~' => :~, :IN => :'NOT IN',         :'NOT IN' => :IN, :IS => :'IS NOT', :'IS NOT' => :IS, :'~*' => :'!~*',         :'!~*' => :'~*', :NOT => :NOOP, :NOOP => :NOT, :ILIKE => :'NOT ILIKE',         :'NOT ILIKE'=>:ILIKE}"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Mathematical Operators used in NumericMethods
  name: MATHEMATICAL_OPERATORS
  value: "[:+, :-, :/, :*]"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Mathematical Operators used in NumericMethods
  name: BITWISE_OPERATORS
  value: "[:&, :|, :^, :<<, :>>]"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Inequality Operators used in InequalityMethods
  name: INEQUALITY_OPERATORS
  value: "[:<, :>, :<=, :>=]"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Hash of ruby operator symbols to SQL operators, used in BooleanMethods
  name: BOOLEAN_OPERATOR_METHODS
  value: "{:& => :AND, :| =>:OR}"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Operator symbols that take exactly two arguments
  name: TWO_ARITY_OPERATORS
  value: "[:'=', :'!=', :IS, :'IS NOT', :LIKE, :'NOT LIKE', \\         :~, :'!~', :'~*', :'!~*', :IN, :'NOT IN', :ILIKE, :'NOT ILIKE'] + \\         INEQUALITY_OPERATORS + BITWISE_OPERATORS"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Operator symbols that take one or more arguments
  name: N_ARITY_OPERATORS
  value: "[:AND, :OR, :'||'] + MATHEMATICAL_OPERATORS"
- !ruby/object:RI::Constant 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: Operator symbols that take one argument
  name: ONE_ARITY_OPERATORS
  value: "[:NOT, :NOOP, :'B~']"
full_name: Sequel::SQL::ComplexExpression
includes: 
- !ruby/object:RI::IncludedModule 
  name: AliasMethods
- !ruby/object:RI::IncludedModule 
  name: CastMethods
- !ruby/object:RI::IncludedModule 
  name: OrderMethods
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: eql?
- !ruby/object:RI::MethodSummary 
  name: to_s
name: ComplexExpression
superclass: Expression
