tiny_tds 2.1.2 → 3.2.1
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 +5 -5
- data/.github/workflows/ci.yml +571 -0
- data/.gitignore +2 -0
- data/CHANGELOG.md +56 -1
- data/Gemfile +1 -8
- data/ISSUE_TEMPLATE.md +1 -1
- data/README.md +89 -89
- data/Rakefile +44 -30
- data/VERSION +1 -1
- data/docker-compose.yml +34 -0
- data/ext/tiny_tds/client.c +100 -59
- data/ext/tiny_tds/client.h +5 -3
- data/ext/tiny_tds/extconf.rb +173 -52
- data/ext/tiny_tds/extconsts.rb +4 -11
- data/ext/tiny_tds/result.c +52 -45
- data/ext/tiny_tds/tiny_tds_ext.c +4 -1
- data/lib/tiny_tds/bin.rb +12 -26
- data/lib/tiny_tds/client.rb +38 -42
- data/lib/tiny_tds/error.rb +0 -2
- data/lib/tiny_tds/gem.rb +5 -14
- data/lib/tiny_tds/result.rb +0 -2
- data/lib/tiny_tds/version.rb +1 -1
- data/lib/tiny_tds.rb +28 -47
- data/setup_cimgruby_dev.sh +25 -0
- data/start_dev.sh +21 -0
- data/tasks/native_gem.rake +12 -10
- data/tasks/package.rake +1 -3
- data/tasks/ports.rake +14 -77
- data/tasks/test.rake +3 -5
- data/test/bin/install-freetds.sh +2 -4
- data/test/bin/install-mssql.ps1 +42 -0
- data/test/bin/install-mssqltools.sh +9 -0
- data/test/bin/restore-from-native-gem.ps1 +10 -0
- data/test/bin/setup_tinytds_db.sh +7 -0
- data/test/bin/setup_volume_permissions.sh +10 -0
- data/test/client_test.rb +152 -116
- data/test/gem_test.rb +39 -118
- data/test/result_test.rb +285 -350
- data/test/schema_test.rb +369 -395
- data/test/sql/db-create.sql +18 -0
- data/test/sql/db-login.sql +38 -0
- data/test/test_helper.rb +112 -85
- data/test/thread_test.rb +22 -31
- data/tiny_tds.gemspec +28 -26
- metadata +85 -59
- data/.travis.yml +0 -24
- data/BACKERS.md +0 -32
- data/appveyor.yml +0 -51
- data/tasks/ports/freetds.rb +0 -37
- data/tasks/ports/libiconv.rb +0 -43
- data/tasks/ports/openssl.rb +0 -78
- data/tasks/ports/recipe.rb +0 -52
- data/test/appveyor/dbsetup.ps1 +0 -27
- data/test/appveyor/dbsetup.sql +0 -9
- data/test/benchmark/query.rb +0 -77
- data/test/benchmark/query_odbc.rb +0 -106
- data/test/benchmark/query_tinytds.rb +0 -126
- data/test/bin/setup.sh +0 -19
- data/test/schema/sqlserver_2000.sql +0 -140
- data/test/schema/sqlserver_2005.sql +0 -140
- data/test/schema/sqlserver_2014.sql +0 -140
- data/test/schema/sqlserver_2016.sql +0 -140
- data/test/schema/sybase_ase.sql +0 -138
- /data/test/schema/{sqlserver_2008.sql → sqlserver_2017.sql} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: cfb4ec4fbcdaee13a7f5e8dbcf6640dfba4adfa44f785224400a088b9dce4238
|
4
|
+
data.tar.gz: 8030a777d32c4dcc5dc5916dd599cef31388ed5f7288a593871189ef46fbb4b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 327cd3c216f474994c6215714f5394d2e190b7db3d730224259532fe98c98076d801baf97503efa34e8c1cb495b880242989c0a085765f420d3b59fd1e4f2b6d
|
7
|
+
data.tar.gz: 3f75d35aed67db12f7505c503be4c76b6ccced517865dd0776612afe8af2c0c19e6ccd53f31ff4d29a55017a16ed27e4e4cdf16979e20e0dd5dec9772c15f937
|
@@ -0,0 +1,571 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
pull_request:
|
6
|
+
workflow_dispatch:
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
cross-compile:
|
10
|
+
strategy:
|
11
|
+
fail-fast: false
|
12
|
+
matrix:
|
13
|
+
platform:
|
14
|
+
- "x64-mingw32"
|
15
|
+
- "x64-mingw-ucrt"
|
16
|
+
- "x86_64-linux-gnu"
|
17
|
+
- "x86_64-linux-musl"
|
18
|
+
- "aarch64-linux-gnu"
|
19
|
+
- "aarch64-linux-musl"
|
20
|
+
|
21
|
+
name: cross-compile
|
22
|
+
runs-on: ubuntu-22.04
|
23
|
+
steps:
|
24
|
+
- uses: actions/checkout@v4
|
25
|
+
|
26
|
+
- name: Set up Ruby
|
27
|
+
uses: ruby/setup-ruby@v1
|
28
|
+
with:
|
29
|
+
ruby-version: "2.7"
|
30
|
+
|
31
|
+
- name: "Install dependencies"
|
32
|
+
run: bundle install
|
33
|
+
|
34
|
+
- name: Write used versions into file
|
35
|
+
shell: bash
|
36
|
+
run: bundle exec rake ports:version_file[${{ matrix.platform }}]
|
37
|
+
|
38
|
+
- name: Cache ports
|
39
|
+
uses: actions/cache@v4
|
40
|
+
with:
|
41
|
+
path: ports
|
42
|
+
key: cross-compiled-v1-${{ matrix.platform }}-${{ hashFiles('**/.ports_versions') }}
|
43
|
+
restore-keys: |
|
44
|
+
cross-compiled-v1-${{ matrix.platform }}-${{ hashFiles('**/.ports_versions') }}
|
45
|
+
cross-compiled-v1-${{ matrix.platform }}-
|
46
|
+
|
47
|
+
- name: Build gem
|
48
|
+
shell: bash
|
49
|
+
run: bundle exec rake gem:native:${{ matrix.platform }}
|
50
|
+
|
51
|
+
- uses: actions/upload-artifact@v4
|
52
|
+
with:
|
53
|
+
name: gem-${{ matrix.platform }}
|
54
|
+
path: pkg/*.gem
|
55
|
+
|
56
|
+
install-windows-mingw:
|
57
|
+
needs:
|
58
|
+
- cross-compile
|
59
|
+
strategy:
|
60
|
+
fail-fast: false
|
61
|
+
matrix:
|
62
|
+
ruby-version:
|
63
|
+
- "2.7"
|
64
|
+
- "3.0"
|
65
|
+
|
66
|
+
name: install-windows-mingw
|
67
|
+
runs-on: windows-latest
|
68
|
+
steps:
|
69
|
+
- uses: ruby/setup-ruby@v1
|
70
|
+
with:
|
71
|
+
ruby-version: ${{ matrix.ruby-version }}
|
72
|
+
bundler-cache: true
|
73
|
+
|
74
|
+
- name: Download precompiled gem
|
75
|
+
uses: actions/download-artifact@v4
|
76
|
+
with:
|
77
|
+
name: gem-x64-mingw32
|
78
|
+
|
79
|
+
- name: Install native gem
|
80
|
+
shell: pwsh
|
81
|
+
run: gem install "tiny_tds-*.gem"
|
82
|
+
|
83
|
+
- name: Test if TinyTDS loads
|
84
|
+
shell: pwsh
|
85
|
+
run: |
|
86
|
+
ruby -e "require 'tiny_tds'; puts TinyTds::Gem.root_path"
|
87
|
+
exit $LASTEXITCODE
|
88
|
+
|
89
|
+
- name: Test if tsql wrapper works
|
90
|
+
shell: pwsh
|
91
|
+
run: |
|
92
|
+
tsql-ttds -C
|
93
|
+
exit $LASTEXITCODE
|
94
|
+
|
95
|
+
- name: Test if defncopy wrapper works
|
96
|
+
shell: pwsh
|
97
|
+
run: |
|
98
|
+
defncopy-ttds -v
|
99
|
+
exit $LASTEXITCODE
|
100
|
+
|
101
|
+
test-windows-mingw:
|
102
|
+
needs:
|
103
|
+
- cross-compile
|
104
|
+
strategy:
|
105
|
+
fail-fast: false
|
106
|
+
matrix:
|
107
|
+
force-encryption:
|
108
|
+
- false
|
109
|
+
- true
|
110
|
+
mssql-version:
|
111
|
+
- 2017
|
112
|
+
- 2019
|
113
|
+
- 2022
|
114
|
+
ruby-version:
|
115
|
+
- "2.7"
|
116
|
+
- "3.0"
|
117
|
+
|
118
|
+
name: test-windows-mingw
|
119
|
+
runs-on: windows-latest
|
120
|
+
steps:
|
121
|
+
- uses: actions/checkout@v4
|
122
|
+
|
123
|
+
- uses: ruby/setup-ruby@v1
|
124
|
+
with:
|
125
|
+
ruby-version: ${{ matrix.ruby-version }}
|
126
|
+
bundler-cache: true
|
127
|
+
|
128
|
+
- name: Download precompiled gem
|
129
|
+
uses: actions/download-artifact@v4
|
130
|
+
with:
|
131
|
+
name: gem-x64-mingw32
|
132
|
+
|
133
|
+
- name: Install native gem and restore cross-compiled code from it
|
134
|
+
shell: pwsh
|
135
|
+
run: "& ./test/bin/restore-from-native-gem.ps1"
|
136
|
+
env:
|
137
|
+
RUBY_ARCHITECTURE: "x64-mingw32"
|
138
|
+
|
139
|
+
- name: Setup MSSQL
|
140
|
+
uses: rails-sqlserver/setup-mssql@v1
|
141
|
+
with:
|
142
|
+
components: sqlcmd,sqlengine
|
143
|
+
version: ${{ matrix.mssql-version }}
|
144
|
+
sa-password: c0MplicatedP@ssword
|
145
|
+
force-encryption: ${{ matrix.force-encryption }}
|
146
|
+
|
147
|
+
- name: Setup MSSQL database
|
148
|
+
shell: pwsh
|
149
|
+
run: |
|
150
|
+
& sqlcmd -S localhost -U sa -P "c0MplicatedP@ssword" -i ./test/sql/db-create.sql
|
151
|
+
& sqlcmd -S localhost -U sa -P "c0MplicatedP@ssword" -i ./test/sql/db-login.sql
|
152
|
+
|
153
|
+
- name: Install toxiproxy-server
|
154
|
+
shell: pwsh
|
155
|
+
run: |
|
156
|
+
choco install toxiproxy-server --version=2.5.0 -y
|
157
|
+
Start-Process toxiproxy-server
|
158
|
+
|
159
|
+
- name: Test gem
|
160
|
+
shell: pwsh
|
161
|
+
run: bundle exec rake test
|
162
|
+
env:
|
163
|
+
TOXIPROXY_HOST: "localhost"
|
164
|
+
|
165
|
+
- name: Test Summary
|
166
|
+
uses: test-summary/action@v2
|
167
|
+
with:
|
168
|
+
paths: "test/reports/TEST-*.xml"
|
169
|
+
if: always()
|
170
|
+
|
171
|
+
install-windows-ucrt:
|
172
|
+
needs:
|
173
|
+
- cross-compile
|
174
|
+
strategy:
|
175
|
+
fail-fast: false
|
176
|
+
matrix:
|
177
|
+
ruby-version:
|
178
|
+
- "3.1"
|
179
|
+
- "3.2"
|
180
|
+
- "3.3"
|
181
|
+
- "3.4"
|
182
|
+
|
183
|
+
name: install-windows-ucrt
|
184
|
+
runs-on: windows-latest
|
185
|
+
steps:
|
186
|
+
- uses: ruby/setup-ruby@v1
|
187
|
+
with:
|
188
|
+
ruby-version: ${{ matrix.ruby-version }}
|
189
|
+
bundler-cache: true
|
190
|
+
|
191
|
+
- name: Download precompiled gem
|
192
|
+
uses: actions/download-artifact@v4
|
193
|
+
with:
|
194
|
+
name: gem-x64-mingw-ucrt
|
195
|
+
|
196
|
+
- name: Install native gem
|
197
|
+
shell: pwsh
|
198
|
+
run: gem install "tiny_tds-*.gem"
|
199
|
+
|
200
|
+
- name: Test if TinyTDS loads
|
201
|
+
shell: pwsh
|
202
|
+
run: |
|
203
|
+
ruby -e "require 'tiny_tds'; puts TinyTds::Gem.root_path"
|
204
|
+
exit $LASTEXITCODE
|
205
|
+
|
206
|
+
- name: Test if tsql wrapper works
|
207
|
+
shell: pwsh
|
208
|
+
run: |
|
209
|
+
tsql-ttds -C
|
210
|
+
exit $LASTEXITCODE
|
211
|
+
|
212
|
+
- name: Test if defncopy wrapper works
|
213
|
+
shell: pwsh
|
214
|
+
run: |
|
215
|
+
defncopy-ttds -v
|
216
|
+
exit $LASTEXITCODE
|
217
|
+
|
218
|
+
test-windows-ucrt:
|
219
|
+
needs:
|
220
|
+
- cross-compile
|
221
|
+
strategy:
|
222
|
+
fail-fast: false
|
223
|
+
matrix:
|
224
|
+
force-encryption:
|
225
|
+
- false
|
226
|
+
- true
|
227
|
+
mssql-version:
|
228
|
+
- 2017
|
229
|
+
- 2019
|
230
|
+
- 2022
|
231
|
+
ruby-version:
|
232
|
+
- "3.1"
|
233
|
+
- "3.2"
|
234
|
+
- "3.3"
|
235
|
+
- "3.4"
|
236
|
+
|
237
|
+
name: test-windows-ucrt
|
238
|
+
runs-on: windows-latest
|
239
|
+
steps:
|
240
|
+
- uses: actions/checkout@v4
|
241
|
+
|
242
|
+
- uses: ruby/setup-ruby@v1
|
243
|
+
with:
|
244
|
+
ruby-version: ${{ matrix.ruby-version }}
|
245
|
+
bundler-cache: true
|
246
|
+
|
247
|
+
- name: Download precompiled gem
|
248
|
+
uses: actions/download-artifact@v4
|
249
|
+
with:
|
250
|
+
name: gem-x64-mingw-ucrt
|
251
|
+
|
252
|
+
- name: Install native gem and restore cross-compiled code from it
|
253
|
+
shell: pwsh
|
254
|
+
run: "& ./test/bin/restore-from-native-gem.ps1"
|
255
|
+
env:
|
256
|
+
RUBY_ARCHITECTURE: "x64-mingw-ucrt"
|
257
|
+
|
258
|
+
- name: Setup MSSQL
|
259
|
+
uses: rails-sqlserver/setup-mssql@v1
|
260
|
+
with:
|
261
|
+
components: sqlcmd,sqlengine
|
262
|
+
version: ${{ matrix.mssql-version }}
|
263
|
+
sa-password: c0MplicatedP@ssword
|
264
|
+
force-encryption: ${{ matrix.force-encryption }}
|
265
|
+
|
266
|
+
- name: Setup MSSQL database
|
267
|
+
shell: pwsh
|
268
|
+
run: |
|
269
|
+
& sqlcmd -S localhost -U sa -P "c0MplicatedP@ssword" -i ./test/sql/db-create.sql
|
270
|
+
& sqlcmd -S localhost -U sa -P "c0MplicatedP@ssword" -i ./test/sql/db-login.sql
|
271
|
+
|
272
|
+
- name: Install toxiproxy-server
|
273
|
+
shell: pwsh
|
274
|
+
run: |
|
275
|
+
choco install toxiproxy-server --version=2.5.0 -y
|
276
|
+
Start-Process toxiproxy-server
|
277
|
+
|
278
|
+
- name: Test gem
|
279
|
+
shell: pwsh
|
280
|
+
run: bundle exec rake test
|
281
|
+
env:
|
282
|
+
TOXIPROXY_HOST: "localhost"
|
283
|
+
|
284
|
+
- name: Test Summary
|
285
|
+
uses: test-summary/action@v2
|
286
|
+
with:
|
287
|
+
paths: "test/reports/TEST-*.xml"
|
288
|
+
if: always()
|
289
|
+
|
290
|
+
install-windows-native:
|
291
|
+
strategy:
|
292
|
+
fail-fast: false
|
293
|
+
matrix:
|
294
|
+
ruby-version:
|
295
|
+
- "2.7"
|
296
|
+
- "3.0"
|
297
|
+
- "3.1"
|
298
|
+
- "3.2"
|
299
|
+
- "3.3"
|
300
|
+
- "3.4"
|
301
|
+
|
302
|
+
name: install-windows-native
|
303
|
+
runs-on: windows-latest
|
304
|
+
steps:
|
305
|
+
- uses: actions/checkout@v4
|
306
|
+
|
307
|
+
- uses: ruby/setup-ruby@v1
|
308
|
+
with:
|
309
|
+
ruby-version: ${{ matrix.ruby-version }}
|
310
|
+
bundler-cache: true
|
311
|
+
|
312
|
+
- name: Build gem
|
313
|
+
shell: pwsh
|
314
|
+
run: gem build tiny_tds.gemspec
|
315
|
+
|
316
|
+
- name: Install gem
|
317
|
+
shell: pwsh
|
318
|
+
run: |
|
319
|
+
$gemVersion = (Get-Content VERSION).Trim()
|
320
|
+
gem install "tiny_tds-$gemVersion.gem"
|
321
|
+
|
322
|
+
- name: Test if TinyTDS loads
|
323
|
+
shell: pwsh
|
324
|
+
run: |
|
325
|
+
ruby -e "require 'tiny_tds'; puts TinyTds::Gem.root_path"
|
326
|
+
exit $LASTEXITCODE
|
327
|
+
|
328
|
+
- name: Test if tsql wrapper works
|
329
|
+
shell: pwsh
|
330
|
+
run: |
|
331
|
+
tsql-ttds -C
|
332
|
+
exit $LASTEXITCODE
|
333
|
+
|
334
|
+
- name: Test if defncopy wrapper works
|
335
|
+
shell: pwsh
|
336
|
+
run: |
|
337
|
+
defncopy-ttds -v
|
338
|
+
exit $LASTEXITCODE
|
339
|
+
|
340
|
+
install-linux:
|
341
|
+
needs:
|
342
|
+
- cross-compile
|
343
|
+
strategy:
|
344
|
+
fail-fast: false
|
345
|
+
matrix:
|
346
|
+
platform:
|
347
|
+
- "x86_64-linux-gnu"
|
348
|
+
- "x86_64-linux-musl"
|
349
|
+
- "aarch64-linux-gnu"
|
350
|
+
- "aarch64-linux-musl"
|
351
|
+
|
352
|
+
ruby-version:
|
353
|
+
- "2.7"
|
354
|
+
- "3.0"
|
355
|
+
- "3.1"
|
356
|
+
- "3.2"
|
357
|
+
- "3.3"
|
358
|
+
- "3.4"
|
359
|
+
|
360
|
+
include:
|
361
|
+
- platform: x86_64-linux-musl
|
362
|
+
docker_tag: "-alpine"
|
363
|
+
bootstrap: "apk add -U build-base &&" # required to compile bigdecimal on Ruby 2.7
|
364
|
+
|
365
|
+
- platform: aarch64-linux-gnu
|
366
|
+
docker_platform: "--platform=linux/arm64"
|
367
|
+
|
368
|
+
- platform: aarch64-linux-musl
|
369
|
+
docker_platform: "--platform=linux/arm64"
|
370
|
+
docker_tag: "-alpine"
|
371
|
+
bootstrap: "apk add -U build-base &&"
|
372
|
+
|
373
|
+
name: install-linux
|
374
|
+
runs-on: ubuntu-22.04
|
375
|
+
steps:
|
376
|
+
- name: Download precompiled gem
|
377
|
+
uses: actions/download-artifact@v4
|
378
|
+
with:
|
379
|
+
name: gem-${{ matrix.platform }}
|
380
|
+
path: precompiled/gems
|
381
|
+
|
382
|
+
- name: Setup QEMU for docker
|
383
|
+
uses: docker/setup-qemu-action@v3
|
384
|
+
if: ${{ matrix.docker_platform }} != ''
|
385
|
+
|
386
|
+
- run: |
|
387
|
+
docker run --rm -v $PWD/precompiled:/precompiled -w /precompiled \
|
388
|
+
${{ matrix.docker_platform }} ruby:${{ matrix.ruby-version }}${{ matrix.docker_tag }} \
|
389
|
+
sh -c "
|
390
|
+
gem update --system 3.3.22 &&
|
391
|
+
${{ matrix.bootstrap }}
|
392
|
+
gem install --no-document ./gems/tiny_tds-*.gem &&
|
393
|
+
ruby -e \"require 'tiny_tds'; puts TinyTds::Gem.root_path\" &&
|
394
|
+
tsql-ttds -C &&
|
395
|
+
defncopy-ttds -v
|
396
|
+
"
|
397
|
+
|
398
|
+
test-linux:
|
399
|
+
needs:
|
400
|
+
- cross-compile
|
401
|
+
name: test-linux
|
402
|
+
strategy:
|
403
|
+
fail-fast: false
|
404
|
+
matrix:
|
405
|
+
force-encryption:
|
406
|
+
- false
|
407
|
+
- true
|
408
|
+
|
409
|
+
mssql-version:
|
410
|
+
- 2019
|
411
|
+
- 2022
|
412
|
+
|
413
|
+
ruby-version:
|
414
|
+
- "2.7"
|
415
|
+
- "3.0"
|
416
|
+
- "3.1"
|
417
|
+
- "3.2"
|
418
|
+
- "3.3"
|
419
|
+
- "3.4"
|
420
|
+
|
421
|
+
runs-on: ubuntu-22.04
|
422
|
+
steps:
|
423
|
+
- uses: actions/checkout@v4
|
424
|
+
|
425
|
+
- uses: ruby/setup-ruby@v1
|
426
|
+
with:
|
427
|
+
ruby-version: ${{ matrix.ruby-version }}
|
428
|
+
bundler-cache: true
|
429
|
+
|
430
|
+
- name: Download precompiled gem
|
431
|
+
uses: actions/download-artifact@v4
|
432
|
+
with:
|
433
|
+
name: gem-x86_64-linux-gnu
|
434
|
+
|
435
|
+
- name: Install native gem and restore cross-compiled code from it
|
436
|
+
shell: pwsh
|
437
|
+
run: "& ./test/bin/restore-from-native-gem.ps1"
|
438
|
+
env:
|
439
|
+
RUBY_ARCHITECTURE: "x86_64-linux-gnu"
|
440
|
+
|
441
|
+
- name: Setup MSSQL
|
442
|
+
uses: rails-sqlserver/setup-mssql@v1
|
443
|
+
with:
|
444
|
+
components: sqlcmd,sqlengine
|
445
|
+
version: ${{ matrix.mssql-version }}
|
446
|
+
sa-password: "c0MplicatedP@ssword"
|
447
|
+
force-encryption: ${{ matrix.force-encryption }}
|
448
|
+
|
449
|
+
- name: Setup MSSQL database
|
450
|
+
run: |
|
451
|
+
sqlcmd -S localhost -U sa -P "c0MplicatedP@ssword" -i ./test/sql/db-create.sql
|
452
|
+
sqlcmd -S localhost -U sa -P "c0MplicatedP@ssword" -i ./test/sql/db-login.sql
|
453
|
+
|
454
|
+
- name: Install toxiproxy-server
|
455
|
+
run: |
|
456
|
+
wget -O toxiproxy-2.5.0.deb https://github.com/Shopify/toxiproxy/releases/download/v2.5.0/toxiproxy_2.5.0_linux_amd64.deb
|
457
|
+
sudo dpkg -i toxiproxy-2.5.0.deb
|
458
|
+
sudo toxiproxy-server &
|
459
|
+
|
460
|
+
- name: Run tests
|
461
|
+
run: bundle exec rake test
|
462
|
+
env:
|
463
|
+
TOXIPROXY_HOST: "localhost"
|
464
|
+
|
465
|
+
- name: Test Summary
|
466
|
+
uses: test-summary/action@v2
|
467
|
+
with:
|
468
|
+
paths: "test/reports/TEST-*.xml"
|
469
|
+
if: always()
|
470
|
+
|
471
|
+
install-linux-native:
|
472
|
+
strategy:
|
473
|
+
fail-fast: false
|
474
|
+
matrix:
|
475
|
+
ruby-version:
|
476
|
+
- "2.7"
|
477
|
+
- "3.0"
|
478
|
+
- "3.1"
|
479
|
+
- "3.2"
|
480
|
+
- "3.3"
|
481
|
+
- "3.4"
|
482
|
+
|
483
|
+
name: install-linux-native
|
484
|
+
runs-on: ubuntu-22.04
|
485
|
+
steps:
|
486
|
+
- uses: actions/checkout@v4
|
487
|
+
|
488
|
+
- uses: ruby/setup-ruby@v1
|
489
|
+
with:
|
490
|
+
ruby-version: ${{ matrix.ruby-version }}
|
491
|
+
bundler-cache: true
|
492
|
+
|
493
|
+
- name: Install FreeTDS
|
494
|
+
shell: bash
|
495
|
+
run: ./test/bin/install-freetds.sh
|
496
|
+
|
497
|
+
- name: Build gem
|
498
|
+
shell: bash
|
499
|
+
run: gem build tiny_tds.gemspec
|
500
|
+
|
501
|
+
- name: Install gem
|
502
|
+
shell: bash
|
503
|
+
run: gem install "tiny_tds-$(cat VERSION).gem"
|
504
|
+
|
505
|
+
- name: Test if TinyTDS loads
|
506
|
+
shell: bash
|
507
|
+
run: ruby -e "require 'tiny_tds'; puts TinyTds::Gem.root_path"
|
508
|
+
|
509
|
+
- name: Test if tsql wrapper works
|
510
|
+
shell: bash
|
511
|
+
run: tsql-ttds -C
|
512
|
+
|
513
|
+
- name: Test if defncopy wrapper works
|
514
|
+
shell: bash
|
515
|
+
run: defncopy-ttds -v
|
516
|
+
|
517
|
+
install_macos:
|
518
|
+
strategy:
|
519
|
+
fail-fast: false
|
520
|
+
matrix:
|
521
|
+
ruby-version:
|
522
|
+
- "2.7"
|
523
|
+
- "3.0"
|
524
|
+
- "3.1"
|
525
|
+
- "3.2"
|
526
|
+
- "3.3"
|
527
|
+
- "3.4"
|
528
|
+
|
529
|
+
name: install-macos-m1
|
530
|
+
runs-on: macos-14
|
531
|
+
steps:
|
532
|
+
- uses: actions/checkout@v4
|
533
|
+
|
534
|
+
- name: Install FreeTDS
|
535
|
+
run: brew install freetds
|
536
|
+
shell: bash
|
537
|
+
|
538
|
+
- uses: ruby/setup-ruby@v1
|
539
|
+
with:
|
540
|
+
ruby-version: ${{ matrix.ruby-version }}
|
541
|
+
bundler-cache: true
|
542
|
+
|
543
|
+
- name: Build gem
|
544
|
+
shell: bash
|
545
|
+
run: gem build tiny_tds.gemspec
|
546
|
+
|
547
|
+
- name: Install gem and test if TinyTDS loads
|
548
|
+
shell: bash
|
549
|
+
run: |
|
550
|
+
gemVersion=$(<VERSION tr -d '[:space:]')
|
551
|
+
gem install "tiny_tds-$gemVersion.gem"
|
552
|
+
|
553
|
+
- name: Test if TinyTDS loads
|
554
|
+
shell: bash
|
555
|
+
run: |
|
556
|
+
ruby -e "require 'tiny_tds'; puts TinyTds::Gem.root_path"
|
557
|
+
|
558
|
+
standardrb:
|
559
|
+
name: standardrb
|
560
|
+
runs-on: ubuntu-22.04
|
561
|
+
steps:
|
562
|
+
- uses: actions/checkout@v4
|
563
|
+
|
564
|
+
- uses: ruby/setup-ruby@v1
|
565
|
+
with:
|
566
|
+
ruby-version: "2.7"
|
567
|
+
bundler-cache: true
|
568
|
+
|
569
|
+
- name: Check standardrb
|
570
|
+
shell: bash
|
571
|
+
run: bundle exec standardrb
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,57 @@
|
|
1
|
+
## 3.2.1
|
2
|
+
|
3
|
+
* Ensure the native Gem loads on Windows. Fixes #581.
|
4
|
+
* Use OpenSSL v3.4.1 for Windows and Linux builds.
|
5
|
+
|
6
|
+
## 3.2.0
|
7
|
+
|
8
|
+
* Reduce number of files shipped with precompiled Windows gem
|
9
|
+
* Provide precompiled gem for Linux (GNU + MUSL / 64-bit x86 + ARM)
|
10
|
+
* Fix wrappers for `tsql` and `defncopy` utility.
|
11
|
+
* Use libiconv v1.18 and freetds v1.4.26 for Windows and Linux builds
|
12
|
+
|
13
|
+
## 3.1.0
|
14
|
+
|
15
|
+
* Add Ruby 3.4 to the cross compile list
|
16
|
+
|
17
|
+
## 3.0.0
|
18
|
+
|
19
|
+
* Drop support for Ruby < 2.7
|
20
|
+
* Drop support for SQL Server < 2017
|
21
|
+
* Drop support for FreeTDS < 1.0
|
22
|
+
* No longer provide a 32-bit Windows build
|
23
|
+
* Raise error if FreeTDS is unable to send command buffer to the server
|
24
|
+
* Use freetds v1.4.23, libiconv v1.17 and OpenSSL v3.4.0 for Windows builds
|
25
|
+
* Add `bigdecimal` to dependencies
|
26
|
+
|
27
|
+
## 2.1.7
|
28
|
+
|
29
|
+
* Add Ruby 3.3 to the cross compile list
|
30
|
+
|
31
|
+
## 2.1.6
|
32
|
+
|
33
|
+
* Add Ruby 3.0, 3.1, and 3.2 to the cross compile list
|
34
|
+
* Fix segfault when asking if client was dead after closing it. Fixes #519.
|
35
|
+
* Mark `alloc` function as undefined on `TinyTds::Result`. Fixes #515.
|
36
|
+
* Fix Gem installation on Windows by adding default freetds msys path. Fixes #522
|
37
|
+
* Search for `freetds` in `/opt/homebrew` when installing on Apple Silicon. Fixes #484, #492 and #508.
|
38
|
+
|
39
|
+
## 2.1.5
|
40
|
+
|
41
|
+
* Fix compilation errors for Amazon Linux 1. Fixes #495.
|
42
|
+
* Fix segfault for login timeouts
|
43
|
+
|
44
|
+
## 2.1.4
|
45
|
+
|
46
|
+
* Improve handling of network related timeouts
|
47
|
+
* Fix error reporting when preceded by info message
|
48
|
+
|
49
|
+
## 2.1.3
|
50
|
+
|
51
|
+
* Removed old/unused appveyor config
|
52
|
+
* Remove old Rubies from CI & cross compile list
|
53
|
+
* Add Ruby 2.6 and 2.7 to the cross compile list
|
54
|
+
|
1
55
|
## 2.1.2
|
2
56
|
|
3
57
|
* Use Kernel.BigDecimal vs BigDecimal.new. Fixes #409.
|
@@ -207,6 +261,8 @@ Use both dbsetversion() vs. dbsetlversion. Partially reverts #62.
|
|
207
261
|
state of the client and the need to use Result#cancel to stop processing active results. It is also
|
208
262
|
safe to call Result#cancel over and over again.
|
209
263
|
* Look for the syb headers only.
|
264
|
+
* Fix minitest global matchers warnings.
|
265
|
+
* Fix test warnings.
|
210
266
|
|
211
267
|
|
212
268
|
## 0.3.2
|
@@ -252,4 +308,3 @@ Use both dbsetversion() vs. dbsetlversion. Partially reverts #62.
|
|
252
308
|
|
253
309
|
|
254
310
|
## 0.1.0 Initial release!
|
255
|
-
|
data/Gemfile
CHANGED
data/ISSUE_TEMPLATE.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
* On Windows? If so, do you need devkit for your ruby install?
|
4
4
|
* Using Ubuntu? If so, you may have forgotten to install FreeTDS first.
|
5
|
-
* Are you using FreeTDS 0.
|
5
|
+
* Are you using FreeTDS 1.0.0 or later? Check `$ tsql -C` to find out.
|
6
6
|
* If not, please update then uninstall the TinyTDS gem and re-install it.
|
7
7
|
* Have you made sure to [enable SQL Server authentication](http://bit.ly/1Kw3set)?
|
8
8
|
* Doing work with threads and the raw client? Use the ConnectionPool gem?
|