sequel-activerecord_connection 1.2.0 → 1.2.4
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 +20 -0
- data/lib/sequel/extensions/activerecord_connection/mysql2.rb +16 -7
- data/lib/sequel/extensions/activerecord_connection/postgres.rb +6 -14
- data/lib/sequel/extensions/activerecord_connection/sqlite.rb +9 -1
- data/lib/sequel/extensions/activerecord_connection.rb +13 -5
- data/sequel-activerecord_connection.gemspec +3 -3
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d73b44077fae26fe7a6fccac31b4884b377c145c23cfd39f39c70666b71580a
|
4
|
+
data.tar.gz: 9db866222fa1aabb42e6b356d3fa04eeb3cf7a4e5982218abbb1002df5fbaefc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01c5c7b4c437cd28b532d9b39bf5598afa47699cdb05cc3cc5ac51efb620c59af3b7936cedcccac999b1ccae8062fa903b2fa56b9b6bc0c2fa3e941cc97dd4fc
|
7
|
+
data.tar.gz: 296510c5a357a16bb8b7cafeccac2f28b1b0a59175927b387b80c9684bf8d45921f7c870c39a766d2b190ac30cb3cdba735c2a9b09260a8b3bb9a05c6db2709a
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,23 @@
|
|
1
|
+
## 1.2.4 (2021-09-27)
|
2
|
+
|
3
|
+
* Allow using with Active Record 7.0 (@janko)
|
4
|
+
|
5
|
+
* Use `ActiveRecord.default_timezone` on Active Record 7.0 or greater (@janko)
|
6
|
+
|
7
|
+
## 1.2.3 (2021-07-17)
|
8
|
+
|
9
|
+
* Bump `after_commit_everywhere` dependency to `~> 1.0` (@wivarn)
|
10
|
+
|
11
|
+
## 1.2.2 (2021-01-11)
|
12
|
+
|
13
|
+
* Ensure Active Record queries inside a Sequel transaction are typemapped correctly in postgres adapter (@janko)
|
14
|
+
|
15
|
+
* Fix executing Active Record queries inside a Sequel transaction not working in mysql2 adapter (@janko)
|
16
|
+
|
17
|
+
## 1.2.1 (2021-01-10)
|
18
|
+
|
19
|
+
* Fix original mysql2 query options not being restored after nested `DB#synchronize` calls, e.g. when using Sequel transactions (@janko)
|
20
|
+
|
1
21
|
## 1.2.0 (2020-11-15)
|
2
22
|
|
3
23
|
* Attempt support for [activerecord-sqlserver-adapter](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter) (@janko)
|
@@ -6,16 +6,25 @@ module Sequel
|
|
6
6
|
def synchronize(*)
|
7
7
|
super do |conn|
|
8
8
|
# required for prepared statements
|
9
|
-
conn.instance_variable_set(:@sequel_default_query_options, conn.query_options.dup)
|
10
9
|
Utils.add_prepared_statements_cache(conn)
|
11
10
|
|
12
|
-
conn
|
11
|
+
yield conn
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def _execute(conn, sql, opts)
|
18
|
+
if conn.instance_variable_defined?(:@sequel_default_query_options)
|
19
|
+
return super
|
20
|
+
end
|
13
21
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
22
|
+
conn.instance_variable_set(:@sequel_default_query_options, conn.query_options.dup)
|
23
|
+
conn.query_options.merge!(as: :hash, symbolize_keys: true, cache_rows: false)
|
24
|
+
begin
|
25
|
+
super
|
26
|
+
ensure
|
27
|
+
conn.query_options.replace(conn.remove_instance_variable(:@sequel_default_query_options))
|
19
28
|
end
|
20
29
|
end
|
21
30
|
end
|
@@ -10,9 +10,7 @@ module Sequel
|
|
10
10
|
|
11
11
|
Utils.add_prepared_statements_cache(conn)
|
12
12
|
|
13
|
-
|
14
|
-
yield conn
|
15
|
-
end
|
13
|
+
yield conn
|
16
14
|
end
|
17
15
|
end
|
18
16
|
|
@@ -32,20 +30,12 @@ module Sequel
|
|
32
30
|
module ConnectionMethods
|
33
31
|
# The underlying exception classes to reraise as disconnect errors
|
34
32
|
# instead of regular database errors.
|
35
|
-
DISCONNECT_ERROR_CLASSES =
|
33
|
+
DISCONNECT_ERROR_CLASSES = Sequel::Postgres::Adapter::DISCONNECT_ERROR_CLASSES
|
36
34
|
|
37
35
|
# Since exception class based disconnect checking may not work,
|
38
36
|
# also trying parsing the exception message to look for disconnect
|
39
37
|
# errors.
|
40
|
-
DISCONNECT_ERROR_REGEX =
|
41
|
-
"ERROR: cached plan must not change result type",
|
42
|
-
"could not receive data from server",
|
43
|
-
"no connection to the server",
|
44
|
-
"connection not open",
|
45
|
-
"connection is closed",
|
46
|
-
"terminating connection due to administrator command",
|
47
|
-
"PQconsumeInput() "
|
48
|
-
])}/
|
38
|
+
DISCONNECT_ERROR_REGEX = Sequel::Postgres::Adapter::DISCONNECT_ERROR_RE
|
49
39
|
|
50
40
|
def async_exec_params(sql, args)
|
51
41
|
defined?(super) ? super : async_exec(sql, args)
|
@@ -92,7 +82,9 @@ module Sequel
|
|
92
82
|
# Return the PG::Result containing the query results.
|
93
83
|
def execute_query(sql, args)
|
94
84
|
@db.log_connection_yield(sql, self, args) do
|
95
|
-
|
85
|
+
Utils.set_value(self, :type_map_for_results, PG::TypeMapAllStrings.new) do
|
86
|
+
args ? async_exec_params(sql, args) : async_exec(sql)
|
87
|
+
end
|
96
88
|
end
|
97
89
|
end
|
98
90
|
end
|
@@ -15,8 +15,16 @@ module Sequel
|
|
15
15
|
|
16
16
|
Utils.add_prepared_statements_cache(conn)
|
17
17
|
|
18
|
+
yield conn
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def _execute(type, sql, opts, &block)
|
25
|
+
synchronize(opts[:server]) do |conn|
|
18
26
|
Utils.set_value(conn, :results_as_hash, nil) do
|
19
|
-
|
27
|
+
super
|
20
28
|
end
|
21
29
|
end
|
22
30
|
end
|
@@ -13,8 +13,6 @@ module Sequel
|
|
13
13
|
serializable: :serializable,
|
14
14
|
}
|
15
15
|
|
16
|
-
ACTIVERECORD_CALLBACKS = Object.new.extend(AfterCommitEverywhere)
|
17
|
-
|
18
16
|
def self.extended(db)
|
19
17
|
db.activerecord_model = ActiveRecord::Base
|
20
18
|
db.opts[:test] = false unless db.opts.key?(:test)
|
@@ -50,7 +48,7 @@ module Sequel
|
|
50
48
|
|
51
49
|
# Match database timezone with Active Record.
|
52
50
|
def timezone
|
53
|
-
@timezone ||
|
51
|
+
@timezone || activerecord_timezone
|
54
52
|
end
|
55
53
|
|
56
54
|
private
|
@@ -108,7 +106,7 @@ module Sequel
|
|
108
106
|
# after_commit_everywhere gem.
|
109
107
|
def add_transaction_hook(conn, type, block)
|
110
108
|
if _trans(conn)[:activerecord]
|
111
|
-
|
109
|
+
AfterCommitEverywhere.public_send(type, &block)
|
112
110
|
else
|
113
111
|
super
|
114
112
|
end
|
@@ -120,7 +118,7 @@ module Sequel
|
|
120
118
|
# after_commit_everywhere gem.
|
121
119
|
def add_savepoint_hook(conn, type, block)
|
122
120
|
if _trans(conn)[:savepoints].last[:activerecord]
|
123
|
-
|
121
|
+
AfterCommitEverywhere.public_send(type, &block)
|
124
122
|
else
|
125
123
|
super
|
126
124
|
end
|
@@ -152,6 +150,16 @@ module Sequel
|
|
152
150
|
&block
|
153
151
|
)
|
154
152
|
end
|
153
|
+
|
154
|
+
if ActiveRecord::VERSION::MAJOR >= 7
|
155
|
+
def activerecord_timezone
|
156
|
+
ActiveRecord.default_timezone
|
157
|
+
end
|
158
|
+
else
|
159
|
+
def activerecord_timezone
|
160
|
+
ActiveRecord::Base.default_timezone
|
161
|
+
end
|
162
|
+
end
|
155
163
|
end
|
156
164
|
|
157
165
|
Database.register_extension(:activerecord_connection, ActiveRecordConnection)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "sequel-activerecord_connection"
|
3
|
-
spec.version = "1.2.
|
3
|
+
spec.version = "1.2.4"
|
4
4
|
spec.authors = ["Janko Marohnić"]
|
5
5
|
spec.email = ["janko.marohnic@gmail.com"]
|
6
6
|
|
@@ -12,8 +12,8 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.required_ruby_version = ">= 2.3"
|
13
13
|
|
14
14
|
spec.add_dependency "sequel", "~> 5.16"
|
15
|
-
spec.add_dependency "activerecord", ">= 4.2", "< 7"
|
16
|
-
spec.add_dependency "after_commit_everywhere", "~>
|
15
|
+
spec.add_dependency "activerecord", ">= 4.2", "< 7.1"
|
16
|
+
spec.add_dependency "after_commit_everywhere", "~> 1.1"
|
17
17
|
|
18
18
|
spec.add_development_dependency "sequel", "~> 5.38"
|
19
19
|
spec.add_development_dependency "minitest"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel-activerecord_connection
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Janko Marohnić
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|
@@ -33,7 +33,7 @@ dependencies:
|
|
33
33
|
version: '4.2'
|
34
34
|
- - "<"
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: '7'
|
36
|
+
version: '7.1'
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -43,21 +43,21 @@ dependencies:
|
|
43
43
|
version: '4.2'
|
44
44
|
- - "<"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '7'
|
46
|
+
version: '7.1'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: after_commit_everywhere
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: '1.1'
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
60
|
+
version: '1.1'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: sequel
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,7 +123,7 @@ homepage: https://github.com/janko/sequel-activerecord_connection
|
|
123
123
|
licenses:
|
124
124
|
- MIT
|
125
125
|
metadata: {}
|
126
|
-
post_install_message:
|
126
|
+
post_install_message:
|
127
127
|
rdoc_options: []
|
128
128
|
require_paths:
|
129
129
|
- lib
|
@@ -138,8 +138,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
140
|
requirements: []
|
141
|
-
rubygems_version: 3.
|
142
|
-
signing_key:
|
141
|
+
rubygems_version: 3.2.15
|
142
|
+
signing_key:
|
143
143
|
specification_version: 4
|
144
144
|
summary: Allows Sequel to use ActiveRecord connection for database interaction.
|
145
145
|
test_files: []
|