composite_primary_keys 12.0.2 → 12.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/History.rdoc +880 -841
  3. data/README.rdoc +180 -179
  4. data/lib/composite_primary_keys/active_model/attribute_assignment.rb +19 -0
  5. data/lib/composite_primary_keys/arel/sqlserver.rb +1 -3
  6. data/lib/composite_primary_keys/associations/association_scope.rb +68 -68
  7. data/lib/composite_primary_keys/associations/join_dependency.rb +103 -103
  8. data/lib/composite_primary_keys/associations/through_association.rb +2 -1
  9. data/lib/composite_primary_keys/attribute_methods/primary_key.rb +13 -0
  10. data/lib/composite_primary_keys/attribute_methods/read.rb +30 -30
  11. data/lib/composite_primary_keys/attribute_methods/write.rb +35 -35
  12. data/lib/composite_primary_keys/attribute_methods.rb +9 -9
  13. data/lib/composite_primary_keys/base.rb +141 -130
  14. data/lib/composite_primary_keys/composite_arrays.rb +0 -8
  15. data/lib/composite_primary_keys/connection_adapters/abstract/database_statements.rb +37 -17
  16. data/lib/composite_primary_keys/connection_adapters/sqlserver/database_statements.rb +44 -23
  17. data/lib/composite_primary_keys/core.rb +48 -48
  18. data/lib/composite_primary_keys/persistence.rb +82 -81
  19. data/lib/composite_primary_keys/reflection.rb +29 -29
  20. data/lib/composite_primary_keys/relation/batches.rb +1 -1
  21. data/lib/composite_primary_keys/relation/calculations.rb +81 -81
  22. data/lib/composite_primary_keys/relation/finder_methods.rb +235 -235
  23. data/lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb +20 -20
  24. data/lib/composite_primary_keys/relation/query_methods.rb +42 -42
  25. data/lib/composite_primary_keys/relation/where_clause.rb +23 -23
  26. data/lib/composite_primary_keys/relation.rb +193 -118
  27. data/lib/composite_primary_keys/version.rb +8 -8
  28. data/lib/composite_primary_keys.rb +117 -118
  29. data/test/abstract_unit.rb +114 -113
  30. data/test/connections/databases.ci.yml +22 -19
  31. data/test/fixtures/article.rb +4 -0
  32. data/test/fixtures/articles.yml +4 -3
  33. data/test/fixtures/comment.rb +1 -3
  34. data/test/fixtures/comments.yml +10 -9
  35. data/test/fixtures/db_definitions/db2-create-tables.sql +112 -126
  36. data/test/fixtures/db_definitions/db2-drop-tables.sql +17 -19
  37. data/test/fixtures/db_definitions/mysql.sql +180 -217
  38. data/test/fixtures/db_definitions/oracle.drop.sql +42 -48
  39. data/test/fixtures/db_definitions/oracle.sql +200 -236
  40. data/test/fixtures/db_definitions/postgresql.sql +183 -220
  41. data/test/fixtures/db_definitions/sqlite.sql +170 -206
  42. data/test/fixtures/db_definitions/sqlserver.sql +176 -212
  43. data/test/fixtures/department.rb +16 -11
  44. data/test/fixtures/departments.yml +15 -15
  45. data/test/fixtures/employees.yml +27 -27
  46. data/test/fixtures/readings.yml +2 -2
  47. data/test/fixtures/restaurants_suburbs.yml +11 -11
  48. data/test/fixtures/streets.yml +16 -16
  49. data/test/fixtures/suburbs.yml +14 -14
  50. data/test/fixtures/user.rb +11 -10
  51. data/test/test_associations.rb +358 -351
  52. data/test/test_attributes.rb +60 -60
  53. data/test/test_calculations.rb +42 -42
  54. data/test/test_create.rb +218 -183
  55. data/test/test_delete.rb +182 -179
  56. data/test/test_exists.rb +39 -39
  57. data/test/test_find.rb +164 -145
  58. data/test/test_habtm.rb +2 -2
  59. data/test/test_ids.rb +112 -116
  60. data/test/test_nested_attributes.rb +67 -124
  61. data/test/test_polymorphic.rb +29 -13
  62. data/test/test_preload.rb +4 -3
  63. data/test/test_serialize.rb +2 -2
  64. data/test/test_update.rb +96 -78
  65. metadata +4 -19
  66. data/test/fixtures/hack.rb +0 -5
  67. data/test/fixtures/hacks.yml +0 -3
  68. data/test/fixtures/pk_called_id.rb +0 -5
  69. data/test/fixtures/pk_called_ids.yml +0 -11
  70. data/test/fixtures/reference_code_using_composite_key_alias.rb +0 -8
  71. data/test/fixtures/reference_code_using_simple_key_alias.rb +0 -8
  72. data/test/fixtures/seat.rb +0 -5
  73. data/test/fixtures/seats.yml +0 -9
  74. data/test/fixtures/topic.rb +0 -6
  75. data/test/fixtures/topic_source.rb +0 -7
  76. data/test/test_aliases.rb +0 -18
  77. data/test/test_enum.rb +0 -21
  78. data/test/test_suite.rb +0 -35
