torque-postgresql 3.4.1 → 4.0.0.rc1

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.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/lib/torque/postgresql/adapter/database_statements.rb +63 -84
  3. data/lib/torque/postgresql/adapter/oid/array.rb +17 -0
  4. data/lib/torque/postgresql/adapter/oid/line.rb +2 -6
  5. data/lib/torque/postgresql/adapter/oid/range.rb +4 -4
  6. data/lib/torque/postgresql/adapter/oid.rb +1 -23
  7. data/lib/torque/postgresql/adapter/quoting.rb +13 -7
  8. data/lib/torque/postgresql/adapter/schema_creation.rb +7 -28
  9. data/lib/torque/postgresql/adapter/schema_definitions.rb +36 -0
  10. data/lib/torque/postgresql/adapter/schema_dumper.rb +90 -34
  11. data/lib/torque/postgresql/adapter/schema_overrides.rb +45 -0
  12. data/lib/torque/postgresql/adapter/schema_statements.rb +64 -49
  13. data/lib/torque/postgresql/arel/infix_operation.rb +15 -28
  14. data/lib/torque/postgresql/arel/nodes.rb +2 -2
  15. data/lib/torque/postgresql/arel/operations.rb +7 -1
  16. data/lib/torque/postgresql/arel/visitors.rb +3 -9
  17. data/lib/torque/postgresql/associations/association_scope.rb +23 -31
  18. data/lib/torque/postgresql/associations/belongs_to_many_association.rb +25 -0
  19. data/lib/torque/postgresql/associations/builder/belongs_to_many.rb +16 -0
  20. data/lib/torque/postgresql/attributes/builder/enum.rb +12 -9
  21. data/lib/torque/postgresql/attributes/builder/full_text_search.rb +121 -0
  22. data/lib/torque/postgresql/attributes/builder/period.rb +21 -21
  23. data/lib/torque/postgresql/attributes/builder.rb +49 -11
  24. data/lib/torque/postgresql/attributes/enum.rb +7 -7
  25. data/lib/torque/postgresql/attributes/enum_set.rb +7 -7
  26. data/lib/torque/postgresql/attributes/full_text_search.rb +19 -0
  27. data/lib/torque/postgresql/attributes/period.rb +2 -2
  28. data/lib/torque/postgresql/attributes.rb +0 -4
  29. data/lib/torque/postgresql/auxiliary_statement/recursive.rb +3 -3
  30. data/lib/torque/postgresql/base.rb +3 -10
  31. data/lib/torque/postgresql/collector.rb +1 -1
  32. data/lib/torque/postgresql/config.rb +95 -5
  33. data/lib/torque/postgresql/function.rb +61 -0
  34. data/lib/torque/postgresql/inheritance.rb +52 -36
  35. data/lib/torque/postgresql/predicate_builder/arel_attribute_handler.rb +33 -0
  36. data/lib/torque/postgresql/predicate_builder/array_handler.rb +47 -0
  37. data/lib/torque/postgresql/predicate_builder/enumerator_lazy_handler.rb +37 -0
  38. data/lib/torque/postgresql/predicate_builder/regexp_handler.rb +21 -0
  39. data/lib/torque/postgresql/predicate_builder.rb +35 -0
  40. data/lib/torque/postgresql/railtie.rb +112 -30
  41. data/lib/torque/postgresql/reflection/abstract_reflection.rb +12 -44
  42. data/lib/torque/postgresql/reflection/belongs_to_many_reflection.rb +4 -0
  43. data/lib/torque/postgresql/reflection/has_many_reflection.rb +4 -0
  44. data/lib/torque/postgresql/reflection/runtime_reflection.rb +1 -1
  45. data/lib/torque/postgresql/relation/inheritance.rb +4 -7
  46. data/lib/torque/postgresql/relation.rb +6 -10
  47. data/lib/torque/postgresql/schema_cache.rb +6 -12
  48. data/lib/torque/postgresql/version.rb +1 -1
  49. data/lib/torque/postgresql.rb +2 -1
  50. data/spec/initialize.rb +58 -0
  51. data/spec/mocks/cache_query.rb +21 -21
  52. data/spec/mocks/create_table.rb +6 -26
  53. data/spec/schema.rb +19 -12
  54. data/spec/spec_helper.rb +5 -1
  55. data/spec/tests/arel_spec.rb +32 -7
  56. data/spec/tests/auxiliary_statement_spec.rb +3 -3
  57. data/spec/tests/belongs_to_many_spec.rb +72 -5
  58. data/spec/tests/enum_set_spec.rb +12 -11
  59. data/spec/tests/enum_spec.rb +4 -2
  60. data/spec/tests/full_text_seach_test.rb +252 -0
  61. data/spec/tests/function_spec.rb +42 -0
  62. data/spec/tests/has_many_spec.rb +21 -8
  63. data/spec/tests/interval_spec.rb +1 -7
  64. data/spec/tests/period_spec.rb +61 -61
  65. data/spec/tests/predicate_builder_spec.rb +132 -0
  66. data/spec/tests/schema_spec.rb +2 -8
  67. data/spec/tests/table_inheritance_spec.rb +25 -26
  68. metadata +34 -39
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: torque-postgresql
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.1
4
+ version: 4.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Silva
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-14 00:00:00.000000000 Z
11
+ date: 2025-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '7.0'
19
+ version: '8.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '7.0'
26
+ version: '8.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pg
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,20 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '12.3'
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: 12.3.3
47
+ version: '13.0'
51
48
  type: :development
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
54
51
  requirements:
