tiny_tds 3.0.0-x64-mingw-ucrt → 3.2.0-x64-mingw-ucrt

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.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +194 -74
  3. data/CHANGELOG.md +12 -0
  4. data/Gemfile +1 -1
  5. data/README.md +59 -50
  6. data/Rakefile +46 -37
  7. data/VERSION +1 -1
  8. data/ext/tiny_tds/extconf.rb +169 -70
  9. data/ext/tiny_tds/extconsts.rb +3 -4
  10. data/lib/tiny_tds/3.1/tiny_tds.so +0 -0
  11. data/lib/tiny_tds/3.2/tiny_tds.so +0 -0
  12. data/lib/tiny_tds/3.3/tiny_tds.so +0 -0
  13. data/lib/tiny_tds/3.4/tiny_tds.so +0 -0
  14. data/lib/tiny_tds/bin.rb +12 -26
  15. data/lib/tiny_tds/client.rb +38 -42
  16. data/lib/tiny_tds/error.rb +0 -2
  17. data/lib/tiny_tds/gem.rb +5 -9
  18. data/lib/tiny_tds/result.rb +0 -2
  19. data/lib/tiny_tds/version.rb +1 -1
  20. data/lib/tiny_tds.rb +28 -47
  21. data/ports/x64-mingw-ucrt/{freetds/1.4.23/bin → bin}/defncopy.exe +0 -0
  22. data/ports/x64-mingw-ucrt/bin/libsybdb-5.dll +0 -0
  23. data/ports/x64-mingw-ucrt/bin/tsql.exe +0 -0
  24. data/tasks/native_gem.rake +11 -18
  25. data/tasks/package.rake +1 -3
  26. data/tasks/ports.rake +7 -91
  27. data/tasks/test.rake +3 -5
  28. data/test/bin/install-freetds.sh +2 -4
  29. data/test/bin/restore-from-native-gem.ps1 +10 -0
  30. data/test/client_test.rb +106 -112
  31. data/test/gem_test.rb +32 -108
  32. data/test/result_test.rb +208 -221
  33. data/test/schema_test.rb +177 -181
  34. data/test/test_helper.rb +59 -64
  35. data/test/thread_test.rb +22 -31
  36. data/tiny_tds.gemspec +28 -29
  37. metadata +29 -44
  38. data/ports/x64-mingw-ucrt/freetds/1.4.23/bin/bsqldb.exe +0 -0
  39. data/ports/x64-mingw-ucrt/freetds/1.4.23/bin/datacopy.exe +0 -0
  40. data/ports/x64-mingw-ucrt/freetds/1.4.23/bin/freebcp.exe +0 -0
  41. data/ports/x64-mingw-ucrt/freetds/1.4.23/bin/libct-4.dll +0 -0
  42. data/ports/x64-mingw-ucrt/freetds/1.4.23/bin/libsybdb-5.dll +0 -0
  43. data/ports/x64-mingw-ucrt/freetds/1.4.23/bin/osql +0 -393
  44. data/ports/x64-mingw-ucrt/freetds/1.4.23/bin/tdspool.exe +0 -0
  45. data/ports/x64-mingw-ucrt/freetds/1.4.23/bin/tsql.exe +0 -0
  46. data/ports/x64-mingw-ucrt/freetds/1.4.23/lib/libct.dll.a +0 -0
  47. data/ports/x64-mingw-ucrt/freetds/1.4.23/lib/libct.la +0 -41
  48. data/ports/x64-mingw-ucrt/freetds/1.4.23/lib/libsybdb.dll.a +0 -0
  49. data/ports/x64-mingw-ucrt/freetds/1.4.23/lib/libsybdb.la +0 -41
  50. data/ports/x64-mingw-ucrt/libiconv/1.17/bin/iconv.exe +0 -0
  51. data/ports/x64-mingw-ucrt/libiconv/1.17/bin/libcharset-1.dll +0 -0
  52. data/ports/x64-mingw-ucrt/libiconv/1.17/bin/libiconv-2.dll +0 -0
  53. data/ports/x64-mingw-ucrt/libiconv/1.17/lib/libcharset.dll.a +0 -0
  54. data/ports/x64-mingw-ucrt/libiconv/1.17/lib/libcharset.la +0 -41
  55. data/ports/x64-mingw-ucrt/libiconv/1.17/lib/libiconv.dll.a +0 -0
  56. data/ports/x64-mingw-ucrt/libiconv/1.17/lib/libiconv.la +0 -41
  57. data/ports/x64-mingw-ucrt/openssl/3.4.0/bin/c_rehash +0 -252
  58. data/ports/x64-mingw-ucrt/openssl/3.4.0/bin/libcrypto-3-x64.dll +0 -0
  59. data/ports/x64-mingw-ucrt/openssl/3.4.0/bin/libssl-3-x64.dll +0 -0
  60. data/ports/x64-mingw-ucrt/openssl/3.4.0/bin/openssl.exe +0 -0
  61. data/tasks/ports/freetds.rb +0 -32
  62. data/tasks/ports/libiconv.rb +0 -26
  63. data/tasks/ports/openssl.rb +0 -62
  64. data/tasks/ports/recipe.rb +0 -64
  65. data/test/benchmark/query.rb +0 -77
  66. data/test/benchmark/query_odbc.rb +0 -106
  67. data/test/benchmark/query_tinytds.rb +0 -126