@@ -1,206 +1,170 @@
1
- create table topics (
2
- id int not null,
3
- name varchar(50) default null,
4
- feed_size int default null,
5
- primary key (id)
6
- );
7
-
8
- create table topic_sources (
9
- topic_id int not null,
10
- platform varchar(50) not null,
11
- keywords varchar(50) default null,
12
- primary key (topic_id,platform)
13
- );
14
-
15
- create table reference_types (
16
- reference_type_id integer primary key,
17
- type_label varchar(50) default null,
18
- abbreviation varchar(50) default null,
19
- description varchar(50) default null
20
- );
21
-
22
- create table reference_codes (
23
- reference_type_id int,
24
- reference_code int not null,
25
- code_label varchar(50) default null,
26
- abbreviation varchar(50) default null,
27
- description varchar(50) default null,
28
- primary key (reference_type_id, reference_code)
29
- );
30
-
31
- create table products (
32
- id int not null primary key,
33
- name varchar(50) default null,
34
- created_at TIMESTAMP,
35
- updated_at TIMESTAMP
36
- );
37
-
38
- create table tariffs (
39
- tariff_id int not null,
40
- start_date date not null,
41
- amount integer(11) default null,
42
- created_at TIMESTAMP,
43
- updated_at TIMESTAMP,
44
- primary key (tariff_id, start_date)
45
- );
46
-
47
- create table product_tariffs (
48
- product_id int not null,
49
- tariff_id int not null,
50
- tariff_start_date date not null,
51
- primary key (product_id, tariff_id, tariff_start_date)
52
- );
53
-
54
- create table suburbs (
55
- city_id int identity(1,1) not null,
56
- suburb_id int identity(1,1) not null,
57
- name varchar(50) not null,
58
- primary key (city_id, suburb_id)
59
- );
60
-
61
- create table streets (
62
- id integer not null primary key autoincrement,
63
- city_id int not null,
64
- suburb_id int not null,
65
- name varchar(50) not null
66
- );
67
-
68
- create table users (
69
- id integer not null primary key autoincrement,
70
- name varchar(50) not null
71
- );
72
-
73
- create table articles (
74
- id integer not null primary key autoincrement,
75
- name varchar(50) not null
76
- );
77
-
78
- create table readings (
79
- id integer not null primary key autoincrement,
80
- user_id int not null,
81
- article_id int not null,
82
- rating int not null
83
- );
84
-
85
- create table groups (
86
- id integer not null primary key autoincrement,
87
- name varchar(50) not null
88
- );
89
-
90
- create table memberships (
91
- user_id int not null,
92
- group_id int not null,
93
- primary key (user_id, group_id)
94
- );
95
-
96
- create table membership_statuses (
97
- id integer not null primary key autoincrement,
98
- user_id int not null,
99
- group_id int not null,
100
- status varchar(50) not null
101
- );
102
-
103
- create table departments (
104
- department_id integer not null,
105
- location_id integer not null,
106
- primary key (department_id, location_id)
107
- );
108
-
109
- create table employees (
110
- id integer not null primary key autoincrement,
111
- department_id integer null,
112
- location_id integer null,
113
- name varchar(50) not null
114
- );
115
-
116
- create table comments (
117
- id integer not null primary key autoincrement,
118
- person_id int null,
119
- shown int null,
120
- person_type varchar(100) null,
121
- hack_id int null
122
- );
123
-
124
- create table hacks (
125
- id integer not null primary key autoincrement,
126
- name varchar(50) not null
127
- );
128
-
129
- create table restaurants (
130
- franchise_id integer not null,
131
- store_id integer not null,
132
- name varchar(100),
133
- lock_version integer default 0,
134
- primary key (franchise_id, store_id)
135
- );
136
-
137
- create table restaurants_suburbs (
138
- franchise_id integer not null,
139
- store_id integer not null,
140
- city_id integer not null,
141
- suburb_id integer not null
142
- );
143
-
144
- create table dorms (
145
- id integer not null primary key autoincrement
146
- );
147
-
148
- create table rooms (
149
- dorm_id integer not null,
150
- room_id integer not null,
151
- primary key (dorm_id, room_id)
152
- );
153
-
154
- create table room_attributes (
155
- id integer not null primary key autoincrement,
156
- name varchar(50)
157
- );
158
-
159
- create table room_attribute_assignments (
160
- dorm_id integer not null,
161
- room_id integer not null,
162
- room_attribute_id integer not null
163
- );
164
-
165
- create table students (
166
- id integer not null primary key autoincrement
167
- );
168
-
169
- create table room_assignments (
170
- student_id integer not null,
171
- dorm_id integer not null,
172
- room_id integer not null
173
- );
174
-
175
- create table seats (
176
- flight_number integer not_null,
177
- seat integer not_null,
178
- customer integer,
179
- primary key (flight_number, seat)
180
- );
181
-
182
- create table capitols (
183
- country text not null,
184
- city text not null,
185
- primary key (country, city)
186
- );
187
-
188
- create table products_restaurants (
189
- product_id integer not null,
190
- franchise_id integer not null,
191
- store_id integer not null
192
- );
193
-
194
- create table employees_groups (
195
- employee_id integer not null,
196
- group_id integer not null
197
- );
198
-
199
- create table pk_called_ids (
200
- id integer not null,
201
- reference_code int not null,
202
- code_label varchar(50) default null,
203
- abbreviation varchar(50) default null,
204
- description varchar(50) default null,
205
- primary key (id, reference_code)
206
- );
1
+ create table reference_types (
2
+ reference_type_id integer primary key,
3
+ type_label varchar(50) default null,
4
+ abbreviation varchar(50) default null,
5
+ description varchar(50) default null
6
+ );
7
+
8
+ create table reference_codes (
9
+ reference_type_id int,
10
+ reference_code int not null,
11
+ code_label varchar(50) default null,
12
+ abbreviation varchar(50) default null,
13
+ description varchar(50) default null,
14
+ primary key (reference_type_id, reference_code)
15
+ );
16
+
17
+ create table products (
18
+ id int not null primary key,
19
+ name varchar(50) default null,
20
+ created_at TIMESTAMP,
21
+ updated_at TIMESTAMP
22
+ );
23
+
24
+ create table tariffs (
25
+ tariff_id int not null,
26
+ start_date date not null,
27
+ amount integer(11) default null,
28
+ created_at TIMESTAMP,
29
+ updated_at TIMESTAMP,
30
+ primary key (tariff_id, start_date)
31
+ );
32
+
33
+ create table product_tariffs (
34
+ product_id int not null,
35
+ tariff_id int not null,
36
+ tariff_start_date date not null,
37
+ primary key (product_id, tariff_id, tariff_start_date)
38
+ );
39
+
40
+ create table suburbs (
41
+ city_id int identity(1,1) not null,
42
+ suburb_id int identity(1,1) not null,
43
+ name varchar(50) not null,
44
+ primary key (city_id, suburb_id)
45
+ );
46
+
47
+ create table streets (
48
+ id integer not null primary key autoincrement,
49
+ city_id int not null,
50
+ suburb_id int not null,
51
+ name varchar(50) not null
52
+ );
53
+
54
+ create table users (
55
+ id integer not null primary key autoincrement,
56
+ name varchar(50) not null
57
+ );
58
+
59
+ create table articles (
60
+ id integer not null primary key autoincrement,
61
+ name varchar(50) not null
62
+ );
63
+
64
+ create table readings (
65
+ id integer not null primary key autoincrement,
66
+ user_id int not null,
67
+ article_id int not null,
68
+ rating int not null
69
+ );
70
+
71
+ create table groups (
72
+ id integer not null primary key autoincrement,
73
+ name varchar(50) not null
74
+ );
75
+
76
+ create table memberships (
77
+ user_id int not null,
78
+ group_id int not null,
79
+ primary key (user_id, group_id)
80
+ );
81
+
82
+ create table membership_statuses (
83
+ id integer not null primary key autoincrement,
84
+ user_id int not null,
85
+ group_id int not null,
86
+ status varchar(50) not null
87
+ );
88
+
89
+ create table departments (
90
+ id integer not null,
91
+ location_id integer not null,
92
+ primary key (id, location_id)
93
+ );
94
+
95
+ create table employees (
96
+ id integer not null primary key autoincrement,
97
+ department_id integer null,
98
+ location_id integer null,
99
+ name varchar(50) not null
100
+ );
101
+
102
+ create table comments (
103
+ id integer not null primary key autoincrement,
104
+ article_id int not null,
105
+ person_id int not null,
106
+ person_type varchar(100) not null
107
+ );
108
+
109
+ create table restaurants (
110
+ franchise_id integer not null,
111
+ store_id integer not null,
112
+ name varchar(100),
113
+ lock_version integer default 0,
114
+ primary key (franchise_id, store_id)
115
+ );
116
+
117
+ create table restaurants_suburbs (
118
+ franchise_id integer not null,
119
+ store_id integer not null,
120
+ city_id integer not null,
121
+ suburb_id integer not null
122
+ );
123
+
124
+ create table dorms (
125
+ id integer not null primary key autoincrement
126
+ );
127
+
128
+ create table rooms (
129
+ dorm_id integer not null,
130
+ room_id integer not null,
131
+ primary key (dorm_id, room_id)
132
+ );
133
+
134
+ create table room_attributes (
135
+ id integer not null primary key autoincrement,
136
+ name varchar(50)
137
+ );
138
+
139
+ create table room_attribute_assignments (
140
+ dorm_id integer not null,
141
+ room_id integer not null,
142
+ room_attribute_id integer not null
143
+ );
144
+
145
+ create table students (
146
+ id integer not null primary key autoincrement
147
+ );
148
+
149
+ create table room_assignments (
150
+ student_id integer not null,
151
+ dorm_id integer not null,
152
+ room_id integer not null
153
+ );
154
+
155
+ create table capitols (
156
+ country text not null,
157
+ city text not null,
158
+ primary key (country, city)
159
+ );
160
+
161
+ create table products_restaurants (
162
+ product_id integer not null,
163
+ franchise_id integer not null,
164
+ store_id integer not null
165
+ );
166
+
167
+ create table employees_groups (
168
+ employee_id integer not null,
169
+ group_id integer not null
170
+ );