tiny_tds 1.1.0-x86-mingw32 → 1.2.0.beta1-x86-mingw32
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/.gitattributes +1 -0
- data/README.md +26 -6
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/ext/tiny_tds/extconf.rb +20 -7
- data/ext/tiny_tds/extconsts.rb +2 -2
- data/ports/patches/freetds/{1.00.21 → 1.00.27}/0001-mingw_missing_inet_pton.diff +4 -4
- data/test/bin/install-openssl.sh +1 -1
- data/test/bin/setup.sh +6 -4
- data/test/result_test.rb +1 -1
- data/test/schema_test.rb +1 -1
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91698f999953c9b4f9973283a5de58d52d74a7df
|
4
|
+
data.tar.gz: 339bceccb950d73b0dced64e747da9585a5d2eea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbfa97f8d87dce79e8dc95f5daa27570ec6581b56de05f4101f6be182ac99d5808c9865058f0a39daabad7f0ea1dbba6e7f9576c29535c2100da32508f860896
|
7
|
+
data.tar.gz: 44eb832f858d324e70c58d03ca4ea0c678fca32e140d493c842e28fed14bb6c4f253f50ee6632b1c0a79c7dae868c4920ab402c00201ef0ebb35dfedd39d7cee
|
data/.gitattributes
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
*.diff eol=lf
|
data/README.md
CHANGED
@@ -5,6 +5,7 @@
|
|
5
5
|
* [](https://ci.appveyor.com/project/rails-sqlserver/tiny-tds/branch/master) - Appveyor
|
6
6
|
* [](https://codeclimate.com/github/rails-sqlserver/tiny_tds) - Code Climate
|
7
7
|
* [](https://rubygems.org/gems/tiny_tds) - Gem Version
|
8
|
+
* [](https://dependencyci.com/github/rails-sqlserver/tiny_tds) - Dependency Status
|
8
9
|
* [](https://gitter.im/rails-sqlserver/activerecord-sqlserver-adapter) - Community
|
9
10
|
|
10
11
|
The TinyTDS gem is meant to serve the extremely common use-case of connecting, querying and iterating over results to Microsoft SQL Server or Sybase databases from Ruby using the FreeTDS's DB-Library API.
|
@@ -331,19 +332,38 @@ TinyTDS is fully tested with the Azure platform. You must set the `azure: true`
|
|
331
332
|
|
332
333
|
**IMPORTANT**: Do not use `username@server.database.windows.net` for the username connection option! You must use the shorter `username@server` instead!
|
333
334
|
|
334
|
-
|
335
|
+
Also, please read the [Azure SQL Database General Guidelines and Limitations](https://msdn.microsoft.com/en-us/library/ee336245.aspx) MSDN article to understand the differences. Specifically, the connection constraints section!
|
336
|
+
|
337
|
+
## Connection Settings
|
338
|
+
|
339
|
+
A DBLIB connection does not have the same default SET options for a standard SMS SQL Server connection. Hence, we recommend the following options post establishing your connection.
|
340
|
+
|
341
|
+
#### SQL Server
|
335
342
|
|
336
343
|
```sql
|
337
|
-
SET
|
344
|
+
SET ANSI_DEFAULTS ON
|
345
|
+
|
346
|
+
SET QUOTED_IDENTIFIER ON
|
338
347
|
SET CURSOR_CLOSE_ON_COMMIT OFF
|
339
|
-
SET ANSI_NULL_DFLT_ON ON
|
340
348
|
SET IMPLICIT_TRANSACTIONS OFF
|
349
|
+
SET TEXTSIZE 2147483647
|
350
|
+
SET CONCAT_NULL_YIELDS_NULL ON
|
351
|
+
```
|
352
|
+
|
353
|
+
#### Azure
|
354
|
+
|
355
|
+
```sql
|
356
|
+
SET ANSI_NULLS ON
|
357
|
+
SET ANSI_NULL_DFLT_ON ON
|
341
358
|
SET ANSI_PADDING ON
|
342
|
-
SET QUOTED_IDENTIFIER ON
|
343
359
|
SET ANSI_WARNINGS ON
|
344
|
-
```
|
345
360
|
|
346
|
-
|
361
|
+
SET QUOTED_IDENTIFIER ON
|
362
|
+
SET CURSOR_CLOSE_ON_COMMIT OFF
|
363
|
+
SET IMPLICIT_TRANSACTIONS OFF
|
364
|
+
SET TEXTSIZE 2147483647
|
365
|
+
SET CONCAT_NULL_YIELDS_NULL ON
|
366
|
+
```
|
347
367
|
|
348
368
|
|
349
369
|
## Thread Safety
|
data/Rakefile
CHANGED
@@ -68,8 +68,8 @@ Rake::ExtensionTask.new('tiny_tds', gemspec) do |ext|
|
|
68
68
|
gemplat = spec.platform.to_s
|
69
69
|
host = platform_host_map[gemplat]
|
70
70
|
dlls = [
|
71
|
-
"
|
72
|
-
"
|
71
|
+
"libcrypto32-#{OPENSSL_VERSION}-#{host}.dll",
|
72
|
+
"libssl32-#{OPENSSL_VERSION}-#{host}.dll",
|
73
73
|
'libiconv-2.dll',
|
74
74
|
'libsybdb-5.dll'
|
75
75
|
]
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.2.0.beta1
|
data/ext/tiny_tds/extconf.rb
CHANGED
@@ -151,6 +151,19 @@ def define_libssl_recipe(host)
|
|
151
151
|
end
|
152
152
|
end
|
153
153
|
|
154
|
+
def execute(action, command, options={})
|
155
|
+
prev_path = ENV['PATH']
|
156
|
+
if host=~/mingw/
|
157
|
+
git_perl = 'C:/Program Files/Git/usr/bin'
|
158
|
+
if File.directory?(git_perl)
|
159
|
+
ENV['PATH'] = git_perl + ';' + ENV['PATH']
|
160
|
+
ENV['PERL'] = 'perl'
|
161
|
+
end
|
162
|
+
end
|
163
|
+
super
|
164
|
+
ENV['PATH'] = prev_path
|
165
|
+
end
|
166
|
+
|
154
167
|
def configure
|
155
168
|
config = if host=~/mingw/
|
156
169
|
host=~/x86_64/ ? 'mingw64' : 'mingw'
|
@@ -181,20 +194,20 @@ def define_libssl_recipe(host)
|
|
181
194
|
|
182
195
|
def compile
|
183
196
|
super
|
184
|
-
# OpenSSL DLLs are called "
|
197
|
+
# OpenSSL DLLs are called "libcrypto32.dll" and "libssl32.dll" per default,
|
185
198
|
# regardless to the version. This is best suited to meet the Windows DLL hell.
|
186
199
|
# To avoid any conflicts we do a static build and build DLLs afterwards,
|
187
200
|
# with our own naming scheme.
|
188
|
-
execute "mkdef-
|
189
|
-
execute "mkdef-
|
190
|
-
dllwrap("
|
191
|
-
dllwrap("
|
201
|
+
execute "mkdef-crypto32", "(perl util/mkdef.pl crypto 32 >libcrypto32.def)"
|
202
|
+
execute "mkdef-ssl32", "(perl util/mkdef.pl ssl 32 >libssl32.def)"
|
203
|
+
dllwrap("libcrypto32-#{version}-#{host}", "libcrypto.dll.a", "libcrypto32.def", "libcrypto.a -lws2_32 -lgdi32 -lcrypt32")
|
204
|
+
dllwrap("libssl32-#{version}-#{host}", "libssl.dll.a", "libssl32.def", "libssl.a libcrypto.dll.a")
|
192
205
|
end
|
193
206
|
|
194
207
|
def install
|
195
208
|
super
|
196
|
-
FileUtils.cp "#{work_path}/
|
197
|
-
FileUtils.cp "#{work_path}/
|
209
|
+
FileUtils.cp "#{work_path}/libcrypto32-#{version}-#{host}.dll", "#{path}/bin/"
|
210
|
+
FileUtils.cp "#{work_path}/libssl32-#{version}-#{host}.dll", "#{path}/bin/"
|
198
211
|
FileUtils.cp "#{work_path}/libcrypto.dll.a", "#{path}/lib/"
|
199
212
|
FileUtils.cp "#{work_path}/libssl.dll.a", "#{path}/lib/"
|
200
213
|
end
|
data/ext/tiny_tds/extconsts.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
ICONV_VERSION = ENV['TINYTDS_ICONV_VERSION'] || "1.14"
|
3
3
|
ICONV_SOURCE_URI = "http://ftp.gnu.org/pub/gnu/libiconv/libiconv-#{ICONV_VERSION}.tar.gz"
|
4
4
|
|
5
|
-
OPENSSL_VERSION = ENV['TINYTDS_OPENSSL_VERSION'] || '1.
|
5
|
+
OPENSSL_VERSION = ENV['TINYTDS_OPENSSL_VERSION'] || '1.1.0e'
|
6
6
|
OPENSSL_SOURCE_URI = "https://www.openssl.org/source/openssl-#{OPENSSL_VERSION}.tar.gz"
|
7
7
|
|
8
|
-
FREETDS_VERSION = ENV['TINYTDS_FREETDS_VERSION'] || "1.00.
|
8
|
+
FREETDS_VERSION = ENV['TINYTDS_FREETDS_VERSION'] || "1.00.27"
|
9
9
|
FREETDS_VERSION_INFO = Hash.new { |h,k|
|
10
10
|
h[k] = {files: "ftp://ftp.freetds.org/pub/freetds/stable/freetds-#{k}.tar.bz2"}
|
11
11
|
}
|
@@ -1,16 +1,16 @@
|
|
1
1
|
diff --git a/src/tds/tls.c b/src/tds/tls.c
|
2
|
-
index
|
2
|
+
index 09e7fa0..1da18f6 100644
|
3
3
|
--- a/src/tds/tls.c
|
4
4
|
+++ b/src/tds/tls.c
|
5
|
-
@@ -
|
6
|
-
#define SSL_PTR bio
|
5
|
+
@@ -101,6 +101,29 @@
|
6
|
+
#define SSL_PTR BIO_get_data(bio)
|
7
7
|
#endif
|
8
8
|
|
9
9
|
+/*
|
10
10
|
+ * Add a workaround for older Mingw versions without inet_pton().
|
11
11
|
+ * This means RubyInstallers DevKit-4.7.2 in particular.
|
12
12
|
+ */
|
13
|
-
+#if defined(
|
13
|
+
+#if defined(__MINGW32__) && !defined(InetPtonA)
|
14
14
|
+ #include <windows.h>
|
15
15
|
+
|
16
16
|
+ static HMODULE ws2_32 = NULL;
|
data/test/bin/install-openssl.sh
CHANGED
@@ -10,7 +10,7 @@ fi
|
|
10
10
|
wget https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz
|
11
11
|
tar -xzf openssl-$OPENSSL_VERSION.tar.gz
|
12
12
|
cd openssl-$OPENSSL_VERSION
|
13
|
-
./config --prefix=/
|
13
|
+
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
|
14
14
|
make
|
15
15
|
make install
|
16
16
|
cd ..
|
data/test/bin/setup.sh
CHANGED
@@ -3,15 +3,17 @@
|
|
3
3
|
set -x
|
4
4
|
set -e
|
5
5
|
|
6
|
-
|
6
|
+
tag=1.3
|
7
7
|
|
8
|
-
|
8
|
+
docker pull metaskills/mssql-server-linux-tinytds:$tag
|
9
|
+
|
10
|
+
container=$(docker ps -a -q --filter ancestor=metaskills/mssql-server-linux-tinytds:$tag)
|
9
11
|
if [[ -z $container ]]; then
|
10
|
-
docker run -p 1433:1433 -d metaskills/mssql-server-linux-tinytds && sleep 10
|
12
|
+
docker run -p 1433:1433 -d metaskills/mssql-server-linux-tinytds:$tag && sleep 10
|
11
13
|
exit
|
12
14
|
fi
|
13
15
|
|
14
|
-
container=$(docker ps -q --filter ancestor=metaskills/mssql-server-linux-tinytds)
|
16
|
+
container=$(docker ps -q --filter ancestor=metaskills/mssql-server-linux-tinytds:$tag)
|
15
17
|
if [[ -z $container ]]; then
|
16
18
|
docker start $container && sleep 10
|
17
19
|
fi
|
data/test/result_test.rb
CHANGED
data/test/schema_test.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tiny_tds
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0.beta1
|
5
5
|
platform: x86-mingw32
|
6
6
|
authors:
|
7
7
|
- Ken Collins
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2017-03-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: mini_portile2
|
@@ -108,6 +108,7 @@ extensions: []
|
|
108
108
|
extra_rdoc_files: []
|
109
109
|
files:
|
110
110
|
- ".codeclimate.yml"
|
111
|
+
- ".gitattributes"
|
111
112
|
- ".gitignore"
|
112
113
|
- ".rubocop.yml"
|
113
114
|
- ".travis.yml"
|
@@ -145,11 +146,11 @@ files:
|
|
145
146
|
- lib/tiny_tds/error.rb
|
146
147
|
- lib/tiny_tds/result.rb
|
147
148
|
- lib/tiny_tds/version.rb
|
148
|
-
- ports/i686-w64-mingw32/bin/
|
149
|
+
- ports/i686-w64-mingw32/bin/libcrypto32-1.1.0e-i686-w64-mingw32.dll
|
149
150
|
- ports/i686-w64-mingw32/bin/libiconv-2.dll
|
151
|
+
- ports/i686-w64-mingw32/bin/libssl32-1.1.0e-i686-w64-mingw32.dll
|
150
152
|
- ports/i686-w64-mingw32/bin/libsybdb-5.dll
|
151
|
-
- ports/
|
152
|
-
- ports/patches/freetds/1.00.21/0001-mingw_missing_inet_pton.diff
|
153
|
+
- ports/patches/freetds/1.00.27/0001-mingw_missing_inet_pton.diff
|
153
154
|
- test/appveyor/dbsetup.ps1
|
154
155
|
- test/appveyor/dbsetup.sql
|
155
156
|
- test/benchmark/query.rb
|
@@ -188,12 +189,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
188
189
|
version: 2.0.0
|
189
190
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
190
191
|
requirements:
|
191
|
-
- - "
|
192
|
+
- - ">"
|
192
193
|
- !ruby/object:Gem::Version
|
193
|
-
version:
|
194
|
+
version: 1.3.1
|
194
195
|
requirements: []
|
195
196
|
rubyforge_project:
|
196
|
-
rubygems_version: 2.
|
197
|
+
rubygems_version: 2.6.8
|
197
198
|
signing_key:
|
198
199
|
specification_version: 4
|
199
200
|
summary: TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library.
|