data/test/test_helper.rb CHANGED
@@ -1,26 +1,24 @@
1
- # encoding: UTF-8
2
- require 'bundler' ; Bundler.require :development, :test
3
- require 'tiny_tds'
4
- require 'minitest/autorun'
5
- require 'toxiproxy'
1
+ require "bundler"
2
+ Bundler.require :development, :test
3
+ require "tiny_tds"
4
+ require "minitest/autorun"
5
+ require "toxiproxy"
6
6
 
7
7
  require "minitest/reporters"
8
8
  Minitest::Reporters.use! [Minitest::Reporters::SpecReporter.new, Minitest::Reporters::JUnitReporter.new]
9
9
 
10
- TINYTDS_SCHEMAS = ['sqlserver_2017', 'sqlserver_azure'].freeze
10
+ TINYTDS_SCHEMAS = ["sqlserver_2017", "sqlserver_azure"].freeze
11
11
 
12
12
  module TinyTds
13
- class TestCase < MiniTest::Spec
14
-
13
+ class TestCase < Minitest::Spec
15
14
  class << self
16
-
17
15
  def current_schema
18
- ENV['TINYTDS_SCHEMA'] || 'sqlserver_2017'
16
+ ENV["TINYTDS_SCHEMA"] || "sqlserver_2017"
19
17
  end
20
18
 
21
19
  TINYTDS_SCHEMAS.each do |schema|
22
- define_method "#{schema}?" do
23
- schema == self.current_schema
20
+ define_method :"#{schema}?" do
21
+ schema == current_schema
24
22
  end
25
23
  end
26
24
  end
@@ -30,7 +28,7 @@ module TinyTds
30
28
  protected
31
29
 
32
30
  TINYTDS_SCHEMAS.each do |schema|
33
- define_method "#{schema}?" do
31
+ define_method :"#{schema}?" do
34
32
  schema == self.class.current_schema
35
33
  end
36
34
  end
@@ -39,45 +37,44 @@ module TinyTds
39
37
  self.class.current_schema
40
38
  end
41
39
 
42
- def close_client(client=@client)
40
+ def close_client(client = @client)
43
41
  client.close if defined?(client) && client.is_a?(TinyTds::Client)
44
42
  end
45
43
 
46
- def new_connection(options={})
44
+ def new_connection(options = {})
47
45
  client = TinyTds::Client.new(connection_options(options))
48
46
  if sqlserver_azure?
49
- client.execute('SET ANSI_NULLS ON').do
50
- client.execute('SET CURSOR_CLOSE_ON_COMMIT OFF').do
51
- client.execute('SET ANSI_NULL_DFLT_ON ON').do
52
- client.execute('SET IMPLICIT_TRANSACTIONS OFF').do
53
- client.execute('SET ANSI_PADDING ON').do
54
- client.execute('SET QUOTED_IDENTIFIER ON').do
55
- client.execute('SET ANSI_WARNINGS ON').do
47
+ client.execute("SET ANSI_NULLS ON").do
48
+ client.execute("SET CURSOR_CLOSE_ON_COMMIT OFF").do
49
+ client.execute("SET ANSI_NULL_DFLT_ON ON").do
50
+ client.execute("SET IMPLICIT_TRANSACTIONS OFF").do
51
+ client.execute("SET ANSI_PADDING ON").do
52
+ client.execute("SET QUOTED_IDENTIFIER ON").do
53
+ client.execute("SET ANSI_WARNINGS ON").do
56
54
  else