55
52
  - - "~>"
56
53
  - !ruby/object:Gem::Version
57
- version: '12.3'
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 12.3.3
54
+ version: '13.0'
61
55
  - !ruby/object:Gem::Dependency
62
56
  name: database_cleaner
63
57
  requirement: !ruby/object:Gem::Requirement
@@ -78,20 +72,14 @@ dependencies:
78
72
  requirements:
79
73
  - - "~>"
80
74
  - !ruby/object:Gem::Version
81
- version: '2.1'
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- version: 2.1.1
75
+ version: '3.1'
85
76
  type: :development
86
77
  prerelease: false
87
78
  version_requirements: !ruby/object:Gem::Requirement
88
79
  requirements:
89
80
  - - "~>"
90
81
  - !ruby/object:Gem::Version
91
- version: '2.1'
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- version: 2.1.1
82
+ version: '3.1'
95
83
  - !ruby/object:Gem::Dependency
96
84
  name: rspec
97
85
  requirement: !ruby/object:Gem::Requirement
@@ -99,9 +87,6 @@ dependencies:
99
87
  - - "~>"
100
88
  - !ruby/object:Gem::Version
101
89
  version: '3.5'
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- version: 3.5.0
105
90
  type: :development
106
91
  prerelease: false
107
92
  version_requirements: !ruby/object:Gem::Requirement
@@ -109,9 +94,6 @@ dependencies:
109
94
  - - "~>"
110
95
  - !ruby/object:Gem::Version
111
96
  version: '3.5'
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- version: 3.5.0
115
97
  - !ruby/object:Gem::Dependency
116
98
  name: factory_bot
117
99
  requirement: !ruby/object:Gem::Requirement
@@ -119,9 +101,6 @@ dependencies:
119
101
  - - "~>"
120
102
  - !ruby/object:Gem::Version
121
103
  version: '6.2'
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: 6.2.1
125
104
  type: :development
126
105
  prerelease: false
127
106
  version_requirements: !ruby/object:Gem::Requirement
@@ -129,25 +108,22 @@ dependencies:
129
108
  - - "~>"
130
109
  - !ruby/object:Gem::Version
131
110
  version: '6.2'
