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,236 +1,200 @@
1
- create sequence topics_seq start with 1000;
2
-
3
- create table topics (
4
- id number(11) primary key,
5
- name varchar(50) default null,
6
- feed_size number(11) default null
7
- );
8
-
9
- create table topic_sources (
10
- topic_id number(11),
11
- platform varchar(50),
12
- keywords varchar(50) default null
13
- );
14
-
15
- create sequence reference_types_seq start with 1000;
16
-
17
- create table reference_types (
18
- reference_type_id number(11) primary key,
19
- type_label varchar(50) default null,
20
- abbreviation varchar(50) default null,
21
- description varchar(50) default null
22
- );
23
-
24
- create table reference_codes (
25
- reference_type_id number(11),
26
- reference_code number(11),
27
- code_label varchar(50) default null,
28
- abbreviation varchar(50) default null,
29
- description varchar(50) default null
30
- );
31
-
32
- create sequence products_seq start with 1000;
33
-
34
- create table products (
35
- id number(11) primary key,
36
- name varchar(50) default null
37
- );
38
-
39
- create table tariffs (
40
- tariff_id number(11),
41
- start_date date,
42
- amount number(11) default null,
43
- created_at timestamp,
44
- updated_at timestamp,
45
- constraint tariffs_pk primary key (tariff_id, start_date)
46
- );
47
-
48
- create table product_tariffs (
49
- product_id number(11),
50
- tariff_id number(11),
51
- tariff_start_date date,
52
- constraint product_tariffs_pk primary key (product_id, tariff_id, tariff_start_date)
53
- );
54
-
55
- create table suburbs (
56
- city_id number(11),
57
- suburb_id number(11),
58
- name varchar(50) not null,
59
- constraint suburbs_pk primary key (city_id, suburb_id)
60
- );
61
-
62
- create sequence streets_seq start with 1000;
63
-
64
- create table streets (
65
- id number(11) primary key,
66
- city_id number(11) not null,
67
- suburb_id number(11) not null,
68
- name varchar(50) not null
69
- );
70
-
71
- create sequence users_seq start with 1000;
72
-
73
- create table users (
74
- id number(11) primary key,
75
- name varchar(50) not null
76
- );
77
-
78
- create sequence articles_seq start with 1000;
79
-
80
- create table articles (
81
- id number(11) primary key,
82
- name varchar(50) not null
83
- );
84
-
85
- create sequence readings_seq start with 1000;
86
-
87
- create table readings (
88
- id number(11) primary key,
89
- user_id number(11) not null,
90
- article_id number(11) not null,
91
- rating number(11) not null
92
- );
93
-
94
- create sequence groups_seq start with 1000;
95
-
96
- create table groups (
97
- id number(11) primary key,
98
- name varchar(50) not null
99
- );
100
-
101
- create table memberships (
102
- user_id number(11) not null,
103
- group_id number(11) not null,
104
- constraint memberships_pk primary key (user_id, group_id)
105
- );
106
-
107
- create sequence membership_statuses_seq start with 1000;
108
-
109
- create table membership_statuses (
110
- id number(11) primary key,
111
- user_id number(11) not null,
112
- group_id number(11) not null,
113
- status varchar(50) not null
114
- );
115
-
116
- create table departments (
117
- department_id number(11) not null,
118
- location_id number(11) not null,
119
- constraint departments_pk primary key (department_id, location_id)
120
- );
121
-
122
- create sequence employees_seq start with 1000;
123
-
124
- create table employees (
125
- id number(11) not null primary key,
126
- department_id number(11) default null,
127
- location_id number(11) default null,
128
- name varchar(50) not null
129
- );
130
-
131
- create sequence comments_seq start with 1000;
132
-
133
- create table comments (
134
- id number(11) not null primary key,
135
- person_id number(11) default null,
136
- shown number(11) default null,
137
- person_type varchar(100) default null,
138
- hack_id number(11) default null
139
- );
140
-
141
- create sequence hacks_seq start with 1000;
142
-
143
- create table hacks (
144
- id number(11) not null primary key,
145
- name varchar(50) not null
146
- );
147
-
148
- create table restaurants (
149
- franchise_id number(11) not null,
150
- store_id number(11) not null,
151
- name varchar(100),
152
- lock_version number(11) default 0,
153
- constraint restaurants_pk primary key (franchise_id, store_id)
154
- );
155
-
156
- create table restaurants_suburbs (
157
- franchise_id number(11) not null,
158
- store_id number(11) not null,
159
- city_id number(11) not null,
160
- suburb_id number(11) not null
161
- );
162
-
163
- create sequence dorms_seq start with 1000;
164
-
165
- create table dorms (
166
- id number(11) not null,
167
- constraint dorms_pk primary key (id)
168
- );
169
-
170
- create table rooms (
171
- dorm_id number(11) not null,
172
- room_id number(11) not null,
173
- constraint rooms_pk primary key (dorm_id, room_id)
174
- );
175
-
176
- create sequence room_attributes_seq start with 1000;
177
-
178
- create table room_attributes (
179
- id number(11) not null,
180
- name varchar(50),
181
- constraint room_attributes_pk primary key (id)
182
- );
183
-
184
- create table room_attribute_assignments (
185
- dorm_id number(11) not null,
186
- room_id number(11) not null,
187
- room_attribute_id number(11) not null
188
- );
189
-
190
- create sequence students_seq start with 1000;
191
-
192
- create table students (
193
- id number(11) not null,
194
- constraint students_pk primary key (id)
195
- );
196
-
197
- create table room_assignments (
198
- student_id number(11) not null,
199
- dorm_id number(11) not null,
200
- room_id number(11) not null
201
- );
202
-
203
- create table seats (
204
- flight_number int not null,
205
- seat int not null,
206
- customer int,
207
- primary key (flight_number, seat)
208
- );
209
-
210
- create table capitols (
211
- country varchar(100) not null,
212
- city varchar(100) not null,
213
- primary key (country, city)
214
- );
215
-
216
- create table products_restaurants (
217
- product_id number(11) not null,
218
- franchise_id number(11) not null,
219
- store_id number(11) not null
220
- );
221
-
222
- create table employees_groups (
223
- employee_id int not null,
224
- group_id int not null
225
- );
226
-
227
- create sequence pk_called_ids_seq start with 1000;
228
-
229
- create table pk_called_ids (
230
- id int not null,
231
- reference_code int not null,
232
- code_label varchar(50) default null,
233
- abbreviation varchar(50) default null,
234
- description varchar(50) default null,
235
- constraint pk_called_ids_pk primary key (id, reference_code)
236
- );
1
+ create sequence reference_types_seq start with 1000;
2
+
3
+ create table reference_types (
4
+ reference_type_id number(11) primary key,
5
+ type_label varchar(50) default null,
6
+ abbreviation varchar(50) default null,
7
+ description varchar(50) default null
8
+ );
9
+
10
+ create table reference_codes (
11
+ reference_type_id number(11),
12
+ reference_code number(11),
13
+ code_label varchar(50) default null,
14
+ abbreviation varchar(50) default null,
15
+ description varchar(50) default null
16
+ );
17
+
18
+ create sequence products_seq start with 1000;
19
+
20
+ create table products (
21
+ id number(11) primary key,
22
+ name varchar(50) default null
23
+ );
24
+
25
+ create table tariffs (
26
+ tariff_id number(11),
27
+ start_date date,
28
+ amount number(11) default null,
29
+ created_at timestamp,
30
+ updated_at timestamp,
31
+ constraint tariffs_pk primary key (tariff_id, start_date)
32
+ );
33
+
34
+ create table product_tariffs (
35
+ product_id number(11),
36
+ tariff_id number(11),
37
+ tariff_start_date date,
38
+ constraint product_tariffs_pk primary key (product_id, tariff_id, tariff_start_date)
39
+ );
40
+
41
+ create sequence suburbs_city_id_seq start with 1000;
42
+
43
+ create table suburbs (
44
+ city_id number(11) default suburbs_city_id_seq.nextval not null,
45
+ suburb_id number(11) not null,
46
+ name varchar(50) not null,
47
+ constraint suburbs_pk primary key (city_id, suburb_id)
48
+ );
49
+
50
+ create sequence streets_seq start with 1000;
51
+
52
+ create table streets (
53
+ id number(11) primary key,
54
+ city_id number(11) not null,
55
+ suburb_id number(11) not null,
56
+ name varchar(50) not null
57
+ );
58
+
59
+ create sequence users_seq start with 1000;
60
+
61
+ create table users (
62
+ id number(11) primary key,
63
+ name varchar(50) not null
64
+ );
65
+
66
+ create sequence articles_seq start with 1000;
67
+
68
+ create table articles (
69
+ id number(11) primary key,
70
+ name varchar(50) not null
71
+ );
72
+
73
+ create sequence readings_seq start with 1000;
74
+
75
+ create table readings (
76
+ id number(11) primary key,
77
+ user_id number(11) not null,
78
+ article_id number(11) not null,
79
+ rating number(11) not null
80
+ );
81
+
82
+ create sequence groups_seq start with 1000;
83
+
84
+ create table groups (
85
+ id number(11) primary key,
86
+ name varchar(50) not null
87
+ );
88
+
89
+ create table memberships (
90
+ user_id number(11) not null,
91
+ group_id number(11) not null,
92
+ constraint memberships_pk primary key (user_id, group_id)
93
+ );
94
+
95
+ create sequence membership_statuses_seq start with 1000;
96
+
97
+ create table membership_statuses (
98
+ id number(11) primary key,
99
+ user_id number(11) not null,
100
+ group_id number(11) not null,
101
+ status varchar(50) not null
102
+ );
103
+
104
+ create sequence departments_seq start with 1000;
105
+
106
+ create table departments (
107
+ id number(11) not null,
108
+ location_id number(11) not null,
109
+ constraint departments_pk primary key (id, location_id)
110
+ );
111
+
112
+ create sequence employees_seq start with 1000;
113
+
114
+ create table employees (
115
+ id number(11) not null primary key,
116
+ department_id number(11) default null,
117
+ location_id number(11) default null,
118
+ name varchar(50) not null
119
+ );
120
+
121
+ create sequence comments_seq start with 1000;
122
+
123
+ create table comments (
124
+ id number(11) not null primary key,
125
+ article_id number(11) not null,
126
+ person_id number(11) not null,
127
+ person_type varchar(100) not null
128
+ );
129
+
130
+ create table restaurants (
131
+ franchise_id number(11) not null,
132
+ store_id number(11) not null,
133
+ name varchar(100),
134
+ lock_version number(11) default 0,
135
+ constraint restaurants_pk primary key (franchise_id, store_id)
136
+ );
137
+
138
+ create table restaurants_suburbs (
139
+ franchise_id number(11) not null,
140
+ store_id number(11) not null,
141
+ city_id number(11) not null,
142
+ suburb_id number(11) not null
143
+ );
144
+
145
+ create sequence dorms_seq start with 1000;
146
+
147
+ create table dorms (
148
+ id number(11) not null,
149
+ constraint dorms_pk primary key (id)
150
+ );
151
+
152
+ create table rooms (
153
+ dorm_id number(11) not null,
154
+ room_id number(11) not null,
155
+ constraint rooms_pk primary key (dorm_id, room_id)
156
+ );
157
+
158
+ create sequence room_attributes_seq start with 1000;
159
+
160
+ create table room_attributes (
161
+ id number(11) not null,
162
+ name varchar(50),
163
+ constraint room_attributes_pk primary key (id)
164
+ );
165
+
166
+ create table room_attribute_assignments (
167
+ dorm_id number(11) not null,
168
+ room_id number(11) not null,
169
+ room_attribute_id number(11) not null
170
+ );
171
+
172
+ create sequence students_seq start with 1000;
173
+
174
+ create table students (
175
+ id number(11) not null,
176
+ constraint students_pk primary key (id)
177
+ );
178
+
179
+ create table room_assignments (
180
+ student_id number(11) not null,
181
+ dorm_id number(11) not null,
182
+ room_id number(11) not null
183
+ );
184
+
185
+ create table capitols (
186
+ country varchar(100) not null,
187
+ city varchar(100) not null,
188
+ primary key (country, city)
189
+ );
190
+
191
+ create table products_restaurants (
192
+ product_id number(11) not null,
193
+ franchise_id number(11) not null,
194
+ store_id number(11) not null
195
+ );
196
+
197
+ create table employees_groups (
198
+ employee_id int not null,
199
+ group_id int not null
200
+ );