From 47aa63a7ed4e8500bd9e0d92ef79e0371dc395a6 Mon Sep 17 00:00:00 2001 From: Neeraj Singh Date: Wed, 8 Sep 2010 06:14:42 -0400 Subject: [PATCH] Add method format for Arel::Predicates::Equality [#5490 state:resolved] --- lib/arel/algebra/predicates.rb | 4 ++++ .../engines/sql/unit/predicates/predicates_spec.rb | 13 +++++++++++++ 2 files changed, 17 insertions(+), 0 deletions(-) diff --git a/lib/arel/algebra/predicates.rb b/lib/arel/algebra/predicates.rb index 2426aae..54d2b0b 100644 --- a/lib/arel/algebra/predicates.rb +++ b/lib/arel/algebra/predicates.rb @@ -190,6 +190,10 @@ module Arel def predicate_sql operand2.equality_predicate_sql end + + def format(operand) + operand1.format(operand) + end end class Inequality < Equality diff --git a/spec/engines/sql/unit/predicates/predicates_spec.rb b/spec/engines/sql/unit/predicates/predicates_spec.rb index e6130cf..1686524 100644 --- a/spec/engines/sql/unit/predicates/predicates_spec.rb +++ b/spec/engines/sql/unit/predicates/predicates_spec.rb @@ -15,29 +15,42 @@ module Arel describe "#to_sql" do it "manufactures sql with an AND operation" do sql = @operand1.and(@operand2).to_sql + full_sql = @relation.where(@operand1.and(@operand2)).to_sql adapter_is :mysql do sql.should be_like(%Q{ (`users`.`id` = 1 AND `users`.`name` = 'name') }) + full_sql.should be_like(%Q{ + SELECT `users`.`id`, `users`.`name` FROM `users` WHERE `users`.`id` = 1 AND `users`.`name` = 'name' + }) end adapter_is :sqlite3 do sql.should be_like(%Q{ ("users"."id" = 1 AND "users"."name" = 'name') }) + full_sql.should be_like(%Q{ + SELECT "users"."id", "users"."name" FROM "users" WHERE "users"."id" = 1 AND "users"."name" = 'name' + }) end adapter_is :postgresql do sql.should be_like(%Q{ ("users"."id" = 1 AND "users"."name" = E'name') }) + full_sql.should be_like(%Q{ + SELECT "users"."id", "users"."name" FROM "users" WHERE "users"."id" = 1 AND "users"."name" = E'name' + }) end adapter_is :oracle do sql.should be_like(%Q{ ("USERS"."ID" = 1 AND "USERS"."NAME" = 'name') }) + full_sql.should be_like(%Q{ + SELECT "users"."id", "users"."name" FROM "users" WHERE "users"."id" = 1 AND "users"."name" = 'name' + }) end end end -- 1.7.2