activerecord-jdbc-alt-adapter 70.0.0.rc2-java → 70.2.0-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/main.yml +50 -2
- data/lib/arel/visitors/sqlserver.rb +10 -0
- data/lib/arjdbc/abstract/database_statements.rb +8 -0
- data/lib/arjdbc/jdbc/adapter_java.jar +0 -0
- data/lib/arjdbc/mssql/adapter.rb +1 -1
- data/lib/arjdbc/mssql/connection_methods.rb +1 -1
- data/lib/arjdbc/mysql/connection_methods.rb +43 -42
- data/lib/arjdbc/postgresql/adapter.rb +1 -0
- data/lib/arjdbc/postgresql/connection_methods.rb +8 -1
- data/lib/arjdbc/postgresql/oid_types.rb +17 -6
- data/lib/arjdbc/sqlite3/adapter.rb +27 -18
- data/lib/arjdbc/tasks/mssql_database_tasks.rb +1 -1
- data/lib/arjdbc/version.rb +1 -1
- data/src/java/arjdbc/jdbc/RubyJdbcConnection.java +1 -1
- data/src/java/arjdbc/sqlite3/SQLite3RubyJdbcConnection.java +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d657378f80f357a04e2fdad85beaced7e0e8588bf516a4cfea0d2960dee6f517
|
4
|
+
data.tar.gz: 713a05c4a59bdc8c6a767f5c7043f7f6b51130d231364e3ee11b0df537cdf6a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb38c344bcf3b01e991a5b026c01d250ea9fd82441373ee3095b9bc2f63e139370f9be4adad65863988119eabbcea80b0a1083909d4eaec61af17d42a42e9ee2
|
7
|
+
data.tar.gz: 6b9e80af6e0bd15a0aa1eab237e1d0f8a5bc5752f1d22fb6ab2100c755d34f1c25f1853105a82eb58bb7ad7f08652213e9f8b147a2728062103d98007aa3510c
|
data/.github/workflows/main.yml
CHANGED
@@ -20,6 +20,54 @@ permissions:
|
|
20
20
|
contents: read
|
21
21
|
|
22
22
|
jobs:
|
23
|
+
test-arjdbc-mssql:
|
24
|
+
|
25
|
+
name: ARJDBC Tests (mssql)
|
26
|
+
runs-on: ubuntu-latest
|
27
|
+
strategy:
|
28
|
+
fail-fast: false
|
29
|
+
matrix:
|
30
|
+
ruby-version: ['jruby-9.4.2.0']
|
31
|
+
db: ['mssql']
|
32
|
+
test_targets: ['test_mssql']
|
33
|
+
|
34
|
+
services:
|
35
|
+
mssql:
|
36
|
+
image: mcr.microsoft.com/mssql/server:2019-latest
|
37
|
+
env:
|
38
|
+
ACCEPT_EULA: Y
|
39
|
+
MSSQL_SA_PASSWORD: Password12!
|
40
|
+
ports:
|
41
|
+
- 1433:1433
|
42
|
+
options: >-
|
43
|
+
--health-cmd="/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P \"Password12!\" -l 30 -Q \"SELECT 1\""
|
44
|
+
--health-start-period 10s
|
45
|
+
--health-interval 10s
|
46
|
+
--health-timeout 5s
|
47
|
+
--health-retries 10
|
48
|
+
|
49
|
+
env:
|
50
|
+
DB: ${{ matrix.db }}
|
51
|
+
JRUBY_OPTS: "-J-Xms64M -J-Xmx1024M"
|
52
|
+
SQLUSER: SA
|
53
|
+
SQLPASS: Password12!
|
54
|
+
|
55
|
+
steps:
|
56
|
+
- uses: actions/checkout@v3
|
57
|
+
- name: Set up Ruby
|
58
|
+
uses: ruby/setup-ruby@v1
|
59
|
+
with:
|
60
|
+
ruby-version: ${{ matrix.ruby-version }}
|
61
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
62
|
+
- name: Setup database
|
63
|
+
run: /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Password12!" -Q "CREATE DATABASE arjdbc_test;"
|
64
|
+
- name: Build
|
65
|
+
run: |
|
66
|
+
rake jar
|
67
|
+
- name: Run tests
|
68
|
+
run: |
|
69
|
+
bundle exec rake ${{ matrix.test_targets }}
|
70
|
+
|
23
71
|
test-rails-pgsql:
|
24
72
|
|
25
73
|
name: Rails Tests (Postgres)
|
@@ -27,7 +75,7 @@ jobs:
|
|
27
75
|
strategy:
|
28
76
|
fail-fast: false
|
29
77
|
matrix:
|
30
|
-
ruby-version: [ 'jruby-
|
78
|
+
ruby-version: [ 'jruby-9.4.2.0' ]
|
31
79
|
db: [ 'postgresql' ]
|
32
80
|
test_targets: [ "rails:test_postgresql" ]
|
33
81
|
ar_version: ["7-0-stable"]
|
@@ -78,7 +126,7 @@ jobs:
|
|
78
126
|
strategy:
|
79
127
|
fail-fast: false
|
80
128
|
matrix:
|
81
|
-
ruby-version: ['jruby-
|
129
|
+
ruby-version: ['jruby-9.4.2.0']
|
82
130
|
db: ['postgresql']
|
83
131
|
test_targets: ["db:postgresql test_postgresql"]
|
84
132
|
prepared_statements: ['false', 'true']
|
@@ -51,6 +51,16 @@ module Arel
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
+
# Override the default in arel ToSql class
|
55
|
+
def visit_Arel_Nodes_NullsFirst(o, collector)
|
56
|
+
visit o.expr, collector
|
57
|
+
end
|
58
|
+
|
59
|
+
# Override the default in arel ToSql class
|
60
|
+
def visit_Arel_Nodes_NullsLast(o, collector)
|
61
|
+
visit o.expr, collector
|
62
|
+
end
|
63
|
+
|
54
64
|
def visit_Arel_Nodes_Grouping(o, collector)
|
55
65
|
remove_invalid_ordering_from_select_statement(o.expr)
|
56
66
|
super
|
@@ -10,6 +10,8 @@ module ArJdbc
|
|
10
10
|
NO_BINDS = [].freeze
|
11
11
|
|
12
12
|
def exec_insert(sql, name = nil, binds = NO_BINDS, pk = nil, sequence_name = nil)
|
13
|
+
sql = transform_query(sql)
|
14
|
+
|
13
15
|
if preventing_writes?
|
14
16
|
raise ActiveRecord::ReadOnlyError, "Write query attempted while in readonly mode: #{sql}"
|
15
17
|
end
|
@@ -31,6 +33,8 @@ module ArJdbc
|
|
31
33
|
# It appears that at this point (AR 5.0) "prepare" should only ever be true
|
32
34
|
# if prepared statements are enabled
|
33
35
|
def exec_query(sql, name = nil, binds = NO_BINDS, prepare: false, async: false)
|
36
|
+
sql = transform_query(sql)
|
37
|
+
|
34
38
|
if preventing_writes? && write_query?(sql)
|
35
39
|
raise ActiveRecord::ReadOnlyError, "Write query attempted while in readonly mode: #{sql}"
|
36
40
|
end
|
@@ -52,6 +56,8 @@ module ArJdbc
|
|
52
56
|
end
|
53
57
|
|
54
58
|
def exec_update(sql, name = nil, binds = NO_BINDS)
|
59
|
+
sql = transform_query(sql)
|
60
|
+
|
55
61
|
if preventing_writes?
|
56
62
|
raise ActiveRecord::ReadOnlyError, "Write query attempted while in readonly mode: #{sql}"
|
57
63
|
end
|
@@ -70,6 +76,8 @@ module ArJdbc
|
|
70
76
|
alias :exec_delete :exec_update
|
71
77
|
|
72
78
|
def execute(sql, name = nil, async: false)
|
79
|
+
sql = transform_query(sql)
|
80
|
+
|
73
81
|
if preventing_writes? && write_query?(sql)
|
74
82
|
raise ActiveRecord::ReadOnlyError, "Write query attempted while in readonly mode: #{sql}"
|
75
83
|
end
|
Binary file
|
data/lib/arjdbc/mssql/adapter.rb
CHANGED
@@ -472,7 +472,7 @@ module ActiveRecord
|
|
472
472
|
# NOTE: This is ready, all implemented in the java part of adapter,
|
473
473
|
# it uses MSSQLColumn, SqlTypeMetadata, etc.
|
474
474
|
def column_definitions(table_name)
|
475
|
-
log('JDBC: GETCOLUMNS', 'SCHEMA') { @connection.columns(table_name) }
|
475
|
+
log('JDBC: GETCOLUMNS', 'SCHEMA') { @connection.columns(table_name, nil, default_schema) }
|
476
476
|
rescue => e
|
477
477
|
# raise translate_exception_class(e, nil)
|
478
478
|
# FIXME: this breaks one arjdbc test but fixes activerecord tests
|
@@ -80,7 +80,7 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
80
80
|
url << "lockTimeout=#{config[:lock_timeout].to_i};"
|
81
81
|
url << "encrypt=#{config[:encrypt]};" if config.key?(:encrypt)
|
82
82
|
url << "trustServerCertificate=#{config[:trust_server_certificate]};" if config.key?(:trust_server_certificate)
|
83
|
-
app = config[:appname] || config[:application]
|
83
|
+
app = config[:application_name] || config[:appname] || config[:application]
|
84
84
|
url << "applicationName=#{app};" if app
|
85
85
|
isc = config[:integrated_security] # Win only - needs sqljdbc_auth.dll
|
86
86
|
url << "integratedSecurity=#{isc};" unless isc.nil?
|
@@ -126,51 +126,52 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
126
126
|
|
127
127
|
private
|
128
128
|
|
129
|
-
|
129
|
+
MYSQL_ENCODINGS = {
|
130
|
+
"big5" => "Big5",
|
131
|
+
"dec8" => nil,
|
132
|
+
#"cp850" => "Cp850",
|
133
|
+
"hp8" => nil,
|
134
|
+
#"koi8r" => "KOI8-R",
|
135
|
+
"latin1" => "Cp1252",
|
136
|
+
"latin2" => "ISO8859_2",
|
137
|
+
"swe7" => nil,
|
138
|
+
"ascii" => "US-ASCII",
|
139
|
+
"ujis" => "EUC_JP",
|
140
|
+
"sjis" => "SJIS",
|
141
|
+
"hebrew" => "ISO8859_8",
|
142
|
+
"tis620" => "TIS620",
|
143
|
+
"euckr" => "EUC_KR",
|
144
|
+
#"koi8u" => "KOI8-R",
|
145
|
+
"gb2312" => "EUC_CN",
|
146
|
+
"greek" => "ISO8859_7",
|
147
|
+
"cp1250" => "Cp1250",
|
148
|
+
"gbk" => "GBK",
|
149
|
+
#"latin5" => "ISO-8859-9",
|
150
|
+
"armscii8" => nil,
|
151
|
+
"ucs2" => "UnicodeBig",
|
152
|
+
"cp866" => "Cp866",
|
153
|
+
"keybcs2" => nil,
|
154
|
+
"macce" => "MacCentralEurope",
|
155
|
+
"macroman" => "MacRoman",
|
156
|
+
#"cp852" => "CP852",
|
157
|
+
#"latin7" => "ISO-8859-13",
|
158
|
+
"cp1251" => "Cp1251",
|
159
|
+
"cp1256" => "Cp1256",
|
160
|
+
"cp1257" => "Cp1257",
|
161
|
+
"binary" => false,
|
162
|
+
"geostd8" => nil,
|
163
|
+
"cp932" => "Cp932",
|
164
|
+
#"eucjpms" => "eucJP-ms"
|
165
|
+
"utf8" => "UTF-8",
|
166
|
+
"utf8mb4" => false,
|
167
|
+
"utf16" => false,
|
168
|
+
"utf32" => false,
|
169
|
+
}
|
170
|
+
|
130
171
|
|
131
172
|
# @see https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-charsets.html
|
132
173
|
def convert_mysql_encoding(encoding) # to charset-name (characterEncoding=...)
|
133
|
-
|
134
|
-
"big5" => "Big5",
|
135
|
-
"dec8" => nil,
|
136
|
-
#"cp850" => "Cp850",
|
137
|
-
"hp8" => nil,
|
138
|
-
#"koi8r" => "KOI8-R",
|
139
|
-
"latin1" => "Cp1252",
|
140
|
-
"latin2" => "ISO8859_2",
|
141
|
-
"swe7" => nil,
|
142
|
-
"ascii" => "US-ASCII",
|
143
|
-
"ujis" => "EUC_JP",
|
144
|
-
"sjis" => "SJIS",
|
145
|
-
"hebrew" => "ISO8859_8",
|
146
|
-
"tis620" => "TIS620",
|
147
|
-
"euckr" => "EUC_KR",
|
148
|
-
#"koi8u" => "KOI8-R",
|
149
|
-
"gb2312" => "EUC_CN",
|
150
|
-
"greek" => "ISO8859_7",
|
151
|
-
"cp1250" => "Cp1250",
|
152
|
-
"gbk" => "GBK",
|
153
|
-
#"latin5" => "ISO-8859-9",
|
154
|
-
"armscii8" => nil,
|
155
|
-
"ucs2" => "UnicodeBig",
|
156
|
-
"cp866" => "Cp866",
|
157
|
-
"keybcs2" => nil,
|
158
|
-
"macce" => "MacCentralEurope",
|
159
|
-
"macroman" => "MacRoman",
|
160
|
-
#"cp852" => "CP852",
|
161
|
-
#"latin7" => "ISO-8859-13",
|
162
|
-
"cp1251" => "Cp1251",
|
163
|
-
"cp1256" => "Cp1256",
|
164
|
-
"cp1257" => "Cp1257",
|
165
|
-
"binary" => false,
|
166
|
-
"geostd8" => nil,
|
167
|
-
"cp932" => "Cp932",
|
168
|
-
#"eucjpms" => "eucJP-ms"
|
169
|
-
"utf8" => "UTF-8",
|
170
|
-
"utf8mb4" => false,
|
171
|
-
"utf16" => false,
|
172
|
-
"utf32" => false,
|
173
|
-
} )[ encoding ]
|
174
|
+
MYSQL_ENCODINGS[ encoding ]
|
174
175
|
end
|
175
176
|
|
176
177
|
end
|
@@ -21,6 +21,7 @@ require 'arjdbc/abstract/transaction_support'
|
|
21
21
|
require 'arjdbc/postgresql/base/array_decoder'
|
22
22
|
require 'arjdbc/postgresql/base/array_encoder'
|
23
23
|
require 'arjdbc/postgresql/name'
|
24
|
+
require 'active_model'
|
24
25
|
|
25
26
|
module ArJdbc
|
26
27
|
# Strives to provide Rails built-in PostgreSQL adapter (API) compatibility.
|
@@ -24,7 +24,14 @@ ArJdbc::ConnectionMethods.module_eval do
|
|
24
24
|
port = config[:port] ||= ( ENV['PGPORT'] || 5432 )
|
25
25
|
database = config[:database] || config[:dbname] || ENV['PGDATABASE']
|
26
26
|
|
27
|
-
config[:
|
27
|
+
app = config[:application_name] || config[:appname] || config[:application]
|
28
|
+
|
29
|
+
config[:url] ||= if app
|
30
|
+
"jdbc:postgresql://#{host}:#{port}/#{database}?ApplicationName=#{app}"
|
31
|
+
else
|
32
|
+
"jdbc:postgresql://#{host}:#{port}/#{database}"
|
33
|
+
end
|
34
|
+
|
28
35
|
config[:url] << config[:pg_params] if config[:pg_params]
|
29
36
|
|
30
37
|
config[:username] ||= ( config[:user] || ENV['PGUSER'] || ENV_JAVA['user.name'] )
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
2
|
require 'thread'
|
4
3
|
|
5
4
|
module ArJdbc
|
@@ -91,8 +90,23 @@ module ArJdbc
|
|
91
90
|
end
|
92
91
|
|
93
92
|
def get_oid_type(oid, fmod, column_name, sql_type = '') # :nodoc:
|
94
|
-
|
95
|
-
|
93
|
+
# Note: type_map is storing a bunch of oid type prefixed with a namespace even
|
94
|
+
# if they are not namespaced (e.g. ""."oidvector"). builtin types which are
|
95
|
+
# common seem to not be prefixed (e.g. "varchar"). OID numbers are also keys
|
96
|
+
# but JDBC never returns those. So the current scheme is to check with
|
97
|
+
# what we got and that covers number and plain strings and otherwise we will
|
98
|
+
# wrap with the namespace form.
|
99
|
+
found = type_map.key?(oid)
|
100
|
+
|
101
|
+
if !found
|
102
|
+
key = oid.kind_of?(String) && oid != "oid" ? "\"\".\"#{oid}\"" : oid
|
103
|
+
found = type_map.key?(key)
|
104
|
+
|
105
|
+
if !found
|
106
|
+
load_additional_types([oid])
|
107
|
+
else
|
108
|
+
oid = key
|
109
|
+
end
|
96
110
|
end
|
97
111
|
|
98
112
|
type_map.fetch(oid, fmod, sql_type) {
|
@@ -207,7 +221,6 @@ module ArJdbc
|
|
207
221
|
initializer = ArjdbcTypeMapInitializer.new(type_map)
|
208
222
|
load_types_queries(initializer, oids) do |query|
|
209
223
|
execute_and_clear(query, "SCHEMA", []) do |records|
|
210
|
-
#puts "RECORDS: #{records.to_a}"
|
211
224
|
initializer.run(records)
|
212
225
|
end
|
213
226
|
end
|
@@ -224,8 +237,6 @@ module ArJdbc
|
|
224
237
|
yield query + "WHERE t.oid IN (%s)" % oids.join(", ")
|
225
238
|
else
|
226
239
|
in_list = oids.map { |e| %Q{'#{e}'} }.join(", ")
|
227
|
-
#puts caller[0..40]
|
228
|
-
puts "IN_LIST = #{in_list}"
|
229
240
|
yield query + "WHERE t.typname IN (%s)" % in_list
|
230
241
|
end
|
231
242
|
else
|
@@ -756,6 +756,29 @@ module ActiveRecord::ConnectionAdapters
|
|
756
756
|
# Note: This is not an override of ours but a moved line from AR Sqlite3Adapter to register ours vs our copied module (which would be their class).
|
757
757
|
# ActiveSupport.run_load_hooks(:active_record_sqlite3adapter, SQLite3Adapter)
|
758
758
|
|
759
|
+
# DIFFERENCE: FQN
|
760
|
+
class SQLite3Integer < ::ActiveRecord::Type::Integer # :nodoc:
|
761
|
+
private
|
762
|
+
def _limit
|
763
|
+
# INTEGER storage class can be stored 8 bytes value.
|
764
|
+
# See https://www.sqlite.org/datatype3.html#storage_classes_and_datatypes
|
765
|
+
limit || 8
|
766
|
+
end
|
767
|
+
end
|
768
|
+
|
769
|
+
# DIFFERENCE: FQN
|
770
|
+
::ActiveRecord::Type.register(:integer, SQLite3Integer, adapter: :sqlite3)
|
771
|
+
|
772
|
+
class << self
|
773
|
+
private
|
774
|
+
def initialize_type_map(m)
|
775
|
+
super
|
776
|
+
register_class_with_limit m, %r(int)i, SQLite3Integer
|
777
|
+
end
|
778
|
+
end
|
779
|
+
|
780
|
+
TYPE_MAP = ActiveRecord::Type::TypeMap.new.tap { |m| initialize_type_map(m) }
|
781
|
+
|
759
782
|
private
|
760
783
|
|
761
784
|
# because the JDBC driver doesn't like multiple SQL statements in one JDBC statement
|
@@ -763,6 +786,10 @@ module ActiveRecord::ConnectionAdapters
|
|
763
786
|
total_sql
|
764
787
|
end
|
765
788
|
|
789
|
+
def type_map
|
790
|
+
TYPE_MAP
|
791
|
+
end
|
792
|
+
|
766
793
|
# combine
|
767
794
|
def write_query?(sql) # :nodoc:
|
768
795
|
return sql.any? { |stmt| super(stmt) } if sql.kind_of? Array
|
@@ -770,23 +797,5 @@ module ActiveRecord::ConnectionAdapters
|
|
770
797
|
rescue ArgumentError # Invalid encoding
|
771
798
|
!READ_QUERY.match?(sql.b)
|
772
799
|
end
|
773
|
-
|
774
|
-
def initialize_type_map(m = type_map)
|
775
|
-
super
|
776
|
-
register_class_with_limit m, %r(int)i, SQLite3Integer
|
777
|
-
end
|
778
|
-
|
779
|
-
# DIFFERENCE: FQN
|
780
|
-
class SQLite3Integer < ::ActiveRecord::Type::Integer # :nodoc:
|
781
|
-
private
|
782
|
-
def _limit
|
783
|
-
# INTEGER storage class can be stored 8 bytes value.
|
784
|
-
# See https://www.sqlite.org/datatype3.html#storage_classes_and_datatypes
|
785
|
-
limit || 8
|
786
|
-
end
|
787
|
-
end
|
788
|
-
|
789
|
-
# DIFFERENCE: FQN
|
790
|
-
::ActiveRecord::Type.register(:integer, SQLite3Integer, adapter: :sqlite3)
|
791
800
|
end
|
792
801
|
end
|
data/lib/arjdbc/version.rb
CHANGED
@@ -2736,7 +2736,7 @@ public class RubyJdbcConnection extends RubyObject {
|
|
2736
2736
|
}
|
2737
2737
|
else { // e.g. `BigDecimal '42.00000000000000000001'`
|
2738
2738
|
statement.setBigDecimal(index,
|
2739
|
-
RubyBigDecimal.newInstance(context, context.runtime.getModule("BigDecimal"), value).getValue());
|
2739
|
+
RubyBigDecimal.newInstance(context, context.runtime.getModule("BigDecimal"), value, RubyFixnum.newFixnum(context.runtime, Integer.MAX_VALUE)).getValue());
|
2740
2740
|
}
|
2741
2741
|
}
|
2742
2742
|
|
@@ -511,7 +511,7 @@ public class SQLite3RubyJdbcConnection extends RubyJdbcConnection {
|
|
511
511
|
statement.setDouble(index, ((RubyNumeric) value).getDoubleValue());
|
512
512
|
}
|
513
513
|
else { // e.g. `BigDecimal '42.00000000000000000001'`
|
514
|
-
RubyBigDecimal val = RubyBigDecimal.newInstance(context, context.runtime.getModule("BigDecimal"), value);
|
514
|
+
RubyBigDecimal val = RubyBigDecimal.newInstance(context, context.runtime.getModule("BigDecimal"), value, RubyFixnum.newFixnum(context.runtime, Integer.MAX_VALUE));
|
515
515
|
statement.setString(index, val.getValue().toString());
|
516
516
|
}
|
517
517
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-jdbc-alt-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 70.
|
4
|
+
version: 70.2.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Nick Sieger, Ola Bini, Karol Bucek, Jesse Chavez, and JRuby contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -17,8 +17,8 @@ dependencies:
|
|
17
17
|
- !ruby/object:Gem::Version
|
18
18
|
version: 7.0.0
|
19
19
|
name: activerecord
|
20
|
-
prerelease: false
|
21
20
|
type: :runtime
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
@@ -231,11 +231,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
231
231
|
version: '0'
|
232
232
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
|
-
- - "
|
234
|
+
- - ">="
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
236
|
+
version: '0'
|
237
237
|
requirements: []
|
238
|
-
rubygems_version: 3.3.
|
238
|
+
rubygems_version: 3.3.26
|
239
239
|
signing_key:
|
240
240
|
specification_version: 4
|
241
241
|
summary: ActiveRecord JDBC adapter, for use within JRuby on Rails and SQL Server
|