57
- client.execute('SET ANSI_DEFAULTS ON').do
58
- client.execute('SET CURSOR_CLOSE_ON_COMMIT OFF').do
59
- client.execute('SET IMPLICIT_TRANSACTIONS OFF').do
55
+ client.execute("SET ANSI_DEFAULTS ON").do
56
+ client.execute("SET CURSOR_CLOSE_ON_COMMIT OFF").do
57
+ client.execute("SET IMPLICIT_TRANSACTIONS OFF").do
60
58
  end
61
- client.execute('SET TEXTSIZE 2147483647').do
62
- client.execute('SET CONCAT_NULL_YIELDS_NULL ON').do
59
+ client.execute("SET TEXTSIZE 2147483647").do
60
+ client.execute("SET CONCAT_NULL_YIELDS_NULL ON").do
63
61
  client
64
62
  end
65
63
 
66
- def connection_options(options={})
67
- username = (sqlserver_azure? ? ENV['TINYTDS_UNIT_AZURE_USER'] : ENV['TINYTDS_UNIT_USER']) || 'tinytds'
68
- password = (sqlserver_azure? ? ENV['TINYTDS_UNIT_AZURE_PASS'] : ENV['TINYTDS_UNIT_PASS']) || ''
69
- { :dataserver => sqlserver_azure? ? nil : ENV['TINYTDS_UNIT_DATASERVER'],
70
- :host => ENV['TINYTDS_UNIT_HOST'] || 'localhost',
71
- :port => ENV['TINYTDS_UNIT_PORT'] || '1433',
72
- :tds_version => ENV['TINYTDS_UNIT_VERSION'],
73
- :username => username,
74
- :password => password,
75
- :database => ENV['TINYTDS_UNIT_DATABASE'] || 'tinytdstest',
76
- :appname => 'TinyTds Dev',
77
- :login_timeout => 5,
78
- :timeout => connection_timeout,
79
- :azure => sqlserver_azure?
80
- }.merge(options)
64
+ def connection_options(options = {})
65
+ username = (sqlserver_azure? ? ENV["TINYTDS_UNIT_AZURE_USER"] : ENV["TINYTDS_UNIT_USER"]) || "tinytds"
66
+ password = (sqlserver_azure? ? ENV["TINYTDS_UNIT_AZURE_PASS"] : ENV["TINYTDS_UNIT_PASS"]) || ""
67
+ {dataserver: sqlserver_azure? ? nil : ENV["TINYTDS_UNIT_DATASERVER"],
68
+ host: ENV["TINYTDS_UNIT_HOST"] || "localhost",
69
+ port: ENV["TINYTDS_UNIT_PORT"] || "1433",
70
+ tds_version: ENV["TINYTDS_UNIT_VERSION"],
71
+ username: username,
72
+ password: password,
73
+ database: ENV["TINYTDS_UNIT_DATABASE"] || "tinytdstest",
74
+ appname: "TinyTds Dev",
75
+ login_timeout: 5,
76
+ timeout: connection_timeout,
77
+ azure: sqlserver_azure?}.merge(options)
81
78
  end
82
79
 
83
80
  def connection_timeout
@@ -85,7 +82,7 @@ module TinyTds
85
82
  end
86
83
 
87
84
  def assert_client_works(client)
88
- _(client.execute("SELECT 'client_works' as [client_works]").each).must_equal [{'client_works' => 'client_works'}]
85
+ _(client.execute("SELECT 'client_works' as [client_works]").each).must_equal [{"client_works" => "client_works"}]
89
86
  end
90
87
 
91
88
  def assert_new_connections_work
@@ -102,28 +99,26 @@ module TinyTds
102
99
  rescue TinyTds::Error => e
103
100
  error_raised = true
104
101
  end
105
- assert error_raised, 'expected a TinyTds::Error but none happened'
102
+ assert error_raised, "expected a TinyTds::Error but none happened"
106
103
  yield e
107
104
  ensure
108
105
  close_client(result)
109
106
  end
110
107
 
