diff options
author | Raimonds Simanovskis <raimonds.simanovskis@gmail.com> | 2010-02-10 19:50:59 +0200 |
---|---|---|
committer | Raimonds Simanovskis <raimonds.simanovskis@gmail.com> | 2010-03-01 12:02:10 +0200 |
commit | 20a10e5302ce8f912d27c57702b542a019c7f9f9 (patch) | |
tree | 38de3309520244ba6fda99b8d47525852e926491 /spec/arel/engines/sql/unit/predicates | |
parent | 98a87e181aed8131797e55db2ca957bc515cdaca (diff) | |
download | rails-20a10e5302ce8f912d27c57702b542a019c7f9f9.tar.gz rails-20a10e5302ce8f912d27c57702b542a019c7f9f9.tar.bz2 rails-20a10e5302ce8f912d27c57702b542a019c7f9f9.zip |
changes for Oracle support - OracleCompiler and corresponding tests with Oracle syntax
Diffstat (limited to 'spec/arel/engines/sql/unit/predicates')
4 files changed, 80 insertions, 10 deletions
diff --git a/spec/arel/engines/sql/unit/predicates/binary_spec.rb b/spec/arel/engines/sql/unit/predicates/binary_spec.rb index 08f3310f8e..72c8e44888 100644 --- a/spec/arel/engines/sql/unit/predicates/binary_spec.rb +++ b/spec/arel/engines/sql/unit/predicates/binary_spec.rb @@ -37,6 +37,10 @@ module Arel adapter_is :sqlite3 do sql.should be_like(%Q{("users"."id" <=> 1 OR "users"."name" <=> 'name')}) end + + adapter_is :oracle do + sql.should be_like(%Q{("USERS"."ID" <=> 1 OR "USERS"."NAME" <=> 'name')}) + end end end end @@ -57,6 +61,10 @@ module Arel adapter_is :postgresql do sql.should be_like(%Q{("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')}) + end end end end @@ -71,7 +79,11 @@ module Arel sql.should be_like(%Q{`users`.`id` <=> `users`.`name`}) end - adapter_is_not :mysql do + adapter_is :oracle do + sql.should be_like(%Q{"USERS"."ID" <=> "USERS"."NAME"}) + end + + adapter_is_not :mysql, :oracle do sql.should be_like(%Q{"users"."id" <=> "users"."name"}) end end @@ -90,7 +102,11 @@ module Arel sql.should be_like(%Q{`users`.`id` <=> 1}) end - adapter_is_not :mysql do + adapter_is :oracle do + sql.should be_like(%Q{"USERS"."ID" <=> 1}) + end + + adapter_is_not :mysql, :oracle do sql.should be_like(%Q{"users"."id" <=> 1}) end end @@ -111,6 +127,10 @@ module Arel adapter_is :postgresql do sql.should be_like(%Q{"users"."name" <=> E'1-asdf'}) end + + adapter_is :oracle do + sql.should be_like(%Q{"USERS"."NAME" <=> '1-asdf'}) + end end end end diff --git a/spec/arel/engines/sql/unit/predicates/equality_spec.rb b/spec/arel/engines/sql/unit/predicates/equality_spec.rb index 7a5cb42c85..bfd61185f2 100644 --- a/spec/arel/engines/sql/unit/predicates/equality_spec.rb +++ b/spec/arel/engines/sql/unit/predicates/equality_spec.rb @@ -19,7 +19,11 @@ module Arel sql.should be_like(%Q{`users`.`id` = `photos`.`user_id`}) end - adapter_is_not :mysql do + adapter_is :oracle do + sql.should be_like(%Q{"USERS"."ID" = "PHOTOS"."USER_ID"}) + end + + adapter_is_not :mysql, :oracle do sql.should be_like(%Q{"users"."id" = "photos"."user_id"}) end end @@ -37,7 +41,11 @@ module Arel sql.should be_like(%Q{`users`.`id` IS NULL}) end - adapter_is_not :mysql do + adapter_is :oracle do + sql.should be_like(%Q{"USERS"."ID" IS NULL}) + end + + adapter_is_not :mysql, :oracle do sql.should be_like(%Q{"users"."id" IS NULL}) end end @@ -52,7 +60,11 @@ module Arel sql.should be_like(%Q{`users`.`id` IS NULL}) end - adapter_is_not :mysql do + adapter_is :oracle do + sql.should be_like(%Q{"USERS"."ID" IS NULL}) + end + + adapter_is_not :mysql, :oracle do sql.should be_like(%Q{"users"."id" IS NULL}) end end diff --git a/spec/arel/engines/sql/unit/predicates/in_spec.rb b/spec/arel/engines/sql/unit/predicates/in_spec.rb index a1c42f714e..5d9b2cdcaa 100644 --- a/spec/arel/engines/sql/unit/predicates/in_spec.rb +++ b/spec/arel/engines/sql/unit/predicates/in_spec.rb @@ -22,7 +22,11 @@ module Arel sql.should be_like(%Q{`users`.`id` IN (1, 2, 3)}) end - adapter_is_not :mysql do + adapter_is :oracle do + sql.should be_like(%Q{"USERS"."ID" IN (1, 2, 3)}) + end + + adapter_is_not :mysql, :oracle do sql.should be_like(%Q{"users"."id" IN (1, 2, 3)}) end end @@ -40,7 +44,11 @@ module Arel sql.should be_like(%Q{`users`.`id` IN (1, 2, 3)}) end - adapter_is_not :mysql do + adapter_is :oracle do + sql.should be_like(%Q{"USERS"."ID" IN (1, 2, 3)}) + end + + adapter_is_not :mysql, :oracle do sql.should be_like(%Q{"users"."id" IN (1, 2, 3)}) end end @@ -58,7 +66,11 @@ module Arel sql.should be_like(%Q{`users`.`id` IN (NULL)}) end - adapter_is_not :mysql do + adapter_is :oracle do + sql.should be_like(%Q{"USERS"."ID" IN (NULL)}) + end + + adapter_is_not :mysql, :oracle do sql.should be_like(%Q{"users"."id" IN (NULL)}) end end @@ -78,7 +90,11 @@ module Arel sql.should be_like(%Q{`users`.`id` BETWEEN 1 AND 2}) end - adapter_is_not :mysql do + adapter_is :oracle do + sql.should be_like(%Q{"USERS"."ID" BETWEEN 1 AND 2}) + end + + adapter_is_not :mysql, :oracle do sql.should be_like(%Q{"users"."id" BETWEEN 1 AND 2}) end end @@ -109,6 +125,10 @@ module Arel adapter_is :postgresql do sql.should be_like(%Q{"developers"."created_at" BETWEEN '2010-01-01 00:00:00.000000' AND '2010-02-01 00:00:00.000000'}) end + + adapter_is :oracle do + sql.should be_like(%Q{"DEVELOPERS"."CREATED_AT" BETWEEN TO_TIMESTAMP('2010-01-01 00:00:00:000000','YYYY-MM-DD HH24:MI:SS:FF6') AND TO_TIMESTAMP('2010-02-01 00:00:00:000000','YYYY-MM-DD HH24:MI:SS:FF6')}) + end end end @@ -122,7 +142,13 @@ module Arel }) end - adapter_is_not :mysql do + adapter_is :oracle do + sql.should be_like(%Q{ + "USERS"."ID" IN (SELECT "USERS"."ID", "USERS"."NAME" FROM "USERS") + }) + end + + adapter_is_not :mysql, :oracle do sql.should be_like(%Q{ "users"."id" IN (SELECT "users"."id", "users"."name" FROM "users") }) diff --git a/spec/arel/engines/sql/unit/predicates/predicates_spec.rb b/spec/arel/engines/sql/unit/predicates/predicates_spec.rb index 81c348357c..e6130cf267 100644 --- a/spec/arel/engines/sql/unit/predicates/predicates_spec.rb +++ b/spec/arel/engines/sql/unit/predicates/predicates_spec.rb @@ -33,6 +33,12 @@ module Arel ("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') + }) + end end end end @@ -59,6 +65,12 @@ module Arel ("users"."id" = 1 OR "users"."name" = E'name') }) end + + adapter_is :oracle do + sql.should be_like(%Q{ + ("USERS"."ID" = 1 OR "USERS"."NAME" = 'name') + }) + end end end end |