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 +4 -4
- data/CHANGELOG.md +25 -0
- data/lib/rom/sql/extensions/postgres/commands.rb +6 -1
- data/lib/rom/sql/function.rb +16 -6
- data/lib/rom/sql/tasks/migration_tasks.rake +9 -1
- data/lib/rom/sql/version.rb +1 -1
- data/lib/rom/sql.rb +0 -2
- metadata +6 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd16261df5aee3251449218ae148340eff0718a1fdc2da7ed15504810f4a0b57
|
4
|
+
data.tar.gz: dc889208691825ead3b1bd5099d24cf102a2c62edfc92a5dff9a5a47a3dbebf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
}
|
data/lib/rom/sql/function.rb
CHANGED
@@ -73,18 +73,28 @@ module ROM
|
|
73
73
|
#
|
74
74
|
# @api private
|
75
75
|
def qualified(table_alias = nil)
|
76
|
-
|
77
|
-
|
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
|
-
|
86
|
-
|
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
|
data/lib/rom/sql/version.rb
CHANGED
data/lib/rom/sql.rb
CHANGED
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
|
+
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:
|
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
|
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
|
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.
|
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.
|
238
|
+
rubygems_version: 3.3.7
|
245
239
|
signing_key:
|
246
240
|
specification_version: 4
|
247
241
|
summary: SQL databases support for ROM
|