111
108
  def inspect_tinytds_exception
112
- begin
113
- yield
114
- rescue TinyTds::Error => e
115
- props = { :source => e.source, :message => e.message, :severity => e.severity,
116
- :db_error_number => e.db_error_number, :os_error_number => e.os_error_number }
117
- raise "TinyTds::Error - #{props.inspect}"
118
- end
109
+ yield
110
+ rescue TinyTds::Error => e
111
+ props = {source: e.source, message: e.message, severity: e.severity,
112
+ db_error_number: e.db_error_number, os_error_number: e.os_error_number}
113
+ raise "TinyTds::Error - #{props.inspect}"
119
114
  end
120
115
 
121
116
  def assert_binary_encoding(value)
122
- assert_equal Encoding.find('BINARY'), value.encoding
117
+ assert_equal Encoding.find("BINARY"), value.encoding
123
118
  end
124
119
 
125
120
  def assert_utf8_encoding(value)
126
- assert_equal Encoding.find('UTF-8'), value.encoding
121
+ assert_equal Encoding.find("UTF-8"), value.encoding
127
122
  end
128
123
 
129
124
  def rubyRbx?
@@ -131,17 +126,17 @@ module TinyTds
131
126
  end
132
127
 
133
128
  def ruby_windows?
134
- RbConfig::CONFIG['host_os'] =~ /ming/
129
+ RbConfig::CONFIG["host_os"] =~ /ming/
135
130
  end
136
131
 
137
132
  def ruby_darwin?
138
- RbConfig::CONFIG['host_os'] =~ /darwin/
133
+ RbConfig::CONFIG["host_os"] =~ /darwin/
139
134
  end
140
135
 
141
136
  def load_current_schema
142
137
  loader = new_connection
143
- schema_file = File.expand_path File.join(File.dirname(__FILE__), 'schema', "#{current_schema}.sql")
144
- schema_sql = File.open(schema_file,"rb:UTF-8") { |f|f.read }
138
+ schema_file = File.expand_path File.join(File.dirname(__FILE__), "schema", "#{current_schema}.sql")
139
+ schema_sql = File.open(schema_file, "rb:UTF-8") { |f| f.read }
145
140
  loader.execute(drop_sql).do
146
141
  loader.execute(schema_sql).do
147
142
  loader.execute(sp_sql).do
@@ -188,14 +183,14 @@ module TinyTds
188
183
  end
189
184
 
190
185
  def sp_several_prints_sql
191
- %|CREATE PROCEDURE tinytds_TestSeveralPrints
186
+ %(CREATE PROCEDURE tinytds_TestSeveralPrints
192
187
  AS
193
188
  PRINT 'hello 1'
194
189
  PRINT 'hello 2'
195
- PRINT 'hello 3'|
190
+ PRINT 'hello 3')
196
191
  end
197
192
 
198
- def find_value(id, column, query_options={})
193
+ def find_value(id, column, query_options = {})
199
194
  query_options[:timezone] ||= :utc
200
195
  sql = "SELECT [#{column}] FROM [datatypes] WHERE [id] = #{id}"
201
196
  @client.execute(sql).each(query_options).first[column.to_s]
@@ -223,19 +218,19 @@ module TinyTds
223
218
  # docker-compose.yml handles this automatically for us. In instances where someone is using their own local mssql container they'll
224
219
  # need to set up the networks manually and set TINYTDS_UNIT_HOST to their mssql container name
225
220
  # For anything other than localhost just use the environment config
226
- toxi_host = ENV['TOXIPROXY_HOST'] || 'localhost'
221
+ toxi_host = ENV["TOXIPROXY_HOST"] || "localhost"
227
222
  toxi_api_port = 8474
228
223
  toxi_test_port = 1234
229
224
  Toxiproxy.host = "http://#{toxi_host}:#{toxi_api_port}"
230
225
 
231
- toxi_upstream_host = ENV['TINYTDS_UNIT_HOST_TEST'] || ENV['TINYTDS_UNIT_HOST'] || 'localhost'
232
- toxi_upstream_port = ENV['TINYTDS_UNIT_PORT'] || 1433
226
+ toxi_upstream_host = ENV["TINYTDS_UNIT_HOST_TEST"] || ENV["TINYTDS_UNIT_HOST"] || "localhost"
227
+ toxi_upstream_port = ENV["TINYTDS_UNIT_PORT"] || 1433
233
228
 