132
- - - ">="
133
- - !ruby/object:Gem::Version
134
- version: 6.2.1
135
111
  - !ruby/object:Gem::Dependency
136
112
  name: faker
137
113
  requirement: !ruby/object:Gem::Requirement
138
114
  requirements:
139
115
  - - "~>"
140
116
  - !ruby/object:Gem::Version
141
- version: '2.20'
117
+ version: '3.5'
142
118
  type: :development
143
119
  prerelease: false
144
120
  version_requirements: !ruby/object:Gem::Requirement
145
121
  requirements:
146
122
  - - "~>"
147
123
  - !ruby/object:Gem::Version
148
- version: '2.20'
124
+ version: '3.5'
149
125
  description: Add support to complex resources of PostgreSQL, like data types, array
150
- associations, and auxiliary statements (CTE)
126
+ associations, auxiliary statements (CTE), and full-text search (FTS)
151
127
  email:
152
128
  - me@carlosfsilva.com
153
129
  executables: []
@@ -162,6 +138,7 @@ files:
162
138
  - lib/torque/postgresql/adapter.rb
163
139
  - lib/torque/postgresql/adapter/database_statements.rb
164
140
  - lib/torque/postgresql/adapter/oid.rb
141
+ - lib/torque/postgresql/adapter/oid/array.rb
165
142
  - lib/torque/postgresql/adapter/oid/box.rb
166
143
  - lib/torque/postgresql/adapter/oid/circle.rb
167
144
  - lib/torque/postgresql/adapter/oid/enum.rb
@@ -174,6 +151,7 @@ files:
174
151
  - lib/torque/postgresql/adapter/schema_creation.rb
175
152
  - lib/torque/postgresql/adapter/schema_definitions.rb
176
153
  - lib/torque/postgresql/adapter/schema_dumper.rb
154
+ - lib/torque/postgresql/adapter/schema_overrides.rb
177
155
  - lib/torque/postgresql/adapter/schema_statements.rb
178
156
  - lib/torque/postgresql/arel.rb
179
157
  - lib/torque/postgresql/arel/infix_operation.rb
@@ -195,9 +173,11 @@ files:
195
173
  - lib/torque/postgresql/attributes.rb
196
174
  - lib/torque/postgresql/attributes/builder.rb
197
175
  - lib/torque/postgresql/attributes/builder/enum.rb
176
+ - lib/torque/postgresql/attributes/builder/full_text_search.rb
198
177
  - lib/torque/postgresql/attributes/builder/period.rb
199
178
  - lib/torque/postgresql/attributes/enum.rb
200
179
  - lib/torque/postgresql/attributes/enum_set.rb
180
+ - lib/torque/postgresql/attributes/full_text_search.rb
201
181
  - lib/torque/postgresql/attributes/lazy.rb
202
182
  - lib/torque/postgresql/attributes/period.rb
203
183
  - lib/torque/postgresql/autosave_association.rb
@@ -207,12 +187,18 @@ files:
207
187
  - lib/torque/postgresql/base.rb
208
188
  - lib/torque/postgresql/collector.rb
209
189
  - lib/torque/postgresql/config.rb
190
+ - lib/torque/postgresql/function.rb
210
191
  - lib/torque/postgresql/geometry_builder.rb
211
192
  - lib/torque/postgresql/i18n.rb
212
193
  - lib/torque/postgresql/inheritance.rb
213
194
  - lib/torque/postgresql/insert_all.rb
214
195
  - lib/torque/postgresql/migration.rb
215
196
  - lib/torque/postgresql/migration/command_recorder.rb
197
+ - lib/torque/postgresql/predicate_builder.rb
198
+ - lib/torque/postgresql/predicate_builder/arel_attribute_handler.rb
199
+ - lib/torque/postgresql/predicate_builder/array_handler.rb
200
+ - lib/torque/postgresql/predicate_builder/enumerator_lazy_handler.rb
201
+ - lib/torque/postgresql/predicate_builder/regexp_handler.rb
216
202
  - lib/torque/postgresql/railtie.rb
