diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2007-03-09 03:23:37 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2007-03-09 03:23:37 +0000 |
commit | 98165fd31e7be605ef37e096e8423ce8953ef4ed (patch) | |
tree | 840b6c9948d84297190addc12b50ffd06d8dca50 /activerecord/test | |
parent | 49d1f6a813c2791f150611df1229593306796871 (diff) | |
download | rails-98165fd31e7be605ef37e096e8423ce8953ef4ed.tar.gz rails-98165fd31e7be605ef37e096e8423ce8953ef4ed.tar.bz2 rails-98165fd31e7be605ef37e096e8423ce8953ef4ed.zip |
Consistently quote primary key column names. Closes #7763.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6364 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test')
22 files changed, 99 insertions, 1 deletions
diff --git a/activerecord/test/fixtures/db_definitions/db2.drop.sql b/activerecord/test/fixtures/db_definitions/db2.drop.sql index 50cffe3b47..9837def303 100644 --- a/activerecord/test/fixtures/db_definitions/db2.drop.sql +++ b/activerecord/test/fixtures/db_definitions/db2.drop.sql @@ -29,3 +29,4 @@ DROP TABLE fk_test_has_fk; DROP TABLE keyboards; DROP TABLE legacy_things; DROP TABLE numeric_data; +DROP TABLE mixed_case_monkeys; diff --git a/activerecord/test/fixtures/db_definitions/db2.sql b/activerecord/test/fixtures/db_definitions/db2.sql index ee76fc4d05..750e74a0c3 100644 --- a/activerecord/test/fixtures/db_definitions/db2.sql +++ b/activerecord/test/fixtures/db_definitions/db2.sql @@ -224,3 +224,8 @@ CREATE TABLE numeric_data ( my_house_population DECIMAL(2), decimal_number_with_default DECIMAL(3,2) DEFAULT 2.78 ); + +CREATE TABLE mixed_case_monkeys ( + monkeyID INT NOT NULL PRIMARY KEY, + fleaCount INT +); diff --git a/activerecord/test/fixtures/db_definitions/firebird.drop.sql b/activerecord/test/fixtures/db_definitions/firebird.drop.sql index 2e43243af7..69aa093150 100644 --- a/activerecord/test/fixtures/db_definitions/firebird.drop.sql +++ b/activerecord/test/fixtures/db_definitions/firebird.drop.sql @@ -30,6 +30,7 @@ DROP TABLE keyboards; DROP TABLE defaults; DROP TABLE legacy_things; DROP TABLE numeric_data; +DROP TABLE mixed_case_monkeys; DROP DOMAIN D_BOOLEAN; @@ -59,3 +60,4 @@ DROP GENERATOR keyboards_seq; DROP GENERATOR defaults_seq; DROP GENERATOR legacy_things_seq; DROP GENERATOR numeric_data_seq; +DROP GENERATOR mixed_case_monkeys_seq;
\ No newline at end of file diff --git a/activerecord/test/fixtures/db_definitions/firebird.sql b/activerecord/test/fixtures/db_definitions/firebird.sql index 8ca0bf6222..779701c354 100644 --- a/activerecord/test/fixtures/db_definitions/firebird.sql +++ b/activerecord/test/fixtures/db_definitions/firebird.sql @@ -295,3 +295,10 @@ CREATE TABLE numeric_data ( ); CREATE GENERATOR numeric_data_seq; SET GENERATOR numeric_data_seq TO 10000; + +CREATE TABLE mixed_case_monkeys ( + "monkeyID" BIGINT NOT NULL, + "fleaCount" INTEGER +); +CREATE GENERATOR mixed_case_monkeys_seq; +SET GENERATOR mixed_case_monkeys_seq TO 10000; diff --git a/activerecord/test/fixtures/db_definitions/frontbase.drop.sql b/activerecord/test/fixtures/db_definitions/frontbase.drop.sql index 5fc64f769b..1c87fdf7ed 100644 --- a/activerecord/test/fixtures/db_definitions/frontbase.drop.sql +++ b/activerecord/test/fixtures/db_definitions/frontbase.drop.sql @@ -29,3 +29,4 @@ DROP TABLE fk_test_has_pk CASCADE; DROP TABLE keyboards CASCADE; DROP TABLE legacy_things CASCADE; DROP TABLE numeric_data CASCADE; +DROP TABLE mixed_case_monkeys CASCADE; diff --git a/activerecord/test/fixtures/db_definitions/frontbase.sql b/activerecord/test/fixtures/db_definitions/frontbase.sql index e102f65aa7..798b0204d2 100644 --- a/activerecord/test/fixtures/db_definitions/frontbase.sql +++ b/activerecord/test/fixtures/db_definitions/frontbase.sql @@ -260,3 +260,9 @@ CREATE TABLE "numeric_data" ( primary key ("id") ); SET UNIQUE FOR numeric_data(id); + +CREATE TABLE mixed_case_monkeys ( + "monkeyID" integer DEFAULT unique, + "fleaCount" integer +); +SET UNIQUE FOR mixed_case_monkeys("monkeyID"); diff --git a/activerecord/test/fixtures/db_definitions/mysql.drop.sql b/activerecord/test/fixtures/db_definitions/mysql.drop.sql index cb6a870a7c..f269b3a3b7 100644 --- a/activerecord/test/fixtures/db_definitions/mysql.drop.sql +++ b/activerecord/test/fixtures/db_definitions/mysql.drop.sql @@ -29,3 +29,4 @@ DROP TABLE fk_test_has_pk; DROP TABLE keyboards; DROP TABLE legacy_things; DROP TABLE numeric_data; +DROP TABLE mixed_case_monkeys; diff --git a/activerecord/test/fixtures/db_definitions/mysql.sql b/activerecord/test/fixtures/db_definitions/mysql.sql index 8a56ab2172..1450d20890 100755 --- a/activerecord/test/fixtures/db_definitions/mysql.sql +++ b/activerecord/test/fixtures/db_definitions/mysql.sql @@ -226,3 +226,9 @@ CREATE TABLE `numeric_data` ( `my_house_population` decimal(2), `decimal_number_with_default` decimal(3,2) DEFAULT 2.78 ) TYPE=InnoDB; + +CREATE TABLE mixed_case_monkeys ( + `monkeyID` int(11) NOT NULL auto_increment, + `fleaCount` int(11), + PRIMARY KEY (`monkeyID`) +) TYPE=InnoDB; diff --git a/activerecord/test/fixtures/db_definitions/openbase.sql b/activerecord/test/fixtures/db_definitions/openbase.sql index c3da2efee6..4f5d27e63d 100644 --- a/activerecord/test/fixtures/db_definitions/openbase.sql +++ b/activerecord/test/fixtures/db_definitions/openbase.sql @@ -292,3 +292,11 @@ CREATE TABLE numeric_data ( go CREATE PRIMARY KEY numeric_data (id) go + +CREATE TABLE mixed_case_monkeys ( + monkeyID INTEGER NOT NULL DEFAULT _rowid, + fleaCount INTEGER +); +go +CREATE PRIMARY KEY mixed_case_monkeys (monkeyID) +go diff --git a/activerecord/test/fixtures/db_definitions/oracle.drop.sql b/activerecord/test/fixtures/db_definitions/oracle.drop.sql index 6fa01cdf51..910b118e05 100644 --- a/activerecord/test/fixtures/db_definitions/oracle.drop.sql +++ b/activerecord/test/fixtures/db_definitions/oracle.drop.sql @@ -30,6 +30,7 @@ drop table fk_test_has_fk; drop table keyboards; drop table legacy_things; drop table numeric_data; +drop table mixed_case_monkeys; drop sequence accounts_seq; drop sequence funny_jokes_seq; @@ -61,3 +62,4 @@ drop sequence fk_test_has_fk_seq; drop sequence keyboards_seq; drop sequence legacy_things_seq; drop sequence numeric_data_seq; +drop sequence mixed_case_monkeys_seq; diff --git a/activerecord/test/fixtures/db_definitions/oracle.sql b/activerecord/test/fixtures/db_definitions/oracle.sql index 869c59fb75..f84a86a655 100644 --- a/activerecord/test/fixtures/db_definitions/oracle.sql +++ b/activerecord/test/fixtures/db_definitions/oracle.sql @@ -317,3 +317,9 @@ CREATE TABLE numeric_data ( decimal_number_with_default decimal(3,2) DEFAULT 2.78 ); create sequence numeric_data_seq minvalue 10000; + +CREATE TABLE mixed_case_monkeys ( + "monkeyID" INTEGER NOT NULL PRIMARY KEY, + "fleaCount" INTEGER +); +create sequence mixed_case_monkeys_seq minvalue 10000; diff --git a/activerecord/test/fixtures/db_definitions/postgresql.drop.sql b/activerecord/test/fixtures/db_definitions/postgresql.drop.sql index 4910b0ecee..3afe6d39a9 100644 --- a/activerecord/test/fixtures/db_definitions/postgresql.drop.sql +++ b/activerecord/test/fixtures/db_definitions/postgresql.drop.sql @@ -34,3 +34,4 @@ DROP TABLE keyboards; DROP TABLE legacy_things; DROP TABLE numeric_data; DROP TABLE column_data; +DROP TABLE mixed_case_monkeys; diff --git a/activerecord/test/fixtures/db_definitions/postgresql.sql b/activerecord/test/fixtures/db_definitions/postgresql.sql index 18f2ededeb..15a61ea8c4 100644 --- a/activerecord/test/fixtures/db_definitions/postgresql.sql +++ b/activerecord/test/fixtures/db_definitions/postgresql.sql @@ -240,3 +240,8 @@ CREATE TABLE numeric_data ( my_house_population decimal(2), decimal_number_with_default decimal(3,2) default 2.78 ); + +CREATE TABLE mixed_case_monkeys ( + "monkeyID" INTEGER PRIMARY KEY, + "fleaCount" INTEGER +); diff --git a/activerecord/test/fixtures/db_definitions/sqlite.drop.sql b/activerecord/test/fixtures/db_definitions/sqlite.drop.sql index cb6a870a7c..f269b3a3b7 100644 --- a/activerecord/test/fixtures/db_definitions/sqlite.drop.sql +++ b/activerecord/test/fixtures/db_definitions/sqlite.drop.sql @@ -29,3 +29,4 @@ DROP TABLE fk_test_has_pk; DROP TABLE keyboards; DROP TABLE legacy_things; DROP TABLE numeric_data; +DROP TABLE mixed_case_monkeys; diff --git a/activerecord/test/fixtures/db_definitions/sqlite.sql b/activerecord/test/fixtures/db_definitions/sqlite.sql index edf1e815da..973639f177 100644 --- a/activerecord/test/fixtures/db_definitions/sqlite.sql +++ b/activerecord/test/fixtures/db_definitions/sqlite.sql @@ -208,3 +208,8 @@ CREATE TABLE 'numeric_data' ( 'my_house_population' DECIMAL(2), 'decimal_number_with_default' DECIMAL(3,2) DEFAULT 2.78 ); + +CREATE TABLE mixed_case_monkeys ( + 'monkeyID' INTEGER NOT NULL PRIMARY KEY, + 'fleaCount' INTEGER +); diff --git a/activerecord/test/fixtures/db_definitions/sqlserver.drop.sql b/activerecord/test/fixtures/db_definitions/sqlserver.drop.sql index e8327f0826..c415d223f5 100644 --- a/activerecord/test/fixtures/db_definitions/sqlserver.drop.sql +++ b/activerecord/test/fixtures/db_definitions/sqlserver.drop.sql @@ -31,3 +31,4 @@ DROP TABLE keyboards; DROP TABLE legacy_things; DROP TABLE numeric_data; DROP TABLE [order]; +DROP TABLE mixed_case_monkeys; diff --git a/activerecord/test/fixtures/db_definitions/sqlserver.sql b/activerecord/test/fixtures/db_definitions/sqlserver.sql index 50e1938d0a..3cec4e4a16 100644 --- a/activerecord/test/fixtures/db_definitions/sqlserver.sql +++ b/activerecord/test/fixtures/db_definitions/sqlserver.sql @@ -236,3 +236,8 @@ CREATE TABLE [order] ( texture varchar(255), flavor varchar(255) ); + +CREATE TABLE mixed_case_monkeys ( + [monkeyID] int NOT NULL IDENTITY(1, 1), + [fleaCount] int default NULL +); diff --git a/activerecord/test/fixtures/db_definitions/sybase.drop.sql b/activerecord/test/fixtures/db_definitions/sybase.drop.sql index ebf2fc9736..9d85221610 100644 --- a/activerecord/test/fixtures/db_definitions/sybase.drop.sql +++ b/activerecord/test/fixtures/db_definitions/sybase.drop.sql @@ -29,5 +29,6 @@ DROP TABLE fk_test_has_pk DROP TABLE keyboards DROP TABLE legacy_things DROP TABLE numeric_data +DROP TABLE mixed_case_monkeys DROP TABLE schema_info go diff --git a/activerecord/test/fixtures/db_definitions/sybase.sql b/activerecord/test/fixtures/db_definitions/sybase.sql index 8544a4150e..6c42c66031 100644 --- a/activerecord/test/fixtures/db_definitions/sybase.sql +++ b/activerecord/test/fixtures/db_definitions/sybase.sql @@ -210,4 +210,9 @@ CREATE TABLE numeric_data ( decimal_number_with_default numeric(3,2) DEFAULT 2.78 ) +CREATE TABLE mixed_case_monkeys ( + [monkeyID] numeric(9,0) IDENTITY PRIMARY KEY, + [fleaCount] numeric(9,0) +); + go diff --git a/activerecord/test/fixtures/mixed_case_monkey.rb b/activerecord/test/fixtures/mixed_case_monkey.rb new file mode 100644 index 0000000000..853f2682b3 --- /dev/null +++ b/activerecord/test/fixtures/mixed_case_monkey.rb @@ -0,0 +1,3 @@ +class MixedCaseMonkey < ActiveRecord::Base + set_primary_key 'monkeyID' +end diff --git a/activerecord/test/fixtures/mixed_case_monkeys.yml b/activerecord/test/fixtures/mixed_case_monkeys.yml new file mode 100644 index 0000000000..eecd448f4b --- /dev/null +++ b/activerecord/test/fixtures/mixed_case_monkeys.yml @@ -0,0 +1,6 @@ +first: + monkeyID: 1 + fleaCount: 42 +second: + monkeyID: 2 + fleaCount: 43 diff --git a/activerecord/test/pk_test.rb b/activerecord/test/pk_test.rb index 604b263571..4daef43062 100644 --- a/activerecord/test/pk_test.rb +++ b/activerecord/test/pk_test.rb @@ -4,9 +4,10 @@ require 'fixtures/reply' require 'fixtures/subscriber' require 'fixtures/movie' require 'fixtures/keyboard' +require 'fixtures/mixed_case_monkey' class PrimaryKeysTest < Test::Unit::TestCase - fixtures :topics, :subscribers, :movies + fixtures :topics, :subscribers, :movies, :mixed_case_monkeys def test_integer_key topic = Topic.find(1) @@ -78,4 +79,23 @@ class PrimaryKeysTest < Test::Unit::TestCase Topic.reset_primary_key assert_equal "id", Topic.primary_key end + + def test_delete_should_quote_pkey + assert_nothing_raised { MixedCaseMonkey.delete(1) } + end + def test_update_counters_should_quote_pkey_and_quote_counter_columns + assert_nothing_raised { MixedCaseMonkey.update_counters(1, :fleaCount => 99) } + end + def test_find_with_one_id_should_quote_pkey + assert_nothing_raised { MixedCaseMonkey.find(1) } + end + def test_find_with_multiple_ids_should_quote_pkey + assert_nothing_raised { MixedCaseMonkey.find([1,2]) } + end + def test_instance_update_should_quote_pkey + assert_nothing_raised { MixedCaseMonkey.find(1).save } + end + def test_instance_destry_should_quote_pkey + assert_nothing_raised { MixedCaseMonkey.find(1).destroy } + end end |