rom-sql 3.4.0 → 3.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 77e9a1c6c69b4539e55608281a06efbb7cac1b8c5723ab96be497aa982ed6677
4
- data.tar.gz: 3d1690050c29b5a09f3e72fc952eb32b1e7e5b3e421d0bd157cdeec11bb98c14
3
+ metadata.gz: dd16261df5aee3251449218ae148340eff0718a1fdc2da7ed15504810f4a0b57
4
+ data.tar.gz: dc889208691825ead3b1bd5099d24cf102a2c62edfc92a5dff9a5a47a3dbebf5
5
5
  SHA512:
6
- metadata.gz: 9f1c1f6c059d88c2b5ad4872aea4f071799fdabab42d45a1a8fea4393361925883d4286a6543e58fa5ada1d22cee9fab691086e3f1a82a0f1ceecfac11ef918d
7
- data.tar.gz: 42dcefd8414fc1b5a2afe818efff6ed3a410d0aea790ff9400b6f42127990781174ee83944d5791114d3b6fd49208c9a839e76d7afb3007cc19e5b3be2705172
6
+ metadata.gz: 9af6cf7c57dea4550c2ce843005315cbf8cea6222b5e2c8fba9061ba22082cb111d5623ef1183e11dd9f59426f5eb572bcc95781f4aa94df0bfa883310882f10
7
+ data.tar.gz: ea1aadd57d67f6f6c3bbfa337e72e82817a9bc17475653b4d715e8a86068e3643a7c18f96840bec62c9af37fdd13badd3ed7687b5560b9e555dc593e874f1ac5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  <!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
2
2
 