234
229
  puts "\n-------------------------"
235
230
  puts "Toxiproxy api listener: #{toxi_host}:#{toxi_api_port}"
236
231
  puts "Toxiproxy unit test listener: #{toxi_host}:#{toxi_test_port}"
237
232
  puts "Toxiproxy upstream sqlserver: #{toxi_upstream_host}:#{toxi_upstream_port}"
238
- puts '-------------------------'
233
+ puts "-------------------------"
239
234
 
240
235
  Toxiproxy.populate([
241
236
  {
data/test/thread_test.rb CHANGED
@@ -1,25 +1,23 @@
1
- require 'test_helper'
2
- require 'logger'
3
- require 'benchmark'
1
+ require "test_helper"
2
+ require "logger"
3
+ require "benchmark"
4
4
 
5
5
  class ThreadTest < TinyTds::TestCase
6
-
7
- describe 'Threaded SELECT queries' do
8
-
6
+ describe "Threaded SELECT queries" do
9
7
  before do
10
8
  @logger = Logger.new $stdout
11
9
  @logger.level = Logger::WARN
12
10
  @poolsize = 4
13
11
  @numthreads = 10
14
12
  @query = "waitfor delay '00:00:01'"
15
- @pool = ConnectionPool.new(:size => @poolsize, :timeout => 5) { new_connection }
13
+ @pool = ConnectionPool.new(size: @poolsize, timeout: 5) { new_connection }
16
14
  end
17
15
 
18
16
  after do
19
17
  @pool.shutdown { |c| c.close }
20
18
  end
21
19
 
22
- it 'should finish faster in parallel' do
20
+ it "should finish faster in parallel" do
23
21
  skip if sqlserver_azure?
24
22
  x = Benchmark.realtime do
25
23
  threads = []
@@ -35,24 +33,22 @@ class ThreadTest < TinyTds::TestCase
35
33
  threads.each { |t| t.join }
36
34
  end
37
35
  assert x < @numthreads, "#{x} is not faster than #{@numthreads} seconds"
38
- mintime = (1.0*@numthreads/@poolsize).ceil
36
+ mintime = (1.0 * @numthreads / @poolsize).ceil
39
37
  @logger.info "#{@numthreads} queries on #{@poolsize} threads: #{x} sec. Minimum time: #{mintime} sec."
40
38
  assert x > mintime, "#{x} is not slower than #{mintime} seconds"
41
39
  end
42
40
 
43
- it 'should not crash on error in parallel' do
41
+ it "should not crash on error in parallel" do
44
42
  skip if sqlserver_azure?
45
43
  threads = []
46
44
  @numthreads.times do |i|
47
45
  threads << Thread.new do
48
46
  @pool.with do |client|
49
- begin
50
- result = client.execute "select dbname()"
51
- result.each { |r| puts r }
52
- rescue Exception => _e
53
- # We are throwing an error on purpose here since 0.6.1 would
54
- # segfault on errors thrown in threads
55
- end
47
+ result = client.execute "select dbname()"
48
+ result.each { |r| puts r }
49
+ rescue => _e
50
+ # We are throwing an error on purpose here since 0.6.1 would
51
+ # segfault on errors thrown in threads
56
52
  end
57
53
  end
58
54
  end
@@ -60,27 +56,25 @@ class ThreadTest < TinyTds::TestCase
60
56
  assert true
61
57
  end
62
58
 
63
- it 'should cancel when hitting timeout in thread' do
59
+ it "should cancel when hitting timeout in thread" do
64
60
  exception = false
65
61
 
66
62
  thread = Thread.new do
67
63
  @pool.with do |client|
68
- begin
69
- delay = ('0' + (connection_timeout + 2).to_s)[-2,2] # Two seconds longer than default.
70
- result = client.execute "waitfor delay '00:00:#{delay}'; select db_name()"
71
- result.each { |r| puts r }
72
- rescue TinyTds::Error => e
73
- if e.message == 'Adaptive Server connection timed out'
74
- exception = true
75
- end
64
+ delay = ("0" + (connection_timeout + 2).to_s)[-2, 2] # Two seconds longer than default.
65
+ result = client.execute "waitfor delay '00:00:#{delay}'; select db_name()"
66
+ result.each { |r| puts r }
67
+ rescue TinyTds::Error => e
68
+ if e.message == "Adaptive Server connection timed out"
69
+ exception = true
76
70
  end
77
71
  end
78
72
  end
79
73
 
80
74
  timer_thread = Thread.new do
81
75
  # Sleep until after the timeout should have been reached
82
- sleep(connection_timeout+2)
83
- if not exception
76
+ sleep(connection_timeout + 2)
77
+ if !exception
84
78
  thread.kill
85
79
  raise "Timeout passed without query timing out"
86
80
  end
@@ -91,8 +85,5 @@ class ThreadTest < TinyTds::TestCase
91
85
 
92
86
  assert exception
93
87
  end
94
-
95
88
  end
96
-
97
89
  end
98
-
data/tiny_tds.gemspec CHANGED
@@ -1,32 +1,31 @@
1
- # -*- encoding: utf-8 -*-
2
- $LOAD_PATH.push File.expand_path('../lib', __FILE__)
3
- require 'tiny_tds/version'
1
+ $LOAD_PATH.push File.expand_path("../lib", __FILE__)
2
+ require "tiny_tds/version"
4
3
 
5
4
  Gem::Specification.new do |s|
6
- s.name = 'tiny_tds'
7
- s.version = TinyTds::VERSION
8
- s.platform = Gem::Platform::RUBY
9
- s.authors = ['Ken Collins', 'Erik Bryn', 'Will Bond']
10
- s.email = ['ken@metaskills.net', 'will@wbond.net']
11
- s.homepage = 'http://github.com/rails-sqlserver/tiny_tds'
12
- s.summary = 'TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library.'
13
- s.description = 'TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library. Developed for the ActiveRecord SQL Server adapter.'
14
- s.files = `git ls-files`.split("\n") + Dir.glob('exe/*')
15
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
- s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
17
- s.require_paths = ['lib']
18
- s.rdoc_options = ['--charset=UTF-8']
19
- s.extensions = ['ext/tiny_tds/extconf.rb']
20
- s.license = 'MIT'
21
- s.required_ruby_version = '>= 2.7.0'
22
- s.metadata['msys2_mingw_dependencies'] = 'freetds'
23
- s.add_dependency 'bigdecimal', '~> 3'
24
- s.add_development_dependency 'mini_portile2', '~> 2.5.0'
25
- s.add_development_dependency 'rake', '~> 13.0.0'
26
- s.add_development_dependency 'rake-compiler', '~> 1.2'
27
- s.add_development_dependency 'rake-compiler-dock', '~> 1.4.0'
28
- s.add_development_dependency 'minitest', '~> 5.14.0'
29
- s.add_development_dependency 'minitest-reporters', '~> 1.6.1'
30
- s.add_development_dependency 'connection_pool', '~> 2.2.0'
31
- s.add_development_dependency 'toxiproxy', '~> 2.0.0'
5
+ s.name = "tiny_tds"
6
+ s.version = TinyTds::VERSION
7
+ s.platform = Gem::Platform::RUBY
8
+ s.authors = ["Ken Collins", "Erik Bryn", "Will Bond"]
9
+ s.email = ["ken@metaskills.net", "will@wbond.net"]
10
+ s.homepage = "http://github.com/rails-sqlserver/tiny_tds"
11
+ s.summary = "TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library."
12
+ s.description = "TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library. Developed for the ActiveRecord SQL Server adapter."
13
+ s.files = `git ls-files`.split("\n") + Dir.glob("exe/*")
14
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
15
+ s.require_paths = ["lib"]
16
+ s.rdoc_options = ["--charset=UTF-8"]
17
+ s.extensions = ["ext/tiny_tds/extconf.rb"]
18
+ s.license = "MIT"
19
+ s.required_ruby_version = ">= 2.7.0"
20
+ s.metadata["msys2_mingw_dependencies"] = "freetds"
21
+ s.add_dependency "bigdecimal", "~> 3"
22
+ s.add_development_dependency "mini_portile2", "~> 2.8.0"
23
+ s.add_development_dependency "rake", "~> 13.0.0"
24
+ s.add_development_dependency "rake-compiler", "~> 1.2"
25
+ s.add_development_dependency "rake-compiler-dock", "~> 1.9.1"
26
+ s.add_development_dependency "minitest", "~> 5.25"
27
+ s.add_development_dependency "minitest-reporters", "~> 1.6.1"
28
+ s.add_development_dependency "connection_pool", "~> 2.2.0"
29
+ s.add_development_dependency "toxiproxy", "~> 2.0.0"
30
+ s.add_development_dependency "standard", "~> 1.31.0"
32
31
  end
metadata CHANGED
@@ -1,16 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tiny_tds
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.2.0
5
5
  platform: x64-mingw-ucrt
6
6
  authors:
7
7
  - Ken Collins
8
8
  - Erik Bryn
9
9
  - Will Bond
10
- autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2024-12-15 00:00:00.000000000 Z
12
+ date: 2025-02-11 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: bigdecimal
@@ -32,14 +31,14 @@ dependencies:
32
31
  requirements:
33
32
  - - "~>"
34
33
  - !ruby/object:Gem::Version
35
- version: 2.5.0
34
+ version: 2.8.0
36
35
  type: :development
37
36
  prerelease: false
38
37
  version_requirements: !ruby/object:Gem::Requirement
39
38
  requirements:
40
39
  - - "~>"
41
40
  - !ruby/object:Gem::Version
42
- version: 2.5.0
41
+ version: 2.8.0
43
42
  - !ruby/object:Gem::Dependency
44
43
  name: rake
45
44
  requirement: !ruby/object:Gem::Requirement
@@ -74,28 +73,28 @@ dependencies:
74
73
  requirements:
75
74
  - - "~>"
76
75
  - !ruby/object:Gem::Version
77
- version: 1.4.0
76
+ version: 1.9.1
78
77
  type: :development
79
78
  prerelease: false
80
79
  version_requirements: !ruby/object:Gem::Requirement
81
80
  requirements:
82
81
  - - "~>"
83
82
  - !ruby/object:Gem::Version
84
- version: 1.4.0
83
+ version: 1.9.1
85
84
  - !ruby/object:Gem::Dependency
86
85
  name: minitest
87
86
  requirement: !ruby/object:Gem::Requirement
88
87
  requirements:
89
88
  - - "~>"
90
89
  - !ruby/object:Gem::Version
91
- version: 5.14.0
90
+ version: '5.25'
92
91
  type: :development
93
92
  prerelease: false
94
93
  version_requirements: !ruby/object:Gem::Requirement
95
94
  requirements:
96
95
  - - "~>"
97
96
  - !ruby/object:Gem::Version
98
- version: 5.14.0
97
+ version: '5.25'
99
98
  - !ruby/object:Gem::Dependency
100
99
  name: minitest-reporters
101
100
  requirement: !ruby/object:Gem::Requirement
@@ -138,6 +137,20 @@ dependencies:
138
137
  - - "~>"
139
138
  - !ruby/object:Gem::Version
140
139
  version: 2.0.0
140
+ - !ruby/object:Gem::Dependency
141
+ name: standard
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: 1.31.0
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: 1.31.0
141
154
  description: TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library.
142
155
  Developed for the ActiveRecord SQL Server adapter.
143
156
  email:
@@ -178,6 +191,7 @@ files:
178
191
  - lib/tiny_tds/3.1/tiny_tds.so
179
192
  - lib/tiny_tds/3.2/tiny_tds.so
180
193
  - lib/tiny_tds/3.3/tiny_tds.so
194
+ - lib/tiny_tds/3.4/tiny_tds.so
181
195
  - lib/tiny_tds/bin.rb
182
196
  - lib/tiny_tds/client.rb
183
197
  - lib/tiny_tds/error.rb
@@ -187,47 +201,20 @@ files:
187
201
  - patches/freetds/1.00.27/0001-mingw_missing_inet_pton.diff
188
202
  - patches/freetds/1.00.27/0002-Don-t-use-MSYS2-file-libws2_32.diff
189
203
  - patches/libiconv/1.14/1-avoid-gets-error.patch
190
- - ports/x64-mingw-ucrt/freetds/1.4.23/bin/bsqldb.exe
191
- - ports/x64-mingw-ucrt/freetds/1.4.23/bin/datacopy.exe
192
- - ports/x64-mingw-ucrt/freetds/1.4.23/bin/defncopy.exe
193
- - ports/x64-mingw-ucrt/freetds/1.4.23/bin/freebcp.exe
194
- - ports/x64-mingw-ucrt/freetds/1.4.23/bin/libct-4.dll
195
- - ports/x64-mingw-ucrt/freetds/1.4.23/bin/libsybdb-5.dll
196
- - ports/x64-mingw-ucrt/freetds/1.4.23/bin/osql
197
- - ports/x64-mingw-ucrt/freetds/1.4.23/bin/tdspool.exe
198
- - ports/x64-mingw-ucrt/freetds/1.4.23/bin/tsql.exe
199
- - ports/x64-mingw-ucrt/freetds/1.4.23/lib/libct.dll.a
200
- - ports/x64-mingw-ucrt/freetds/1.4.23/lib/libct.la
201
- - ports/x64-mingw-ucrt/freetds/1.4.23/lib/libsybdb.dll.a
202
- - ports/x64-mingw-ucrt/freetds/1.4.23/lib/libsybdb.la
203
- - ports/x64-mingw-ucrt/libiconv/1.17/bin/iconv.exe
204
- - ports/x64-mingw-ucrt/libiconv/1.17/bin/libcharset-1.dll
205
- - ports/x64-mingw-ucrt/libiconv/1.17/bin/libiconv-2.dll
206
- - ports/x64-mingw-ucrt/libiconv/1.17/lib/libcharset.dll.a
207
- - ports/x64-mingw-ucrt/libiconv/1.17/lib/libcharset.la
208
- - ports/x64-mingw-ucrt/libiconv/1.17/lib/libiconv.dll.a
209
- - ports/x64-mingw-ucrt/libiconv/1.17/lib/libiconv.la
210
- - ports/x64-mingw-ucrt/openssl/3.4.0/bin/c_rehash
211
- - ports/x64-mingw-ucrt/openssl/3.4.0/bin/libcrypto-3-x64.dll
212
- - ports/x64-mingw-ucrt/openssl/3.4.0/bin/libssl-3-x64.dll
213
- - ports/x64-mingw-ucrt/openssl/3.4.0/bin/openssl.exe
204
+ - ports/x64-mingw-ucrt/bin/defncopy.exe
205
+ - ports/x64-mingw-ucrt/bin/libsybdb-5.dll
206
+ - ports/x64-mingw-ucrt/bin/tsql.exe
214
207
  - setup_cimgruby_dev.sh
215
208
  - start_dev.sh
216
209
  - tasks/native_gem.rake
217
210
  - tasks/package.rake
218
211
  - tasks/ports.rake
219
- - tasks/ports/freetds.rb
220
- - tasks/ports/libiconv.rb
221
- - tasks/ports/openssl.rb
222
- - tasks/ports/recipe.rb
223
212
  - tasks/test.rake
224
- - test/benchmark/query.rb
225
- - test/benchmark/query_odbc.rb
226
- - test/benchmark/query_tinytds.rb
227
213
  - test/bin/install-freetds.sh
228
214
  - test/bin/install-mssql.ps1
229
215
  - test/bin/install-mssqltools.sh
230
216
  - test/bin/install-openssl.sh
217
+ - test/bin/restore-from-native-gem.ps1
231
218
  - test/bin/setup_tinytds_db.sh
232
219
  - test/bin/setup_volume_permissions.sh
233
220
  - test/client_test.rb
@@ -246,7 +233,6 @@ homepage: http://github.com/rails-sqlserver/tiny_tds
246
233
  licenses:
247
234
  - MIT
248
235
  metadata: {}
249
- post_install_message:
250
236
  rdoc_options:
251
237
  - "--charset=UTF-8"
252
238
  require_paths:
@@ -258,15 +244,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
258
244
  version: '3.1'
259
245
  - - "<"
260
246
  - !ruby/object:Gem::Version
261
- version: 3.4.dev
247
+ version: 3.5.dev
262
248
  required_rubygems_version: !ruby/object:Gem::Requirement
263
249
  requirements:
264
250
  - - ">="
265
251
  - !ruby/object:Gem::Version
266
252
  version: '0'
267
253
  requirements: []
268
- rubygems_version: 3.3.26
269
- signing_key:
254
+ rubygems_version: 3.6.2
270
255
  specification_version: 4
271
256
  summary: TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library.
272
257
  test_files: []