217
203
  - lib/torque/postgresql/reflection.rb
218
204
  - lib/torque/postgresql/reflection/abstract_reflection.rb
@@ -241,6 +227,7 @@ files:
241
227
  - spec/factories/texts.rb
242
228
  - spec/factories/users.rb
243
229
  - spec/factories/videos.rb
230
+ - spec/initialize.rb
244
231
  - spec/mocks/cache_query.rb
245
232
  - spec/mocks/create_table.rb
246
233
  - spec/models/activity.rb
@@ -273,12 +260,15 @@ files:
273
260
  - spec/tests/distinct_on_spec.rb
274
261
  - spec/tests/enum_set_spec.rb
275
262
  - spec/tests/enum_spec.rb
263
+ - spec/tests/full_text_seach_test.rb
264
+ - spec/tests/function_spec.rb
276
265
  - spec/tests/geometric_builder_spec.rb
277
266
  - spec/tests/has_many_spec.rb
278
267
  - spec/tests/insert_all_spec.rb
279
268
  - spec/tests/interval_spec.rb
280
269
  - spec/tests/lazy_spec.rb
281
270
  - spec/tests/period_spec.rb
271
+ - spec/tests/predicate_builder_spec.rb
282
272
  - spec/tests/quoting_spec.rb
283
273
  - spec/tests/relation_spec.rb
284
274
  - spec/tests/schema_spec.rb
@@ -287,6 +277,7 @@ homepage: https://github.com/crashtech/torque-postgresql
287
277
  licenses:
288
278
  - MIT
289
279
  metadata:
280
+ homepage_uri: https://torque.dev/postgresql
290
281
  source_code_uri: https://github.com/crashtech/torque-postgresql
291
282
  bug_tracker_uri: https://github.com/crashtech/torque-postgresql/issues
292
283
  changelog_uri: https://github.com/crashtech/torque-postgresql/releases
@@ -300,14 +291,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
300
291
  requirements:
301
292
  - - ">="
302
293
  - !ruby/object:Gem::Version
303
- version: 2.7.2
294
+ version: '3.2'
304
295
  required_rubygems_version: !ruby/object:Gem::Requirement
305
296
  requirements:
306
297
  - - ">="
307
298
  - !ruby/object:Gem::Version
308
299
  version: 1.8.11
309
300
  requirements: []
310
- rubygems_version: 3.4.10
301
+ rubygems_version: 3.4.19
311
302
  signing_key:
312
303
  specification_version: 4
313
304
  summary: ActiveRecord extension to access PostgreSQL advanced resources
@@ -321,6 +312,7 @@ test_files:
321
312
  - spec/factories/texts.rb
322
313
  - spec/factories/users.rb
323
314
  - spec/factories/videos.rb
315
+ - spec/initialize.rb
324
316
  - spec/mocks/cache_query.rb
325
317
  - spec/mocks/create_table.rb
326
318
  - spec/models/activity.rb
@@ -353,12 +345,15 @@ test_files:
353
345
  - spec/tests/distinct_on_spec.rb
354
346
  - spec/tests/enum_set_spec.rb
355
347
  - spec/tests/enum_spec.rb
348
+ - spec/tests/full_text_seach_test.rb
349
+ - spec/tests/function_spec.rb
356
350
  - spec/tests/geometric_builder_spec.rb
357
351
  - spec/tests/has_many_spec.rb
358
352
  - spec/tests/insert_all_spec.rb
359
353
  - spec/tests/interval_spec.rb
360
354
  - spec/tests/lazy_spec.rb
361
355
  - spec/tests/period_spec.rb
356
+ - spec/tests/predicate_builder_spec.rb
362
357
  - spec/tests/quoting_spec.rb
363
358
  - spec/tests/relation_spec.rb
364
359
  - spec/tests/schema_spec.rb