rom-sql 3.1.0 → 3.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +214 -101
  3. data/LICENSE +1 -1
  4. data/README.md +12 -54
  5. data/lib/rom-sql.rb +2 -0
  6. data/lib/rom/plugins/relation/sql/auto_restrictions.rb +2 -0
  7. data/lib/rom/plugins/relation/sql/instrumentation.rb +2 -0
  8. data/lib/rom/plugins/relation/sql/postgres/explain.rb +6 -7
  9. data/lib/rom/plugins/relation/sql/postgres/full_text_search.rb +53 -0
  10. data/lib/rom/plugins/relation/sql/postgres/streaming.rb +108 -0
  11. data/lib/rom/sql.rb +2 -0
  12. data/lib/rom/sql/associations.rb +2 -0
  13. data/lib/rom/sql/associations/core.rb +3 -1
  14. data/lib/rom/sql/associations/many_to_many.rb +3 -1
  15. data/lib/rom/sql/associations/many_to_one.rb +2 -0
  16. data/lib/rom/sql/associations/one_to_many.rb +2 -0
  17. data/lib/rom/sql/associations/one_to_one.rb +2 -0
  18. data/lib/rom/sql/associations/one_to_one_through.rb +2 -0
  19. data/lib/rom/sql/associations/self_ref.rb +2 -0
  20. data/lib/rom/sql/attribute.rb +26 -7
  21. data/lib/rom/sql/attribute_aliasing.rb +28 -0
  22. data/lib/rom/sql/commands.rb +2 -0
  23. data/lib/rom/sql/commands/create.rb +2 -0
  24. data/lib/rom/sql/commands/delete.rb +2 -0
  25. data/lib/rom/sql/commands/error_wrapper.rb +2 -0
  26. data/lib/rom/sql/commands/update.rb +2 -0
  27. data/lib/rom/sql/dsl.rb +11 -3
  28. data/lib/rom/sql/error.rb +2 -0
  29. data/lib/rom/sql/errors.rb +2 -0
  30. data/lib/rom/sql/extensions.rb +2 -0
  31. data/lib/rom/sql/extensions/active_support_notifications.rb +2 -0
  32. data/lib/rom/sql/extensions/mysql.rb +2 -0
  33. data/lib/rom/sql/extensions/mysql/type_builder.rb +2 -0
  34. data/lib/rom/sql/extensions/postgres.rb +3 -0
  35. data/lib/rom/sql/extensions/postgres/commands.rb +3 -1
  36. data/lib/rom/sql/extensions/postgres/type_builder.rb +6 -4
  37. data/lib/rom/sql/extensions/postgres/type_serializer.rb +2 -0
  38. data/lib/rom/sql/extensions/postgres/types.rb +2 -0
  39. data/lib/rom/sql/extensions/postgres/types/array.rb +6 -4
  40. data/lib/rom/sql/extensions/postgres/types/array_types.rb +3 -1
  41. data/lib/rom/sql/extensions/postgres/types/geometric.rb +2 -0
  42. data/lib/rom/sql/extensions/postgres/types/json.rb +13 -11
  43. data/lib/rom/sql/extensions/postgres/types/ltree.rb +25 -23
  44. data/lib/rom/sql/extensions/postgres/types/network.rb +2 -0
  45. data/lib/rom/sql/extensions/postgres/types/range.rb +2 -0
  46. data/lib/rom/sql/extensions/rails_log_subscriber.rb +2 -0
  47. data/lib/rom/sql/extensions/sqlite.rb +2 -0
  48. data/lib/rom/sql/extensions/sqlite/type_builder.rb +2 -0
  49. data/lib/rom/sql/extensions/sqlite/types.rb +2 -0
  50. data/lib/rom/sql/foreign_key.rb +3 -1
  51. data/lib/rom/sql/function.rb +14 -3
  52. data/lib/rom/sql/gateway.rb +6 -1
  53. data/lib/rom/sql/group_dsl.rb +2 -0
  54. data/lib/rom/sql/index.rb +2 -0
  55. data/lib/rom/sql/join_dsl.rb +2 -0
  56. data/lib/rom/sql/mapper_compiler.rb +2 -0
  57. data/lib/rom/sql/migration.rb +5 -3
  58. data/lib/rom/sql/migration/inline_runner.rb +2 -0
  59. data/lib/rom/sql/migration/migrator.rb +4 -2
  60. data/lib/rom/sql/migration/recorder.rb +2 -0
  61. data/lib/rom/sql/migration/runner.rb +4 -2
  62. data/lib/rom/sql/migration/schema_diff.rb +2 -0
  63. data/lib/rom/sql/migration/template.rb +2 -0
  64. data/lib/rom/sql/migration/writer.rb +12 -4
  65. data/lib/rom/sql/order_dsl.rb +2 -0
  66. data/lib/rom/sql/plugin/associates.rb +4 -2
  67. data/lib/rom/sql/plugin/nullify.rb +2 -0
  68. data/lib/rom/sql/plugin/pagination.rb +2 -0
  69. data/lib/rom/sql/plugins.rb +2 -0
  70. data/lib/rom/sql/projection_dsl.rb +3 -1
  71. data/lib/rom/sql/rake_task.rb +2 -0
  72. data/lib/rom/sql/relation.rb +3 -1
  73. data/lib/rom/sql/relation/reading.rb +6 -4
  74. data/lib/rom/sql/relation/writing.rb +2 -0
  75. data/lib/rom/sql/restriction_dsl.rb +9 -1
  76. data/lib/rom/sql/schema.rb +16 -2
  77. data/lib/rom/sql/schema/attributes_inferrer.rb +5 -3
  78. data/lib/rom/sql/schema/dsl.rb +3 -1
  79. data/lib/rom/sql/schema/index_dsl.rb +5 -2
  80. data/lib/rom/sql/schema/inferrer.rb +12 -8
  81. data/lib/rom/sql/schema/type_builder.rb +4 -2
  82. data/lib/rom/sql/spec/support.rb +5 -3
  83. data/lib/rom/sql/tasks/migration_tasks.rake +16 -11
  84. data/lib/rom/sql/transaction.rb +2 -0
  85. data/lib/rom/sql/type_dsl.rb +2 -0
  86. data/lib/rom/sql/type_extensions.rb +3 -1
  87. data/lib/rom/sql/type_serializer.rb +2 -0
  88. data/lib/rom/sql/types.rb +2 -0
  89. data/lib/rom/sql/version.rb +3 -1
  90. data/lib/rom/sql/wrap.rb +2 -0
  91. data/lib/rom/types/values.rb +2 -0
  92. metadata +25 -45
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rom/schema'
2
4
 
