Sha256: a677cf11a071a1fced4a5321808894f62c7a5c51370c7534101ca20d2a45d31c
Contents?: true
Size: 1.97 KB
Versions: 4
Compression:
Stored size: 1.97 KB
Contents
grammar SQLKeyValuePair include SQLPrimitives include SQLRowSupport rule key_value_pair one_column_name optional_spaces joiner_or_null { def eval results = joiner_or_null.eval klass = Expressions.find_class_for(results[:joiner]) if value = results[:value] klass.new(one_column_name.eval.to_sym, results[:value]) else klass.new(one_column_name.eval.to_sym) end end } end rule joiner_or_null a_null / joiner_with_value end rule a_null is_not_null / is_null end rule is_not_null "IS" SPACE "NOT" SPACE "NULL" { def eval { :joiner => :"IS NOT NULL" } end } end rule is_null "IS" SPACE "NULL" { def eval { :joiner => :"IS NULL" } end } end rule joiner_with_value condition_joiner optional_spaces primitive { def eval { :joiner => condition_joiner.eval, :value => primitive.eval } end } end rule condition_joiner greater_than_or_equal / less_than_or_equal / equals / not_equals / less_than / greater_than / like end rule less_than_or_equal "<=" SPACES "BINARY" { def eval; :<=; end } / "<=" { def eval; :<=; end } end rule greater_than_or_equal ">=" SPACES "BINARY" { def eval; :>= end } / ">=" { def eval; :>= end } end rule less_than "<" SPACES "BINARY" { def eval; :< end } / "<" { def eval; :< end } end rule greater_than ">" SPACES "BINARY" { def eval; :> end } / ">" { def eval; :> end } end rule not_equals "!=" SPACES "BINARY" { def eval; :"!=" end } / "!=" { def eval; :"!=" end } end rule equals "=" SPACES "BINARY" { def eval; :"=" end } / "=" { def eval; :"=" end } end rule like "LIKE" { def eval; :"LIKE" end } end end
Version data entries
4 entries across 4 versions & 1 rubygems