activerecord-spanner-adapter 2.6.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/acceptance-tests-on-emulator.yaml +9 -13
- data/.github/workflows/acceptance-tests-on-production.yaml +4 -3
- data/.github/workflows/ci.yaml +8 -12
- data/.github/workflows/nightly-acceptance-tests-on-emulator.yaml +9 -13
- data/.github/workflows/nightly-acceptance-tests-on-production.yaml +4 -3
- data/.github/workflows/nightly-unit-tests.yaml +8 -12
- data/.github/workflows/rubocop.yaml +3 -3
- data/.github/workflows/samples.yaml +8 -12
- data/.gitignore +0 -1
- data/.release-please-manifest.json +1 -1
- data/.rubocop.yml +2 -0
- data/Appraisals +15 -0
- data/CHANGELOG.md +13 -0
- data/Gemfile +12 -22
- data/Gemfile.lock +479 -0
- data/acceptance/cases/migration/change_table_test.rb +4 -14
- data/acceptance/cases/models/generated_column_test.rb +8 -26
- data/acceptance/test_helper.rb +10 -22
- data/activerecord-spanner-adapter.gemspec +2 -1
- data/benchmarks/db/migrate/01_create_tables.rb +1 -1
- data/examples/rails/README.md +1 -1
- data/examples/snippets/Rakefile +0 -7
- data/examples/snippets/array-data-type/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/batch-dml/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/bulk-insert/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/commit-timestamp/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/create-records/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/date-data-type/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/generated-column/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/hints/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/interleaved-tables/README.md +2 -5
- data/examples/snippets/isolation-level/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/migrations/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/mutations/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/optimistic-locking/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/partitioned-dml/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/query-logs/application.rb +3 -3
- data/examples/snippets/query-logs/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/quickstart/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/read-only-transactions/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/read-write-transactions/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/stale-reads/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/tags/db/migrate/01_create_tables.rb +1 -1
- data/examples/snippets/timestamp-data-type/db/migrate/01_create_tables.rb +1 -1
- data/gemfiles/7.1.gemfile +18 -0
- data/gemfiles/7.1.gemfile.lock +389 -0
- data/gemfiles/7.2.gemfile +18 -0
- data/gemfiles/7.2.gemfile.lock +479 -0
- data/gemfiles/8.0.gemfile +18 -0
- data/gemfiles/8.0.gemfile.lock +480 -0
- data/gemfiles/8.1.gemfile +18 -0
- data/gemfiles/8.1.gemfile.lock +478 -0
- data/lib/active_record/connection_adapters/spanner/database_statements.rb +62 -95
- data/lib/active_record/connection_adapters/spanner/quoting.rb +0 -22
- data/lib/active_record/connection_adapters/spanner/schema_creation.rb +3 -15
- data/lib/active_record/connection_adapters/spanner/schema_statements.rb +0 -4
- data/lib/active_record/connection_adapters/spanner_adapter.rb +12 -14
- data/lib/active_record/type/spanner/spanner_active_record_converter.rb +33 -2
- data/lib/activerecord_spanner_adapter/base.rb +5 -27
- data/lib/activerecord_spanner_adapter/connection.rb +0 -20
- data/lib/activerecord_spanner_adapter/information_schema.rb +1 -4
- data/lib/activerecord_spanner_adapter/table.rb +0 -22
- data/lib/activerecord_spanner_adapter/version.rb +1 -1
- data/lib/arel/visitors/spanner.rb +12 -15
- data/lib/spanner_client_ext.rb +6 -2
- metadata +27 -17
- data/acceptance/cases/interleaved_associations/has_many_associations_using_interleaved_test.rb +0 -221
- data/acceptance/cases/models/interleave_test.rb +0 -113
- data/acceptance/cases/transactions/optimistic_locking_test.rb +0 -152
- data/acceptance/models/album.rb +0 -15
- data/acceptance/models/track.rb +0 -23
- data/examples/snippets/interleaved-tables-before-7.1/README.md +0 -167
- data/examples/snippets/interleaved-tables-before-7.1/Rakefile +0 -13
- data/examples/snippets/interleaved-tables-before-7.1/application.rb +0 -122
- data/examples/snippets/interleaved-tables-before-7.1/config/database.yml +0 -9
- data/examples/snippets/interleaved-tables-before-7.1/db/migrate/01_create_tables.rb +0 -44
- data/examples/snippets/interleaved-tables-before-7.1/db/seeds.rb +0 -40
- data/examples/snippets/interleaved-tables-before-7.1/models/album.rb +0 -20
- data/examples/snippets/interleaved-tables-before-7.1/models/singer.rb +0 -18
- data/examples/snippets/interleaved-tables-before-7.1/models/track.rb +0 -28
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,479 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
activerecord-spanner-adapter (2.7.0)
|
|
5
|
+
activerecord (>= 7.1, < 9)
|
|
6
|
+
google-cloud-spanner (~> 2.25)
|
|
7
|
+
google-cloud-spanner-v1 (~> 1.7)
|
|
8
|
+
|
|
9
|
+
GEM
|
|
10
|
+
remote: https://rubygems.org/
|
|
11
|
+
specs:
|
|
12
|
+
activemodel (7.1.6)
|
|
13
|
+
activesupport (= 7.1.6)
|
|
14
|
+
activerecord (7.1.6)
|
|
15
|
+
activemodel (= 7.1.6)
|
|
16
|
+
activesupport (= 7.1.6)
|
|
17
|
+
timeout (>= 0.4.0)
|
|
18
|
+
activesupport (7.1.6)
|
|
19
|
+
base64
|
|
20
|
+
benchmark (>= 0.3)
|
|
21
|
+
bigdecimal
|
|
22
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
23
|
+
connection_pool (>= 2.2.5)
|
|
24
|
+
drb
|
|
25
|
+
i18n (>= 1.6, < 2)
|
|
26
|
+
logger (>= 1.4.2)
|
|
27
|
+
minitest (>= 5.1)
|
|
28
|
+
mutex_m
|
|
29
|
+
securerandom (>= 0.3)
|
|
30
|
+
tzinfo (~> 2.0)
|
|
31
|
+
addressable (2.9.0)
|
|
32
|
+
public_suffix (>= 2.0.2, < 8.0)
|
|
33
|
+
appraisal (2.5.0)
|
|
34
|
+
bundler
|
|
35
|
+
rake
|
|
36
|
+
thor (>= 0.14.0)
|
|
37
|
+
ast (2.4.3)
|
|
38
|
+
autotest-suffix (1.1.0)
|
|
39
|
+
base64 (0.3.0)
|
|
40
|
+
benchmark (0.5.0)
|
|
41
|
+
bigdecimal (3.3.1)
|
|
42
|
+
byebug (13.0.0)
|
|
43
|
+
reline (>= 0.6.0)
|
|
44
|
+
coderay (1.1.3)
|
|
45
|
+
concurrent-ruby (1.3.8)
|
|
46
|
+
connection_pool (3.0.2)
|
|
47
|
+
docile (1.4.1)
|
|
48
|
+
docker-api (2.4.0)
|
|
49
|
+
excon (>= 0.64.0)
|
|
50
|
+
multi_json
|
|
51
|
+
drb (2.2.3)
|
|
52
|
+
erb (6.0.7)
|
|
53
|
+
excon (1.7.0)
|
|
54
|
+
logger
|
|
55
|
+
faraday (2.14.3)
|
|
56
|
+
faraday-net_http (>= 2.0, < 3.5)
|
|
57
|
+
json
|
|
58
|
+
logger
|
|
59
|
+
faraday-net_http (3.4.4)
|
|
60
|
+
net-http (~> 0.5)
|
|
61
|
+
faraday-retry (2.4.0)
|
|
62
|
+
faraday (~> 2.0)
|
|
63
|
+
gapic-common (1.3.0)
|
|
64
|
+
faraday (>= 1.9, < 3.a)
|
|
65
|
+
faraday-retry (>= 1.0, < 3.a)
|
|
66
|
+
google-cloud-env (~> 2.2)
|
|
67
|
+
google-logging-utils (~> 0.1)
|
|
68
|
+
google-protobuf (~> 4.26)
|
|
69
|
+
googleapis-common-protos (~> 1.6)
|
|
70
|
+
googleapis-common-protos-types (~> 1.15)
|
|
71
|
+
googleauth (~> 1.12)
|
|
72
|
+
grpc (~> 1.66)
|
|
73
|
+
google-cloud-core (1.9.0)
|
|
74
|
+
google-cloud-env (>= 1.0, < 3.a)
|
|
75
|
+
google-cloud-errors (~> 1.0)
|
|
76
|
+
google-cloud-env (2.4.0)
|
|
77
|
+
base64 (~> 0.2)
|
|
78
|
+
faraday (>= 1.0, < 3.a)
|
|
79
|
+
google-cloud-errors (1.7.0)
|
|
80
|
+
google-cloud-spanner (2.36.0)
|
|
81
|
+
bigdecimal (~> 3.0)
|
|
82
|
+
concurrent-ruby (~> 1.0)
|
|
83
|
+
google-cloud-core (~> 1.7)
|
|
84
|
+
google-cloud-spanner-admin-database-v1 (~> 1.4)
|
|
85
|
+
google-cloud-spanner-admin-instance-v1 (~> 1.6)
|
|
86
|
+
google-cloud-spanner-v1 (~> 1.6)
|
|
87
|
+
google-cloud-spanner-admin-database-v1 (1.6.1)
|
|
88
|
+
gapic-common (>= 0.25.0, < 2.a)
|
|
89
|
+
google-cloud-errors (~> 1.0)
|
|
90
|
+
grpc-google-iam-v1 (~> 1.1)
|
|
91
|
+
google-cloud-spanner-admin-instance-v1 (1.6.0)
|
|
92
|
+
gapic-common (>= 0.25.0, < 2.a)
|
|
93
|
+
google-cloud-errors (~> 1.0)
|
|
94
|
+
grpc-google-iam-v1 (~> 1.1)
|
|
95
|
+
google-cloud-spanner-v1 (1.19.1)
|
|
96
|
+
gapic-common (~> 1.3)
|
|
97
|
+
google-cloud-errors (~> 1.0)
|
|
98
|
+
google-logging-utils (0.2.0)
|
|
99
|
+
google-protobuf (4.35.1)
|
|
100
|
+
bigdecimal
|
|
101
|
+
rake (~> 13.3)
|
|
102
|
+
google-protobuf (4.35.1-aarch64-linux-gnu)
|
|
103
|
+
bigdecimal
|
|
104
|
+
rake (~> 13.3)
|
|
105
|
+
google-protobuf (4.35.1-aarch64-linux-musl)
|
|
106
|
+
bigdecimal
|
|
107
|
+
rake (~> 13.3)
|
|
108
|
+
google-protobuf (4.35.1-arm64-darwin)
|
|
109
|
+
bigdecimal
|
|
110
|
+
rake (~> 13.3)
|
|
111
|
+
google-protobuf (4.35.1-x86-linux-gnu)
|
|
112
|
+
bigdecimal
|
|
113
|
+
rake (~> 13.3)
|
|
114
|
+
google-protobuf (4.35.1-x86-linux-musl)
|
|
115
|
+
bigdecimal
|
|
116
|
+
rake (~> 13.3)
|
|
117
|
+
google-protobuf (4.35.1-x86_64-darwin)
|
|
118
|
+
bigdecimal
|
|
119
|
+
rake (~> 13.3)
|
|
120
|
+
google-protobuf (4.35.1-x86_64-linux-gnu)
|
|
121
|
+
bigdecimal
|
|
122
|
+
rake (~> 13.3)
|
|
123
|
+
google-protobuf (4.35.1-x86_64-linux-musl)
|
|
124
|
+
bigdecimal
|
|
125
|
+
rake (~> 13.3)
|
|
126
|
+
google-style (1.32.0)
|
|
127
|
+
rubocop (~> 1.76)
|
|
128
|
+
googleapis-common-protos (1.10.0)
|
|
129
|
+
google-protobuf (~> 4.26)
|
|
130
|
+
googleapis-common-protos-types (~> 1.21)
|
|
131
|
+
grpc (~> 1.41)
|
|
132
|
+
googleapis-common-protos-types (1.23.0)
|
|
133
|
+
google-protobuf (~> 4.26)
|
|
134
|
+
googleauth (1.17.3)
|
|
135
|
+
faraday (>= 1.0, < 3.a)
|
|
136
|
+
google-cloud-env (~> 2.2)
|
|
137
|
+
google-logging-utils (~> 0.1)
|
|
138
|
+
jwt (>= 1.4, < 4.0)
|
|
139
|
+
os (>= 0.9, < 2.0)
|
|
140
|
+
pstore (~> 0.1)
|
|
141
|
+
signet (>= 0.16, < 2.a)
|
|
142
|
+
grpc (1.83.0)
|
|
143
|
+
google-protobuf (>= 3.25, < 5.0)
|
|
144
|
+
googleapis-common-protos-types (~> 1.0)
|
|
145
|
+
grpc (1.83.0-aarch64-linux-gnu)
|
|
146
|
+
google-protobuf (>= 3.25, < 5.0)
|
|
147
|
+
googleapis-common-protos-types (~> 1.0)
|
|
148
|
+
grpc (1.83.0-aarch64-linux-musl)
|
|
149
|
+
google-protobuf (>= 3.25, < 5.0)
|
|
150
|
+
googleapis-common-protos-types (~> 1.0)
|
|
151
|
+
grpc (1.83.0-arm64-darwin)
|
|
152
|
+
google-protobuf (>= 3.25, < 5.0)
|
|
153
|
+
googleapis-common-protos-types (~> 1.0)
|
|
154
|
+
grpc (1.83.0-x86-linux-gnu)
|
|
155
|
+
google-protobuf (>= 3.25, < 5.0)
|
|
156
|
+
googleapis-common-protos-types (~> 1.0)
|
|
157
|
+
grpc (1.83.0-x86-linux-musl)
|
|
158
|
+
google-protobuf (>= 3.25, < 5.0)
|
|
159
|
+
googleapis-common-protos-types (~> 1.0)
|
|
160
|
+
grpc (1.83.0-x86_64-darwin)
|
|
161
|
+
google-protobuf (>= 3.25, < 5.0)
|
|
162
|
+
googleapis-common-protos-types (~> 1.0)
|
|
163
|
+
grpc (1.83.0-x86_64-linux-gnu)
|
|
164
|
+
google-protobuf (>= 3.25, < 5.0)
|
|
165
|
+
googleapis-common-protos-types (~> 1.0)
|
|
166
|
+
grpc (1.83.0-x86_64-linux-musl)
|
|
167
|
+
google-protobuf (>= 3.25, < 5.0)
|
|
168
|
+
googleapis-common-protos-types (~> 1.0)
|
|
169
|
+
grpc-google-iam-v1 (1.10.0)
|
|
170
|
+
google-protobuf (>= 3.18, < 5.a)
|
|
171
|
+
googleapis-common-protos (~> 1.4)
|
|
172
|
+
grpc (~> 1.41)
|
|
173
|
+
i18n (1.15.2)
|
|
174
|
+
concurrent-ruby (~> 1.0)
|
|
175
|
+
io-console (0.9.2)
|
|
176
|
+
irb (1.18.0)
|
|
177
|
+
pp (>= 0.6.0)
|
|
178
|
+
prism (>= 1.3.0)
|
|
179
|
+
rdoc (>= 4.0.0)
|
|
180
|
+
reline (>= 0.4.2)
|
|
181
|
+
json (2.21.2)
|
|
182
|
+
jwt (3.2.0)
|
|
183
|
+
base64
|
|
184
|
+
language_server-protocol (3.17.0.6)
|
|
185
|
+
lint_roller (1.1.0)
|
|
186
|
+
logger (1.7.0)
|
|
187
|
+
method_source (1.1.0)
|
|
188
|
+
minitest (5.27.0)
|
|
189
|
+
minitest-autotest (1.2.0)
|
|
190
|
+
minitest-server (~> 1.0)
|
|
191
|
+
path_expander (~> 2.0)
|
|
192
|
+
minitest-focus (1.4.1)
|
|
193
|
+
minitest (> 5.0)
|
|
194
|
+
minitest-rg (5.4.0)
|
|
195
|
+
minitest (>= 5.0, < 7)
|
|
196
|
+
minitest-server (1.0.10)
|
|
197
|
+
drb (~> 2.0)
|
|
198
|
+
minitest (~> 5.16)
|
|
199
|
+
multi_json (1.21.1)
|
|
200
|
+
mustermann (3.1.1)
|
|
201
|
+
mutex_m (0.3.0)
|
|
202
|
+
net-http (0.9.1)
|
|
203
|
+
uri (>= 0.11.1)
|
|
204
|
+
os (1.1.4)
|
|
205
|
+
ostruct (0.6.3)
|
|
206
|
+
parallel (2.1.0)
|
|
207
|
+
parser (3.3.12.0)
|
|
208
|
+
ast (~> 2.4.1)
|
|
209
|
+
racc
|
|
210
|
+
path_expander (2.0.1)
|
|
211
|
+
pp (0.6.4)
|
|
212
|
+
prettyprint
|
|
213
|
+
prettyprint (0.2.0)
|
|
214
|
+
prism (1.9.0)
|
|
215
|
+
pry (0.16.0)
|
|
216
|
+
coderay (~> 1.1)
|
|
217
|
+
method_source (~> 1.0)
|
|
218
|
+
reline (>= 0.6.0)
|
|
219
|
+
pry-byebug (3.12.0)
|
|
220
|
+
byebug (~> 13.0)
|
|
221
|
+
pry (>= 0.13, < 0.17)
|
|
222
|
+
pstore (0.2.1)
|
|
223
|
+
public_suffix (7.0.5)
|
|
224
|
+
racc (1.8.1)
|
|
225
|
+
rack (3.2.7)
|
|
226
|
+
rack-protection (4.2.1)
|
|
227
|
+
base64 (>= 0.1.0)
|
|
228
|
+
logger (>= 1.6.0)
|
|
229
|
+
rack (>= 3.0.0, < 4)
|
|
230
|
+
rack-session (2.1.2)
|
|
231
|
+
base64 (>= 0.1.0)
|
|
232
|
+
rack (>= 3.0.0)
|
|
233
|
+
rainbow (3.1.1)
|
|
234
|
+
rake (13.4.2)
|
|
235
|
+
rbs (4.1.3)
|
|
236
|
+
logger
|
|
237
|
+
prism (>= 1.6.0)
|
|
238
|
+
tsort
|
|
239
|
+
rdoc (8.0.0)
|
|
240
|
+
erb
|
|
241
|
+
prism (>= 1.6.0)
|
|
242
|
+
rbs (>= 4.0.0)
|
|
243
|
+
tsort
|
|
244
|
+
readline (0.0.4)
|
|
245
|
+
reline
|
|
246
|
+
redcarpet (3.6.1)
|
|
247
|
+
regexp_parser (2.12.0)
|
|
248
|
+
reline (0.7.0)
|
|
249
|
+
io-console (~> 0.5)
|
|
250
|
+
rubocop (1.89.0)
|
|
251
|
+
json (~> 2.3)
|
|
252
|
+
language_server-protocol (~> 3.17.0.2)
|
|
253
|
+
lint_roller (~> 1.1.0)
|
|
254
|
+
parallel (>= 1.10)
|
|
255
|
+
parser (>= 3.3.0.2)
|
|
256
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
257
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
|
258
|
+
rubocop-ast (>= 1.49.0, < 2.0)
|
|
259
|
+
ruby-progressbar (~> 1.7)
|
|
260
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
|
261
|
+
rubocop-ast (1.50.0)
|
|
262
|
+
parser (>= 3.3.7.2)
|
|
263
|
+
prism (~> 1.7)
|
|
264
|
+
ruby-progressbar (1.13.0)
|
|
265
|
+
securerandom (0.4.1)
|
|
266
|
+
signet (0.22.0)
|
|
267
|
+
addressable (~> 2.8)
|
|
268
|
+
faraday (>= 0.17.5, < 3.a)
|
|
269
|
+
jwt (>= 1.5, < 4.0)
|
|
270
|
+
simplecov (0.22.0)
|
|
271
|
+
docile (~> 1.1)
|
|
272
|
+
simplecov-html (~> 0.11)
|
|
273
|
+
simplecov_json_formatter (~> 0.1)
|
|
274
|
+
simplecov-html (0.13.2)
|
|
275
|
+
simplecov_json_formatter (0.1.4)
|
|
276
|
+
sinatra (4.2.1)
|
|
277
|
+
logger (>= 1.6.0)
|
|
278
|
+
mustermann (~> 3.0)
|
|
279
|
+
rack (>= 3.0.0, < 4)
|
|
280
|
+
rack-protection (= 4.2.1)
|
|
281
|
+
rack-session (>= 2.0.0, < 3)
|
|
282
|
+
tilt (~> 2.0)
|
|
283
|
+
sinatra-activerecord (2.0.28)
|
|
284
|
+
activerecord (>= 4.1)
|
|
285
|
+
sinatra (>= 1.0)
|
|
286
|
+
sqlite3 (2.9.6-aarch64-linux-gnu)
|
|
287
|
+
sqlite3 (2.9.6-aarch64-linux-musl)
|
|
288
|
+
sqlite3 (2.9.6-arm-linux-gnu)
|
|
289
|
+
sqlite3 (2.9.6-arm-linux-musl)
|
|
290
|
+
sqlite3 (2.9.6-arm64-darwin)
|
|
291
|
+
sqlite3 (2.9.6-x86-linux-gnu)
|
|
292
|
+
sqlite3 (2.9.6-x86-linux-musl)
|
|
293
|
+
sqlite3 (2.9.6-x86_64-darwin)
|
|
294
|
+
sqlite3 (2.9.6-x86_64-linux-gnu)
|
|
295
|
+
sqlite3 (2.9.6-x86_64-linux-musl)
|
|
296
|
+
thor (1.5.0)
|
|
297
|
+
tilt (2.9.0)
|
|
298
|
+
timeout (0.6.1)
|
|
299
|
+
tsort (0.2.0)
|
|
300
|
+
tzinfo (2.0.6)
|
|
301
|
+
concurrent-ruby (~> 1.0)
|
|
302
|
+
unicode-display_width (3.2.0)
|
|
303
|
+
unicode-emoji (~> 4.1)
|
|
304
|
+
unicode-emoji (4.2.0)
|
|
305
|
+
uri (1.1.1)
|
|
306
|
+
yard (0.9.45)
|
|
307
|
+
yard-doctest (0.1.17)
|
|
308
|
+
minitest
|
|
309
|
+
yard
|
|
310
|
+
|
|
311
|
+
PLATFORMS
|
|
312
|
+
aarch64-linux-gnu
|
|
313
|
+
aarch64-linux-musl
|
|
314
|
+
arm-linux-gnu
|
|
315
|
+
arm-linux-musl
|
|
316
|
+
arm64-darwin
|
|
317
|
+
x86-linux-gnu
|
|
318
|
+
x86-linux-musl
|
|
319
|
+
x86_64-darwin
|
|
320
|
+
x86_64-linux-gnu
|
|
321
|
+
x86_64-linux-musl
|
|
322
|
+
|
|
323
|
+
DEPENDENCIES
|
|
324
|
+
activerecord (~> 7.1.0)
|
|
325
|
+
activerecord-spanner-adapter!
|
|
326
|
+
appraisal (~> 2.5)
|
|
327
|
+
autotest-suffix (~> 1.1)
|
|
328
|
+
bundler (>= 2.0, < 5.0)
|
|
329
|
+
docker-api
|
|
330
|
+
google-style (~> 1.32.0)
|
|
331
|
+
irb
|
|
332
|
+
minitest (~> 5.27.0)
|
|
333
|
+
minitest-autotest (~> 1.0)
|
|
334
|
+
minitest-focus (~> 1.1)
|
|
335
|
+
minitest-rg (~> 5.4.0)
|
|
336
|
+
mutex_m
|
|
337
|
+
ostruct
|
|
338
|
+
pry (~> 0.16.0)
|
|
339
|
+
pry-byebug (~> 3.12.0)
|
|
340
|
+
rake (~> 13.0)
|
|
341
|
+
readline
|
|
342
|
+
redcarpet (~> 3.0)
|
|
343
|
+
simplecov (~> 0.9)
|
|
344
|
+
sinatra-activerecord
|
|
345
|
+
sqlite3
|
|
346
|
+
yard (~> 0.9)
|
|
347
|
+
yard-doctest (~> 0.1.13)
|
|
348
|
+
|
|
349
|
+
CHECKSUMS
|
|
350
|
+
activemodel (7.1.6) sha256=f72f510018a560b5969e3ffc88214441ff09eed60b310feba678a597b2a2e721
|
|
351
|
+
activerecord (7.1.6) sha256=1aa298cd7fc97ed8639ebb05a46bd17243a1218d89945bdc2bac1e61e673f079
|
|
352
|
+
activerecord-spanner-adapter (2.7.0)
|
|
353
|
+
activesupport (7.1.6) sha256=7f12140a813b1c4922a322663e547129aef1840fc512fa262378f6d7e7fd3a7c
|
|
354
|
+
addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af
|
|
355
|
+
appraisal (2.5.0) sha256=36989221be127913b0dba8d114da2001e6b2dceea7bd4951200eaba764eed3ce
|
|
356
|
+
ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
|
|
357
|
+
autotest-suffix (1.1.0) sha256=9bb29331b7b66a9659b01ef10839bd61fc1a6e95477c8ea710bd01e10c380977
|
|
358
|
+
base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
|
|
359
|
+
benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c
|
|
360
|
+
bigdecimal (3.3.1) sha256=eaa01e228be54c4f9f53bf3cc34fe3d5e845c31963e7fcc5bedb05a4e7d52218
|
|
361
|
+
byebug (13.0.0) sha256=d2263efe751941ca520fa29744b71972d39cbc41839496706f5d9b22e92ae05d
|
|
362
|
+
coderay (1.1.3) sha256=dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b
|
|
363
|
+
concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1
|
|
364
|
+
connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
|
|
365
|
+
docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
|
|
366
|
+
docker-api (2.4.0) sha256=824be734f4cc8718189be9c8e795b6414acbbf7e8b082a06f959a27dd8dd63e6
|
|
367
|
+
drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
|
|
368
|
+
erb (6.0.7) sha256=c5ca6dc25b0ef974a44dc8f59fe847577122483b1968a38dec305c60bf91ee92
|
|
369
|
+
excon (1.7.0) sha256=b8deec2bf978123b7e4b13a103ffec61557c6feaba34706dbc1ce4a94dec33e0
|
|
370
|
+
faraday (2.14.3) sha256=1882247e6766615c8220b4392bf1d27f6ebb63d8e28267587cef1fb0bf37f278
|
|
371
|
+
faraday-net_http (3.4.4) sha256=0e78af151747ed1b00f33e25973b4bc220d7f16c00c39676817c8b12331eb588
|
|
372
|
+
faraday-retry (2.4.0) sha256=7b79c48fb7e56526faf247b12d94a680071ff40c9fda7cf1ec1549439ad11ebe
|
|
373
|
+
gapic-common (1.3.0) sha256=4e5d9be1effb7366e2cda13c0f44922285d5613ac8de8b9b18c2c835fe4faa91
|
|
374
|
+
google-cloud-core (1.9.0) sha256=ab55409f51488e8deefb6edcc1ce4771dfb5da2fe7b3bc075709a030c2b682a4
|
|
375
|
+
google-cloud-env (2.4.0) sha256=01cb35ecee5d1c4d1cd4deaed8bb5bddc838e296bcc2a35c5d1ddd07ce40d28d
|
|
376
|
+
google-cloud-errors (1.7.0) sha256=6e682f42d89aae08689f36f28495de629d756da076bafff0003bac7f8042ebb3
|
|
377
|
+
google-cloud-spanner (2.36.0) sha256=91abbf55d6ce8e054edd838977a907152ff9ff491f34690409bbe6b9a82c0c5c
|
|
378
|
+
google-cloud-spanner-admin-database-v1 (1.6.1) sha256=6b8758e4def80d69e9ee64a42078d3a59ab028a638f7a849abd8130cf85add9b
|
|
379
|
+
google-cloud-spanner-admin-instance-v1 (1.6.0) sha256=1775b56518665854b27af393378761e6ff9b12156d746168df7bb14ce0138d54
|
|
380
|
+
google-cloud-spanner-v1 (1.19.1) sha256=31e488417c9d41dc21aeaae55193a2d5e5250fdc84de70a1d841d18929c3b648
|
|
381
|
+
google-logging-utils (0.2.0) sha256=675462b4ea5affa825a3442694ca2d75d0069455a1d0956127207498fca3df7b
|
|
382
|
+
google-protobuf (4.35.1) sha256=a3a6471331d918f58dfa4d014a8f6286f0af2cf4840216bde52fcf2ea3fe3726
|
|
383
|
+
google-protobuf (4.35.1-aarch64-linux-gnu) sha256=50ca44d0eeff3f8475e630a1accdd974256f3510694d574e2c9d6119ea8bc9e1
|
|
384
|
+
google-protobuf (4.35.1-aarch64-linux-musl) sha256=d5c65cef6bd6498a9e5ed5f88cf6cf7e341c10b0a005e32137d5d1a2b6e8c18a
|
|
385
|
+
google-protobuf (4.35.1-arm64-darwin) sha256=d9c957df04fa89c749fa9a72a7b383eb4296efc9b2303dc6fd6fbe39c698ad6b
|
|
386
|
+
google-protobuf (4.35.1-x86-linux-gnu) sha256=cc7492566b27ad8b5dfa3a7b6f9b11e905050cc53c2fa8ff22de375a9e7a70fb
|
|
387
|
+
google-protobuf (4.35.1-x86-linux-musl) sha256=ab403790b59e4dc588ffbed1eaacf05d4ca2f0d12ac9c13d6c64e69380d8c99e
|
|
388
|
+
google-protobuf (4.35.1-x86_64-darwin) sha256=66b62b4df00931018a692806df66393efa960d6d2b7da69735187249f950d3ee
|
|
389
|
+
google-protobuf (4.35.1-x86_64-linux-gnu) sha256=c786439087512a3fbd199e9897d265b855f951d4027e218ea55e858d45969edd
|
|
390
|
+
google-protobuf (4.35.1-x86_64-linux-musl) sha256=91890eb0002934a339fdb7d77a147c46b7474b6799db27872b747b905837f744
|
|
391
|
+
google-style (1.32.0) sha256=3b13068979e5b8caa067ecce9bf818b6cf0e5eb706ead41c5b905f237d9bfb01
|
|
392
|
+
googleapis-common-protos (1.10.0) sha256=13e47ad0ce85d3d30065c03863efd302a82b0e08ba576f2a9b9dbbfeecb57ee0
|
|
393
|
+
googleapis-common-protos-types (1.23.0) sha256=992e740a523794d9fc5f29a504465d8fc737aaa16c930fe7228e3346860faf0a
|
|
394
|
+
googleauth (1.17.3) sha256=9a655455885c0c17a8b70537acd2a992a7c7842c43c06c6612dfb0d93e755d58
|
|
395
|
+
grpc (1.83.0) sha256=38119e7f9f7cbc98e79145201da4be470a7542b0befad454651d35015ea55c59
|
|
396
|
+
grpc (1.83.0-aarch64-linux-gnu) sha256=11562efdded494b2277fd9c3c530dfdf90177faa111526ae9e748d0be29f1a9d
|
|
397
|
+
grpc (1.83.0-aarch64-linux-musl) sha256=ee745eab4f3922ed27d379cbc4bc0a99e58db367fa96312e9fe258aafd3afeb2
|
|
398
|
+
grpc (1.83.0-arm64-darwin) sha256=25dd772aa80529f014d70da069787cd39b469c9edacbe493da4ff19952a147e2
|
|
399
|
+
grpc (1.83.0-x86-linux-gnu) sha256=e9b20f54b8e8915f3921f12b266742e79da2c31d60e88295e15d0d16ea3cfd55
|
|
400
|
+
grpc (1.83.0-x86-linux-musl) sha256=868e66d9c2a77eca1a93292fd879565219821fb5888673aedd08154303c9520c
|
|
401
|
+
grpc (1.83.0-x86_64-darwin) sha256=cfad91d559d1907159a5247fb12dc112a8ea0ebe2027ca7f5ab648d01a645716
|
|
402
|
+
grpc (1.83.0-x86_64-linux-gnu) sha256=25d66bfa3cb1b05258b3f9632478c7e7ceb52cb16ccc0b4b26d7df36be7158b1
|
|
403
|
+
grpc (1.83.0-x86_64-linux-musl) sha256=a5023264dbb8038c23b147bbf80adb06932ef11b5ab493412e9e37a43114fa8c
|
|
404
|
+
grpc-google-iam-v1 (1.10.0) sha256=13a4ace4f7495b913f202880a5431f7e53633af3dd6d7df8c4224bd2dac23a9a
|
|
405
|
+
i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5
|
|
406
|
+
io-console (0.9.2) sha256=efa74f891dd03c0939a931dfc6e74c2813d904763d456ea9762b0525e748db08
|
|
407
|
+
irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3
|
|
408
|
+
json (2.21.2) sha256=1f1d3b7cf2b3ba1a69beca0bb6db13d5438b80bff3cd54cdaaa620b9b07c1c6a
|
|
409
|
+
jwt (3.2.0) sha256=5419b1fe37b1da0982bd07051f573a8b8789ab724c2aa7e785e4784a3ed217d7
|
|
410
|
+
language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0
|
|
411
|
+
lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
|
|
412
|
+
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
|
|
413
|
+
method_source (1.1.0) sha256=181301c9c45b731b4769bc81e8860e72f9161ad7d66dd99103c9ab84f560f5c5
|
|
414
|
+
minitest (5.27.0) sha256=2d3b17f8a36fe7801c1adcffdbc38233b938eb0b4966e97a6739055a45fa77d5
|
|
415
|
+
minitest-autotest (1.2.0) sha256=60d031cba705215450662b0060f03f96507682b346a19c27f6756751ad92d2b4
|
|
416
|
+
minitest-focus (1.4.1) sha256=394517cbe2dcb2d992d8ffc41a3b2b6315777a4daa69239de4fefe7110dd810e
|
|
417
|
+
minitest-rg (5.4.0) sha256=54d42bb8ce876381245be5866f3c1dd704ef79c06ba5c9ff280c0aa28c56effb
|
|
418
|
+
minitest-server (1.0.10) sha256=275439bf3ffc433fcbe161733248f1d9749ebf122892cf010bf864aaa95cef75
|
|
419
|
+
multi_json (1.21.1) sha256=e6126a31808e3b4d19f483c775ceac34df190dffa62adfb63a165ee14ba68080
|
|
420
|
+
mustermann (3.1.1) sha256=4c6170c7234d5499c345562ba7c7dfe73e1754286dcc1abb053064d66a127198
|
|
421
|
+
mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
|
|
422
|
+
net-http (0.9.1) sha256=25ba0b67c63e89df626ed8fac771d0ad24ad151a858af2cc8e6a716ca4336996
|
|
423
|
+
os (1.1.4) sha256=57816d6a334e7bd6aed048f4b0308226c5fb027433b67d90a9ab435f35108d3f
|
|
424
|
+
ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912
|
|
425
|
+
parallel (2.1.0) sha256=b35258865c2e31134c5ecb708beaaf6772adf9d5efae28e93e99260877b09356
|
|
426
|
+
parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828
|
|
427
|
+
path_expander (2.0.1) sha256=2de201164bff4719cc4d0b3767286e9977cc832a59c4d70abab571ec86cb41e4
|
|
428
|
+
pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570
|
|
429
|
+
prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
|
|
430
|
+
prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
|
|
431
|
+
pry (0.16.0) sha256=d76c69065698ed1f85e717bd33d7942c38a50868f6b0673c636192b3d1b6054e
|
|
432
|
+
pry-byebug (3.12.0) sha256=594e094ae8a8390a7ad4c7b36ae36e13304ed02664c67417d108dc5f7213d1b7
|
|
433
|
+
pstore (0.2.1) sha256=03904d0f2c66579e96d1e6704cdabc0c88df7ea8ed8782d9f3569f6f6c702c1a
|
|
434
|
+
public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623
|
|
435
|
+
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
|
|
436
|
+
rack (3.2.7) sha256=93e13e1c24f93556671d85d2d79fa228c3485815c50d7e2f265b5330c6528fb7
|
|
437
|
+
rack-protection (4.2.1) sha256=cf6e2842df8c55f5e4d1a4be015e603e19e9bc3a7178bae58949ccbb58558bac
|
|
438
|
+
rack-session (2.1.2) sha256=595434f8c0c3473ae7d7ac56ecda6cc6dfd9d37c0b2b5255330aa1576967ffe8
|
|
439
|
+
rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
|
|
440
|
+
rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701
|
|
441
|
+
rbs (4.1.3) sha256=0c4474a9751cdc14364bfad0b3e53678323bbdc2c31683b0445932867dbab8c4
|
|
442
|
+
rdoc (8.0.0) sha256=03bf8c08a9639658855a0cfd77c0abca8325c227693f7f33f82957811348c469
|
|
443
|
+
readline (0.0.4) sha256=6138eef17be2b98298b672c3ea63bf9cb5158d401324f26e1e84f235879c1d6a
|
|
444
|
+
redcarpet (3.6.1) sha256=d444910e6aa55480c6bcdc0cdb057626e8a32c054c29e793fa642ba2f155f445
|
|
445
|
+
regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb
|
|
446
|
+
reline (0.7.0) sha256=5b012d8e55dbf9d450f12bde2cf7d15ff546ae80b3f8f3b30e570d431815583d
|
|
447
|
+
rubocop (1.89.0) sha256=4dee8e3ee9c45e474834efd9e8d6fd031e8331c8dacdff0de4ad65ae0a6faae7
|
|
448
|
+
rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db
|
|
449
|
+
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
|
|
450
|
+
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
|
|
451
|
+
signet (0.22.0) sha256=b76d495ccb07ad35dbc89f3e920665a9d8ed717141955034005d7843dcfe4780
|
|
452
|
+
simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
|
|
453
|
+
simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
|
|
454
|
+
simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
|
|
455
|
+
sinatra (4.2.1) sha256=b7aeb9b11d046b552972ade834f1f9be98b185fa8444480688e3627625377080
|
|
456
|
+
sinatra-activerecord (2.0.28) sha256=99f352c2dfa244d02b4f877efbe00135360b758390b8bb7bc2d4d91171c93811
|
|
457
|
+
sqlite3 (2.9.6-aarch64-linux-gnu) sha256=d8b1f7d23efd7abac285775a9566562fc7debfef79d594e3a20354406fb7907c
|
|
458
|
+
sqlite3 (2.9.6-aarch64-linux-musl) sha256=3579e1c98cdc7ff5c3722847bb63ed4e1efb7ff675cb5e1e48ef2d4da5fb3bc9
|
|
459
|
+
sqlite3 (2.9.6-arm-linux-gnu) sha256=33541500e3615da02afe54a9cc38b17a6985d3cf9d8b76d6d0a83002f114e7ec
|
|
460
|
+
sqlite3 (2.9.6-arm-linux-musl) sha256=c5490af48bb228fefa54314e9541375c3907e70f8109f3881b5ff97e1c93ae33
|
|
461
|
+
sqlite3 (2.9.6-arm64-darwin) sha256=849b5d7f795e60fe25076d62c72dd722beb45b3850b516ad978d60ee848ec15b
|
|
462
|
+
sqlite3 (2.9.6-x86-linux-gnu) sha256=fbaa9f46f9708f57dd8a459b37fc269f9613e0cacf1547df01aa439cc45c20c0
|
|
463
|
+
sqlite3 (2.9.6-x86-linux-musl) sha256=6715026fbb5530e810b28ef43b9c4f84cd3c991f67b9d808a31fcc32b847abbd
|
|
464
|
+
sqlite3 (2.9.6-x86_64-darwin) sha256=b5842fea77781c14da03fa7bc0feb82db03a69e135affcb6f5399cbd2797a5f3
|
|
465
|
+
sqlite3 (2.9.6-x86_64-linux-gnu) sha256=613188ce02f614126ddbc38c5e217ccffd6306d0dcd9adca9764547aa890a634
|
|
466
|
+
sqlite3 (2.9.6-x86_64-linux-musl) sha256=d493b11818a3573387a1d56e1ee8fa00da23a683a7a1cc063e7a0feeed843abf
|
|
467
|
+
thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73
|
|
468
|
+
tilt (2.9.0) sha256=da5735d0280bba96e9a91041bb14aee435ccad5c17b0fa519249ae543d9aa3a5
|
|
469
|
+
timeout (0.6.1) sha256=78f57368a7e7bbadec56971f78a3f5ecbcfb59b7fcbb0a3ed6ddc08a5094accb
|
|
470
|
+
tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
|
|
471
|
+
tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
|
|
472
|
+
unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
|
|
473
|
+
unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
|
|
474
|
+
uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
|
|
475
|
+
yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51
|
|
476
|
+
yard-doctest (0.1.17) sha256=7cb35a75d99f58fc42ee72d3542a36e227237b621a40aebc391c95988b72847f
|
|
477
|
+
|
|
478
|
+
BUNDLED WITH
|
|
479
|
+
2.6.9
|
|
@@ -86,25 +86,15 @@ module ActiveRecord
|
|
|
86
86
|
|
|
87
87
|
def test_index_exists
|
|
88
88
|
with_change_table do |t|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
t.index_exists?(:bar, {})
|
|
92
|
-
else
|
|
93
|
-
@connection.expect :index_exists?, nil, [:delete_me, :bar]
|
|
94
|
-
t.index_exists?(:bar)
|
|
95
|
-
end
|
|
89
|
+
@connection.expect :index_exists?, nil, [:delete_me, :bar]
|
|
90
|
+
t.index_exists?(:bar)
|
|
96
91
|
end
|
|
97
92
|
end
|
|
98
93
|
|
|
99
94
|
def test_index_exists_with_options
|
|
100
95
|
with_change_table do |t|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
t.index_exists?(:bar, {unique: true})
|
|
104
|
-
else
|
|
105
|
-
@connection.expect :index_exists?, nil, [:delete_me, :bar], unique: true
|
|
106
|
-
t.index_exists?(:bar, unique: true)
|
|
107
|
-
end
|
|
96
|
+
@connection.expect :index_exists?, nil, [:delete_me, :bar], unique: true
|
|
97
|
+
t.index_exists?(:bar, unique: true)
|
|
108
98
|
end
|
|
109
99
|
end
|
|
110
100
|
|
|
@@ -76,37 +76,23 @@ module ActiveRecord
|
|
|
76
76
|
end
|
|
77
77
|
end
|
|
78
78
|
|
|
79
|
-
VERSION_7 = ActiveRecord.gem_version >= Gem::Version.create("7.0.0")
|
|
80
|
-
|
|
81
|
-
def assert_raises_below_ar_7(ex, &test)
|
|
82
|
-
if VERSION_7
|
|
83
|
-
assert_nothing_raised &test
|
|
84
|
-
else
|
|
85
|
-
assert_raises ex, &test
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
|
|
89
79
|
def test_create_with_value_for_generated_column
|
|
90
80
|
# Note: The statement itself will not fail for an explicit transaction that uses buffered transactions.
|
|
91
81
|
# Instead, the commit will fail. That is tested in a separate test case.
|
|
92
82
|
[nil, :serializable].each do |isolation|
|
|
93
83
|
run_in_transaction isolation do
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
assert_equal "Pete Allison", singer.reload.full_name
|
|
97
|
-
end
|
|
84
|
+
singer = Singer.create first_name: "Pete", last_name: "Allison", full_name: "Alice Peterson"
|
|
85
|
+
assert_equal "Pete Allison", singer.reload.full_name
|
|
98
86
|
end
|
|
99
87
|
end
|
|
100
88
|
end
|
|
101
89
|
|
|
102
90
|
def test_create_with_value_for_generated_column_buffered_mutations
|
|
103
91
|
# The transaction itself will raise an error, as the failure occurs during the commit.
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
Singer.create first_name: "Pete", last_name: "Allison", full_name: "Alice Peterson"
|
|
107
|
-
end
|
|
108
|
-
assert_equal "Pete Allison", singer.reload.full_name
|
|
92
|
+
singer = run_in_transaction :buffered_mutations do
|
|
93
|
+
Singer.create first_name: "Pete", last_name: "Allison", full_name: "Alice Peterson"
|
|
109
94
|
end
|
|
95
|
+
assert_equal "Pete Allison", singer.reload.full_name
|
|
110
96
|
end
|
|
111
97
|
|
|
112
98
|
def test_update_with_value_for_generated_column
|
|
@@ -116,9 +102,7 @@ module ActiveRecord
|
|
|
116
102
|
singer = Singer.create first_name: "Pete", last_name: "Allison"
|
|
117
103
|
singer.reload # reload to ensure the full_name attribute is populated.
|
|
118
104
|
run_in_transaction isolation do
|
|
119
|
-
|
|
120
|
-
Singer.update full_name: "Alice Peterson"
|
|
121
|
-
end
|
|
105
|
+
Singer.update full_name: "Alice Peterson"
|
|
122
106
|
end
|
|
123
107
|
assert_equal "Pete Allison", singer.reload.full_name
|
|
124
108
|
end
|
|
@@ -128,10 +112,8 @@ module ActiveRecord
|
|
|
128
112
|
singer = Singer.create first_name: "Pete", last_name: "Allison"
|
|
129
113
|
singer.reload # reload to ensure the full_name attribute is populated.
|
|
130
114
|
# The transaction itself will raise an error, as the failure occurs during the commit.
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
Singer.update full_name: "Alice Peterson"
|
|
134
|
-
end
|
|
115
|
+
run_in_transaction :buffered_mutations do
|
|
116
|
+
Singer.update full_name: "Alice Peterson"
|
|
135
117
|
end
|
|
136
118
|
assert_equal "Pete Allison", singer.reload.full_name
|
|
137
119
|
end
|
data/acceptance/test_helper.rb
CHANGED
|
@@ -17,7 +17,6 @@ require "active_support/testing/stream"
|
|
|
17
17
|
require "activerecord-spanner-adapter"
|
|
18
18
|
require "active_record/connection_adapters/spanner_adapter"
|
|
19
19
|
require "securerandom"
|
|
20
|
-
require "composite_primary_keys" if ActiveRecord::gem_version < Gem::Version.create('7.1.0')
|
|
21
20
|
|
|
22
21
|
# rubocop:disable Style/GlobalVars
|
|
23
22
|
#
|
|
@@ -27,27 +26,16 @@ end
|
|
|
27
26
|
$spanner_test_database = "ar-test-#{SecureRandom.hex 4}"
|
|
28
27
|
|
|
29
28
|
def connector_config
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
else
|
|
42
|
-
{
|
|
43
|
-
"adapter" => "spanner",
|
|
44
|
-
"emulator_host" => ENV["SPANNER_EMULATOR_HOST"],
|
|
45
|
-
"project" => ENV["SPANNER_TEST_PROJECT"],
|
|
46
|
-
"instance" => ENV["SPANNER_TEST_INSTANCE"],
|
|
47
|
-
"credentials" => ENV["SPANNER_TEST_KEYFILE"],
|
|
48
|
-
"database" => $spanner_test_database,
|
|
49
|
-
}
|
|
50
|
-
end
|
|
29
|
+
{
|
|
30
|
+
"adapter" => "spanner",
|
|
31
|
+
"emulator_host" => ENV["SPANNER_EMULATOR_HOST"],
|
|
32
|
+
"project" => ENV["SPANNER_TEST_PROJECT"],
|
|
33
|
+
"instance" => ENV["SPANNER_TEST_INSTANCE"],
|
|
34
|
+
"credentials" => ENV["SPANNER_TEST_KEYFILE"],
|
|
35
|
+
"database" => $spanner_test_database,
|
|
36
|
+
"default_sequence_kind" => "BIT_REVERSED_POSITIVE",
|
|
37
|
+
"use_client_side_id_for_mutations" => true,
|
|
38
|
+
}
|
|
51
39
|
end
|
|
52
40
|
|
|
53
41
|
def spanner
|
|
@@ -26,8 +26,9 @@ Gem::Specification.new do |spec|
|
|
|
26
26
|
|
|
27
27
|
spec.add_dependency "google-cloud-spanner", "~> 2.25"
|
|
28
28
|
spec.add_dependency "google-cloud-spanner-v1", "~> 1.7"
|
|
29
|
-
spec.add_runtime_dependency "activerecord", [">= 7.
|
|
29
|
+
spec.add_runtime_dependency "activerecord", [">= 7.1", "< 9"]
|
|
30
30
|
|
|
31
|
+
spec.add_development_dependency "appraisal", "~> 2.5"
|
|
31
32
|
spec.add_development_dependency "autotest-suffix", "~> 1.1"
|
|
32
33
|
spec.add_development_dependency "bundler", [">= 2.0", "< 5.0"]
|
|
33
34
|
spec.add_development_dependency "google-style", "~> 1.32.0"
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# license that can be found in the LICENSE file or at
|
|
5
5
|
# https://opensource.org/licenses/MIT.
|
|
6
6
|
|
|
7
|
-
class CreateTables < ActiveRecord::Migration[
|
|
7
|
+
class CreateTables < ActiveRecord::Migration[7.1]
|
|
8
8
|
def change
|
|
9
9
|
connection.ddl_batch do
|
|
10
10
|
create_table :singers do |t|
|
data/examples/rails/README.md
CHANGED
|
@@ -55,7 +55,7 @@ If you are not familiar with Active Record, you can read more about it on [Ruby
|
|
|
55
55
|
ruby --version
|
|
56
56
|
rails --version
|
|
57
57
|
```
|
|
58
|
-
The versions should be Ruby 2
|
|
58
|
+
The versions should be Ruby 3.2 or higher and Rails 7.1 or higher.
|
|
59
59
|
1. Create a new Rails project:
|
|
60
60
|
|
|
61
61
|
```shell
|
data/examples/snippets/Rakefile
CHANGED
|
@@ -28,13 +28,6 @@ end
|
|
|
28
28
|
desc "Runs all samples."
|
|
29
29
|
task :all do
|
|
30
30
|
samples = fetch_samples
|
|
31
|
-
ar_version = ENV.fetch "AR_VERSION", "~> 7.1.0"
|
|
32
|
-
less_than_7_1 = ar_version.dup.to_s.sub("~>", "").strip < "7.1.0"
|
|
33
|
-
samples.delete "interleaved-tables" if less_than_7_1
|
|
34
|
-
samples.delete "interleaved-tables-before-7.1" unless less_than_7_1
|
|
35
|
-
samples.delete "bit-reversed-sequence" if less_than_7_1
|
|
36
|
-
samples.delete "auto-generated-primary-key" if less_than_7_1
|
|
37
|
-
samples.delete "query-logs" if less_than_7_1
|
|
38
31
|
samples.each do |sample|
|
|
39
32
|
run_sample sample
|
|
40
33
|
end
|