3
5
  require 'rom/sql/schema/dsl'
@@ -65,6 +67,18 @@ module ROM
65
67
  new(map { |attr| attr.qualified(table_alias) })
66
68
  end
67
69
 
70
+ # Return a new schema with attributes that are aliased
71
+ # and marked as qualified
72
+ #
73
+ # Intended to be used when passing attributes to `dataset#select`
74
+ #
75
+ # @return [Schema]
76
+ #
77
+ # @api public
78
+ def qualified_projection(table_alias = nil)
79
+ new(map { |attr| attr.qualified_projection(table_alias) })
80
+ end
81
+
68
82
  # Project a schema
69
83
  #
70
84
  # @see ROM::Schema#project
@@ -127,7 +141,7 @@ module ROM
127
141
  #
128
142
  # @api public
129
143
  def call(relation)
130
- relation.new(relation.dataset.select(*self), schema: self)
144
+ relation.new(relation.dataset.select(*self.qualified_projection), schema: self)
131
145
  end
132
146
 
133
147
  # Return an empty schema
@@ -142,7 +156,7 @@ module ROM
142
156
  # Finalize all attributes by qualifying them and initializing primary key names
143
157
  #
144
158
  # @api private
145
- def finalize_attributes!(options = EMPTY_HASH)
159
+ def finalize_attributes!(**options)
146
160
  super do