3
+ ## 3.6.0
4
+
5
+ ### Added
6
+
7
+ - Add ROM::SQL::RakeSupport.migration_options for passing custom options to migrator (@wuarmin)
8
+
9
+ ### Changed
10
+
11
+ - Upgraded to the latest versions of dry-rb dependencies, compatible with rom 5.3 (@flash-gordon)
12
+
13
+ [Compare v3.5.0...v3.6.0](https://github.com/rom-rb/rom-sql/compare/v3.5.0...v3.6.0)
14
+
15
+ ## 3.5.0 2021-03-26
16
+
17
+
18
+ ### Fixed
19
+
20
+ - Restored the fix for #390 that was lost by an accident in 3.3.3 and 3.4.0 (@solnic)
21
+
22
+ ### Added
23
+
24
+ - Support for using partial indixes in PG upsert commands (issue #394 fixed via #395) (@smaximov)
25
+
26
+ [Compare v3.4.0...v3.5.0](https://github.com/rom-rb/rom-sql/compare/v3.4.0...v3.5.0)
27
+
3
28
  ## 3.4.0 2021-03-19
4
29
 
5
30
 
@@ -85,7 +85,7 @@ module ROM
85
85
  class Upsert < SQL::Commands::Create
86
86
  adapter :sql
87
87
 
88
- defines :constraint, :conflict_target, :update_statement, :update_where
88
+ defines :constraint, :conflict_target, :conflict_where, :update_statement, :update_where
89
89
 
90
90
  # @!attribute [r] constraint
91
91
  # @return [Symbol] the name of the constraint expected to be violated
@@ -95,6 +95,10 @@ module ROM
95
95
  # @return [Object] the column or expression to handle a violation on
96
96
  option :conflict_target, default: -> { self.class.conflict_target }
97
97
 
98
+ # @!attribute [r] conflict_where
99
+ # @return [Object] the index filter, when using a partial index to determine uniqueness
100
+ option :conflict_where, default: -> { self.class.conflict_where }
101
+
98
102
  # @!attribute [r] update_statement
99
103
  # @return [Object] the update statement which will be executed in case of a violation
100
104
  option :update_statement, default: -> { self.class.update_statement }
@@ -123,6 +127,7 @@ module ROM
123
127
  @upsert_options ||= {
124
128
  constraint: constraint,
125
129
  target: conflict_target,
130
+ conflict_where: conflict_where,
126
131
  update_where: update_where,
127
132
  update: update_statement
128
133
  }
@@ -73,18 +73,28 @@ module ROM
73
73
  #
74
74
  # @api private
75
75
  def qualified(table_alias = nil)
76
- meta(
77
- func: ::Sequel::SQL::Function.new(func.name, *func.args.map { |arg| arg.respond_to?(:qualified) ? arg.qualified(table_alias) : arg })
78
- )
76
+ new { |arg|
77
+ arg.respond_to?(:qualified) ? arg.qualified(table_alias) : arg
78
+ }
79
79
  end
80
80
 
81
81
  # @see Attribute#qualified_projection
82
82
  #
83
83
  # @api private
84
84
  def qualified_projection(table_alias = nil)
85
- meta(
86
- func: ::Sequel::SQL::Function.new(func.name, *func.args.map { |arg| arg.respond_to?(:qualified_projection) ? arg.qualified_projection(table_alias) : arg })
87
- )
85
+ new { |arg|
86
+ arg.respond_to?(:qualified_projection) ? arg.qualified_projection(table_alias) : arg
87
+ }
88
+ end
89
+
90
+ # @api private
91
+ def new(&block)
92
+ case func
93
+ when ::Sequel::SQL::Function
94
+ meta(func: ::Sequel::SQL::Function.new!(func.name, func.args.map(&block), func.opts))
95
+ else
96
+ meta(func: func)
97
+ end
88
98
  end
89
99
 
90
100
  # @see Attribute#qualified?
@@ -10,7 +10,7 @@ module ROM
10
10
 
11
11
  class << self
12
12
  def run_migrations(options = {})
13
- gateway.run_migrations(options)
13
+ gateway.run_migrations(migration_options.merge(options))
14
14
  end
15
15
 
16
16
  def create_migration(*args)
@@ -24,6 +24,13 @@ module ROM
24
24
  # @api public
25
25
  attr_accessor :env
26
26
 
27
+
28
+ # Migration options, which are passed to `ROM::SQL::RakeSupport.run_migrations`. You can
29
+ # set them in the `db:setup` task with `ROM::SQL::RakeSupport.migration_options = { ... }`
30
+ #
31
+ # @api public
32
+ attr_accessor :migration_options
33
+
27
34
  private
28
35
 
29
36
  def gateway
@@ -40,6 +47,7 @@ module ROM
40
47
  end
41
48
 
42
49
  @env = nil
50
+ @migration_options = {}
43
51
  end
44
52
  end
45
53
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ROM
4
4
  module SQL
5
- VERSION = '3.4.0'.freeze
5
+ VERSION = '3.6.0'.freeze
6
6
  end
7
7
  end
data/lib/rom/sql.rb CHANGED
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/equalizer'
4
-
5
3
  require 'rom/core'
6
4
 
7
5
  require 'rom/sql/version'
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.4.0
4
+ version: 3.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Solnica
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-19 00:00:00.000000000 Z
11
+ date: 2022-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel
@@ -44,20 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.5'
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: '0.5'
47
+ version: '1.0'
51
48
  type: :runtime
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: '0.5'
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0.5'
54
+ version: '1.0'
61
55
  - !ruby/object:Gem::Dependency
62
56
  name: rom
63
57
  requirement: !ruby/object:Gem::Requirement
@@ -234,14 +228,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
234
228
  requirements:
235
229
  - - ">="
236
230
  - !ruby/object:Gem::Version
237
- version: 2.4.0
231
+ version: 2.7.0
238
232
  required_rubygems_version: !ruby/object:Gem::Requirement
239
233
  requirements:
240
234
  - - ">="
241
235
  - !ruby/object:Gem::Version
242
236
  version: '0'
243
237
  requirements: []
244
- rubygems_version: 3.1.4
238
+ rubygems_version: 3.3.7
245
239
  signing_key:
246
240
  specification_version: 4
247
241
  summary: SQL databases support for ROM