147
161
  @attributes = map(&:qualified)
148
162
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'dry/core/class_attributes'
2
4
 
3
5
  module ROM
@@ -22,8 +24,8 @@ module ROM
22
24
 
23
25
  columns = filter_columns(gateway.connection.schema(dataset))
24
26
 
25
- inferred = columns.map do |(name, definition)|
26
- type = type_builder.(definition)
27
+ inferred = columns.map do |name, definition|
28
+ type = type_builder.(**definition)
27
29
 
28
30
  attr_class.new(type.meta(source: schema.name), name: name) if type
29
31
  end.compact
@@ -42,7 +44,7 @@ module ROM
42
44
 
43
45
  # @api private
44
46
  def filter_columns(schema)
45
- schema.reject { |(_, definition)| definition[:db_type] == CONSTRAINT_DB_TYPE }
47
+ schema.reject { |_, definition| definition[:db_type] == CONSTRAINT_DB_TYPE }
46
48
  end
47
49
  end
48
50
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rom/sql/schema/index_dsl'
2
4
 
3
5
  module ROM
@@ -15,7 +17,7 @@ module ROM
15
17
  #
16
18
  # @api public
17
19
  def indexes(&block)
18
- @index_dsl = IndexDSL.new(options, &block)
20
+ @index_dsl = IndexDSL.new(**options, &block)
19
21
  end
20
22
 
21
23
  private
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'set'
2
4
 
3
5
  module ROM
@@ -19,6 +21,7 @@ module ROM
19
21
 
20
22
  instance_exec(&block)
21
23
  end
24
+ ruby2_keywords(:initialize) if respond_to?(:ruby2_keywords, true)
22
25
 
23
26
  # @api public
24
27
  def index(*attributes, **options)
@@ -28,7 +31,7 @@ module ROM
28
31
  # @api private
29
32
  def call(schema_name, attrs)
30
33
  attributes = attrs.map do |attr|
31
- attr_class.new(attr[:type], attr[:options] || {}).meta(source: schema_name)
34
+ attr_class.new(attr[:type], **(attr[:options] || {})).meta(source: schema_name)
32
35
  end
33
36
 
34
37
  registry.map { |attr_names, options|
@@ -44,7 +47,7 @@ module ROM
44
47
  attributes.find { |a| a.name == name }.unwrap
45
48
  end
46
49
 
47
- Index.new(index_attributes, options)
50
+ Index.new(index_attributes, **options)
48
51
  end
49
52
  end
50
53
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'set'
2
4
 
3
5
  require 'rom/sql/schema/type_builder'
@@ -32,9 +34,9 @@ module ROM
32
34
  # @api private
33
35
  def call(schema, gateway)
34
36
  if enabled?
35
- infer_from_database(gateway, schema, super)
37
+ infer_from_database(gateway, schema, **super)
36
38
  else
37
- infer_from_attributes(gateway, schema, super)
39
+ infer_from_attributes(gateway, schema, **super)
38
40
  end
39
41
  rescue Sequel::Error => error
40
42
  on_error(schema.name, error)
@@ -54,7 +56,7 @@ module ROM
54
56
  end
55
57
 
56
58
  # @api private
57
- def infer_from_attributes(gateway, schema, attributes:, **rest)
59
+ def infer_from_attributes(_gateway, schema, attributes:, **rest)
58
60
  indexes = schema.indexes | indexes_from_attributes(attributes)
59
61
  foreign_keys = foreign_keys_from_attributes(attributes)
60
62
 
@@ -69,7 +71,8 @@ module ROM
69
71
  if gateway.connection.respond_to?(:indexes)
70
72
  dataset = schema.name.dataset
71
73
 
72
- gateway.connection.indexes(dataset).map { |index_name, columns:, unique:, **rest|
74
+ gateway.connection.indexes(dataset).map { |index_name, definition|
75
+ columns, unique = definition.values_at(:columns, :unique)
73
76
  attrs = columns.map { |name| attributes[name] }
74
77
 
75
78
  SQL::Index.new(attrs, name: index_name, unique: unique)
@@ -83,7 +86,8 @@ module ROM
83
86
  def foreign_keys_from_database(gateway, schema, attributes)
84
87
  dataset = schema.name.dataset
85
88
 
86
- gateway.connection.foreign_key_list(dataset).map { |columns:, table:, key:, **rest|
89
+ gateway.connection.foreign_key_list(dataset).map { |definition|
90
+ columns, table, key = definition.values_at(:columns, :table, :key)
87
91
  attrs = columns.map { |name| attributes[name] }
88
92
 
89
93
  SQL::ForeignKey.new(attrs, table, parent_keys: key)
@@ -147,9 +151,9 @@ module ROM
147
151
  raise e
148
152
  elsif !silent
149
153
  warn "[#{dataset}] failed to infer schema. " \
150
- "Make sure tables exist before ROM container is set up. " \
151
- "This may also happen when your migration tasks load ROM container, " \
152
- "which is not needed for migrations as only the connection is required " \
154
+ 'Make sure tables exist before ROM container is set up. ' \
155
+ 'This may also happen when your migration tasks load ROM container, ' \
156
+ 'which is not needed for migrations as only the connection is required ' \
153
157
  "(#{e.message})"
154
158
  end
155
159
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ROM
2
4
  module SQL
3
5
  class Schema
@@ -37,9 +39,9 @@ module ROM
37
39
 
38
40
  def call(primary_key:, db_type:, type:, allow_null:, **rest)
39
41
  if primary_key
40
- map_pk_type(type, db_type, rest)
42
+ map_pk_type(type, db_type, **rest)
41
43
  else
42
- mapped_type = map_type(type, db_type, rest)
44
+ mapped_type = map_type(type, db_type, **rest)
43
45
 
44
46
  if mapped_type
45
47
  read_type = mapped_type.meta[:read]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  if defined? JRUBY_VERSION
2
4
  USING_JRUBY = true
3
5
  else
@@ -5,15 +7,15 @@ else
5
7
  end
6
8
 
7
9
  if USING_JRUBY
8
- SEQUEL_TEST_DB_URI = "jdbc:sqlite::memory:"
10
+ SEQUEL_TEST_DB_URI = 'jdbc:sqlite::memory:'
9
11
  else
10
- SEQUEL_TEST_DB_URI = "sqlite::memory"
12
+ SEQUEL_TEST_DB_URI = 'sqlite::memory'
11
13
  end
12
14
 
13
15
  DB = Sequel.connect(SEQUEL_TEST_DB_URI)
14
16
 
15
17
  def seed(db = DB)
16
- db.run("CREATE TABLE users (id INTEGER PRIMARY KEY, name STRING)")
18
+ db.run('CREATE TABLE users (id INTEGER PRIMARY KEY, name STRING)')
17
19
 
18
20
  db[:users].insert(id: 1, name: 'Jane')
19
21
  db[:users].insert(id: 2, name: 'Joe')
@@ -1,5 +1,7 @@
1
- require "pathname"
2
- require "fileutils"
1
+ # frozen_string_literal: true
2
+
3
+ require 'pathname'
4
+ require 'fileutils'
3
5
 
4
6
  module ROM
5
7
  module SQL
@@ -27,7 +29,10 @@ module ROM
27
29
  def gateway
28
30
  if env.nil?
29
31
  Gateway.instance ||
30
- raise(MissingEnv, "Set up a configuration with ROM::SQL::RakeSupport.env= in the db:setup task")
32
+ raise(
33
+ MissingEnv,
34
+ 'Set up a configuration with ROM::SQL::RakeSupport.env= in the db:setup task'
35
+ )
31
36
  else
32
37
  env.gateways[:default]
33
38
  end
@@ -41,36 +46,36 @@ end
41
46
 
42
47
  namespace :db do
43
48
  task :rom_configuration do
44
- Rake::Task["db:setup"].invoke
49
+ Rake::Task['db:setup'].invoke
45
50
  end
46
51
 
47
- desc "Perform migration reset (full erase and migration up)"
52
+ desc 'Perform migration reset (full erase and migration up)'
48
53
  task reset: :rom_configuration do
49
54
  ROM::SQL::RakeSupport.run_migrations(target: 0)
50
55
  ROM::SQL::RakeSupport.run_migrations
51
- puts "<= db:reset executed"
56
+ puts '<= db:reset executed'
52
57
  end
53
58
 
54
- desc "Migrate the database (options [version_number])]"
59
+ desc 'Migrate the database (options [version_number])]'
55
60
  task :migrate, [:version] => :rom_configuration do |_, args|
56
61
  version = args[:version]
57
62
 
58
63
  if version.nil?
59
64
  ROM::SQL::RakeSupport.run_migrations
60
- puts "<= db:migrate executed"
65
+ puts '<= db:migrate executed'
61
66
  else
62
67
  ROM::SQL::RakeSupport.run_migrations(target: version.to_i)
63
68
  puts "<= db:migrate version=[#{version}] executed"
64
69
  end
65
70
  end
66
71
 
67
- desc "Perform migration down (erase all data)"
72
+ desc 'Perform migration down (removes all tables)'
68
73
  task clean: :rom_configuration do
69
74
  ROM::SQL::RakeSupport.run_migrations(target: 0)
70
- puts "<= db:clean executed"
75
+ puts '<= db:clean executed'
71
76
  end
72
77
 
73
- desc "Create a migration (parameters: NAME, VERSION)"
78
+ desc 'Create a migration (parameters: NAME, VERSION)'
74
79
  task :create_migration, [:name, :version] => :rom_configuration do |_, args|
75
80
  name, version = args.values_at(:name, :version)
76
81
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ROM
2
4
  module SQL
3
5
  # @api private
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ROM
2
4
  module SQL
3
5
  # Type DSL used by Types.define method
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ROM
2
4
  module SQL
3
5
  # Type-specific methods
@@ -7,7 +9,7 @@ module ROM
7
9
  class << self
8
10
  # Gets extensions for a type
9
11
  #
10
- # @param [Dry::Types::Type] wrapped
12
+ # @param type [Dry::Types::Type] wrapped
11
13
  #
12
14
  # @return [Hash]
13
15
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'dry/core/class_attributes'
2
4
 
3
5
  module ROM
data/lib/rom/sql/types.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'sequel/core'
2
4
  require 'sequel/sql'
3
5
 
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ROM
2
4
  module SQL
3
- VERSION = '3.1.0'.freeze
5
+ VERSION = '3.3.3'.freeze
4
6
  end
5
7
  end
data/lib/rom/sql/wrap.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rom/relation/wrap'
2
4
 
3
5
  module ROM
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rom/sql/types'
2
4
 
3
5
  module ROM
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rom-sql
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Solnica
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-16 00:00:00.000000000 Z
11
+ date: 2021-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.49'
27
- - !ruby/object:Gem::Dependency
28
- name: dry-equalizer
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '0.2'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '0.2'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: dry-types
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,48 +44,40 @@ dependencies:
58
44
  requirements:
59
45
  - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: '0.4'
47
+ version: '0.5'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0.5'
62
51
  type: :runtime
63
52
  prerelease: false
64
53
  version_requirements: !ruby/object:Gem::Requirement
65
54
  requirements:
66
55
  - - "~>"
67
56
  - !ruby/object:Gem::Version
68
- version: '0.4'
57
+ version: '0.5'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0.5'
69
61
  - !ruby/object:Gem::Dependency
70
- name: rom-core
62
+ name: rom
71
63
  requirement: !ruby/object:Gem::Requirement
72
64
  requirements:
73
65
  - - "~>"
74
66
  - !ruby/object:Gem::Version
75
- version: '5.0'
67
+ version: '5.2'
76
68
  - - ">="
77
69
  - !ruby/object:Gem::Version
78
- version: 5.0.1
70
+ version: 5.2.1
79
71
  type: :runtime
80
72
  prerelease: false
81
73
  version_requirements: !ruby/object:Gem::Requirement
82
74
  requirements:
83
75
  - - "~>"
84
76
  - !ruby/object:Gem::Version
85
- version: '5.0'
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: 5.0.1
89
- - !ruby/object:Gem::Dependency
90
- name: appraisal
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
77
+ version: '5.2'
100
78
  - - ">="
101
79
  - !ruby/object:Gem::Version
102
- version: '0'
80
+ version: 5.2.1
103
81
  - !ruby/object:Gem::Dependency
104
82
  name: bundler
105
83
  requirement: !ruby/object:Gem::Requirement
@@ -120,28 +98,28 @@ dependencies:
120
98
  requirements:
121
99
  - - "~>"
122
100
  - !ruby/object:Gem::Version
123
- version: '10.0'
101
+ version: '13.0'
124
102
  type: :development
125
103
  prerelease: false
126
104
  version_requirements: !ruby/object:Gem::Requirement
127
105
  requirements:
128
106
  - - "~>"
129
107
  - !ruby/object:Gem::Version
130
- version: '10.0'
108
+ version: '13.0'
131
109
  - !ruby/object:Gem::Dependency
132
110
  name: rspec
133
111
  requirement: !ruby/object:Gem::Requirement
134
112
  requirements:
135
113
  - - "~>"
136
114
  - !ruby/object:Gem::Version
137
- version: '3.5'
115
+ version: '3.9'
138
116
  type: :development
139
117
  prerelease: false
140
118
  version_requirements: !ruby/object:Gem::Requirement
141
119
  requirements:
142
120
  - - "~>"
143
121
  - !ruby/object:Gem::Version
144
- version: '3.5'
122
+ version: '3.9'
145
123
  description: SQL databases support for ROM
146
124
  email:
147
125
  - piotr.solnica@gmail.com
@@ -156,6 +134,8 @@ files:
156
134
  - lib/rom/plugins/relation/sql/auto_restrictions.rb
157
135
  - lib/rom/plugins/relation/sql/instrumentation.rb
158
136
  - lib/rom/plugins/relation/sql/postgres/explain.rb
137
+ - lib/rom/plugins/relation/sql/postgres/full_text_search.rb
138
+ - lib/rom/plugins/relation/sql/postgres/streaming.rb
159
139
  - lib/rom/sql.rb
160
140
  - lib/rom/sql/associations.rb
161
141
  - lib/rom/sql/associations/core.rb
@@ -246,7 +226,7 @@ metadata:
246
226
  documentation_uri: https://api.rom-rb.org/rom-sql/
247
227
  mailing_list_uri: https://discourse.rom-rb.org/
248
228
  bug_tracker_uri: https://github.com/rom-rb/rom-sql/issues
249
- post_install_message:
229
+ post_install_message:
250
230
  rdoc_options: []
251
231
  require_paths:
252
232
  - lib
@@ -261,8 +241,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
261
241
  - !ruby/object:Gem::Version
262
242
  version: '0'
263
243
  requirements: []
264
- rubygems_version: 3.0.3
265
- signing_key:
244
+ rubygems_version: 3.2.3
245
+ signing_key:
266
246
  specification_version: 4
267
247
  summary: SQL databases support for ROM
268
248
  test_files: []