-
Notifications
You must be signed in to change notification settings - Fork 46
/
CHANGELOG
3755 lines (3182 loc) · 178 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Changes from jTDS 1.3.1
=======================
10/29/2013 - Holger Rehn
o Fixed savepoint functionality for Sybase ASE that has been broken by the fix
for bug #569.
10/28/2013 - Holger Rehn
o Fixed a bug that could cause an empty value being returned as a single
whitespace when using Sybase ASE.
10/15/2013 - Holger Rehn
o Implemented support for the COMPUTE (BY) operator (bug #678) for Sybase ASE.
09/06/2013 - Holger Rehn
o Removed synchronization from method getAutoCommit().
09/03/2013 - Holger Rehn
o Fixed bug #715, infinite loop when parsing an SQL command.
o Fixed bug #710, invalid property handling in JtdsObjectFactory.
===============================================================================
06/08/2013 - jTDS 1.3.1 released
===============================================================================
Changes from jTDS 1.3.0
=======================
06/02/2013 - Holger Rehn
o Fixed bug #702, JtdsConnection.getMutex() isn't thread-safe.
o jTDS throws an SQLTimeoutException if an operation times out (bug #701).
05/16/2013 - Holger Rehn
o Added range check to class BlobBuffer as proposed by Benedict Elliott Smith.
o Applied patch for explicitly creating an in-memory BlobBuffer provided by
Benedict Elliott Smith.
05/03/2013 - Holger Rehn
o Fixed a bug that could cause the statement cache to be disabled.
o Improved statement cache performance.
o Removed unnecessary synchronization overhead from SQL statement parser.
05/01/2013 - Holger Rehn
o Fixed bug #687, JtdsObjectFactory don't accept the connection property name
mappings used in jTDS versions up to jTDS 1.2.6.
04/02/2013 - Holger Rehn
o Fixed bug #699, conversion from timestamp String to Date fails.
03/18/2013 - Holger Rehn
o Backported Kerberos support from jTDS 2.0.
03/08/2013 - Holger Rehn
o Improved fix for bug #694, the previous attempt wasn't sufficient.
03/07/2013 - Holger Rehn
o Applied fix for bug #695 provided by Keith Robinson.
o Fixed bug #694, jTDS logger may cause an NPE.
02/24/2013 - Holger Rehn
o Fixed bug #508, the driver ignored unspecified server errors signaled by a
TDS DONE token if no ERROR token has been received before.
02/18/2013 - Holger Rehn
o Fixed bug #682, error when using date/time escapes in a procedure call.
01/25/2013 - Holger Rehn
o Added test for JDBC date/time escapes used in a procedure call.
12/24/2012 - Holger Rehn
o Added test for bug #686, SQL error invalidates a Statement's internal state.
o Fixed bug #626 by added a type mapping for java.math.BigInteger.
12/19/2012 - Holger Rehn
o Applied fix for MSSQL 2000 compatibility provided by Andrew Fink (bug #683).
11/15/2012 - Holger Rehn
o Fixed bug #552, jTDS fails to find an SQL Server instance if the discovery
requests' response is split into multiple network packets.
10/28/2012 - Holger Rehn
o Added test for bug #575, parameter types not available via ParameterMetaData.
o Fixed build script, Maven artifacts are no longer included in the distro
package.
===============================================================================
10/27/2012 - jTDS 1.3.0 released
===============================================================================
Changes from jTDS 1.2.6
=======================
10/26/2012 - Holger Rehn
o Added test for bug #638, preparedStatement.setTimestamp sets seconds to 0.
o Added test for bug #644, updateNull not working with MSSQL DECIMAL field.
o Added test for bug #500, Statement.execute() fails if using cursors and
SHOWPLAN_ALL is set to ON.
o Fixed bug #528, any ResultSet gets dropped when using RETURN_GENERATED_KEYS.
o A ResultSet returned by Statement.getGeneratedKeys() is no longer updatable.
10/25/2012 - Holger Rehn
o Improved the database meta data by adding (JDBC4) column IS_AUTOINCREMENT.
o Removed unnecessary console logging from various unit tests.
o Improved performance by implementing non-blocking access to internal state.
o Improved overall driver performance by avoiding lookup of virtual data
streams, required for any request/response.
10/24/2012 - Holger Rehn
o Fixed a bug that caused Statement.close() to throw an exception for errors
caused by previously executed SQL statements.
o Added unit tests for bugs #473 and #635.
10/23/2012 - Holger Rehn
o Implemented non-locking SharedSocket finalizer (bug #609).
o Greatly improved virtual socket management performance if a large number of
statements is opened for a single connection.
o Improved logging, data stream IDs are not reused for a reasonable time span.
10/18/2012 - Holger Rehn
o Added test for bug #632, year-check 1753-9999 not valid for type DATE.
o Added test for bug #624, MS SQL Server 2008 full text search problem.
o Removed shell scripts for building jTDS from the Windows/Linux console.
o Extended build process to create and upload Maven artifacts to sonatype.org
(bug #636, bug #668, feature request #49, feature request #70).
10/15/2012 - Holger Rehn
o Fixed various JUnit tests causing warnings.
10/10/2012 - Holger Rehn
o Fixed format conversion errors for DATETIME, DATE and TIME values.
o Fixed bug #615, the SQL parser doesn't correctly handle function escapes
containing nested (unescaped) functions.
o Fixed bug #634, incorrect comment processing in callable statements.
10/09/2012 - Holger Rehn
o Fixed parameter name format for procedure calls using named parameters.
o Fixed unit tests that depend on date/time data types to be skipped if run
against a server not supporting that types.
10/08/2012 - Holger Rehn
o Fixed bug #647, preparing a statement including a WITH clause doesn't
retrieve resultset meta data.
10/06/2012 - Holger Rehn
o Added unit tests for bug #654 and the SQL parser bug reported in patch #115.
10/05/2012 - Holger Rehn
o Implemented support for the COMPUTE (BY) operator (bug #678, patch #48) and
added corresponding unit tests.
10/02/2012 - Holger Rehn
o Improved performance by using StringBuilder instead of StringBuffer.
o Corrected unit test for bug #507, the executing thread's interruption state
hasn't been cleared, causing subsequent tests to fail.
o Fixed bug #677, possible deadlock in JtdsStatement.close().
10/01/2012 - Holger Rehn
o Added test for bug #677.
o Fixed and greatly simplified SAfeTest.testCursorResultSetConcurrency0003().
o Fixed unit test for bug #343, failing if run against SQL Server 2005.
09/28/2012 - Holger Rehn
o Improved JUnit tests, setting server language "US-English" prevents a number
of tests from failing.
o Improved performance of ResultSetTest.testOutOfMemory() by about 100%.
o Corrected JUnit test for timestamp values prior to 06/15/1940 0:00:00.
o Fixed bug #676, error in SQL parser concerning multi line comments.
o Fixed bug #541, data type mismatch when using {ts}/{t}/{d} JDBC escapes and
added regression tests.
o Added test for bug #676.
o Improved test for bug #634.
09/27/2012 - Holger Rehn
o PreparedStatementTest.testPrepareFailWarning() doesn't fail anymore when run
against newer SQL Server versions or Sybase ASE.
09/26/2012 - Holger Rehn
o Added test for bug #634.
09/25/2012 - Holger Rehn
o Added test for bug #669.
o Fixed StatementTest to be less strict when checking query timeout.
09/24/2012 - Holger Rehn
o The driver now uses a real MAC address, if available and no address has been
specified via connection property (bug #672).
09/22/2012 - Holger Rehn
o Fixed a number of incorrect error messages.
o An attempt to execute a standard SQL statement using a CallableStatement now
throws an appropriate SQLException on preparation instead of spurious errors
when setting parameter values (bug #637).
o Test for bug #637.
09/21/2012 - Holger Rehn
o Fixed possible NPEs in JtdsObjectFactory (bug #633).
o Added missing getter/setter methods for connection property "autoCommit" in
class JtdsDataSource.
o Corrected data types for connection properties "autoCommit" and "useNTLMv2".
o Added missing properties to JtdsObjectFactoryUnitTest.testNoProperties().
o Added missing default for connection property "useNTLMv2".
o Corrected and simplified JtdsObjectFactoryTest and JtdsDataSourceTest.
o Fixed memory pollution caused by ThreadLocal Calendar instances (bug #661).
o Improved fix for bug #561 and bug #619 by not re-using GregorianCalendar
instances anymore.
o Implemented ResultSet.isClosed() method defined in JDBC 4.0 (bug #665).
09/20/2012 - Holger Rehn
o Added test for bug #657.
09/18/2012 - Holger Rehn
o Fixed buffer overflow in SQL parser (bug #673).
o Added missing description for 'autoCommit' property added in revision [1123].
o Corrected a number of JUnit tests.
09/07/2012 - Holger Rehn
o Fixed jTDS version reported by the driver.
08/22/2012 - Holger Rehn
o Updated feature matrix for SQL Server 2008 compatibility (bug #643).
08/21/2012 - Holger Rehn
o Applied build system changes proposed by Rainer Schwarze in patch #105.
o Added compiler settings missing in some build files.
o Applied patch #122 provided by Rainer Schwarze to use the Java build-in
DES and MD5 routines instead of our own implementations.
08/17/2012 - Holger Rehn
o Added service provider configuration file for JDBC driver class (bug #659).
o Applied patch provided by Rainer Schwarze to reduce log pollution during
emulated XA recovery (bug #656).
o Fixed spurious login timeouts that could occur in case multiple connections
are established concurrently (bug #667).
o Corrected bug, a stream hasn't been closed in CharsetInfo (Bug #642).
08/16/2012 - Holger Rehn
o Fixed typos in Messages.properties (bug #608).
o Removed build scripts for older Java versions.
o Re-included tests not compatible with older Java versions.
o Updated project web site.
o Removed obsolete libraries from project.
o Upgraded Apache Ant to version 1.8.4.
o Upgraded JUnit to version 4.10.
o Upgraded jCIFS to version 1.3.17
o Removed Java 1.3/JDBC 2 compatibility code.
o Removed WebRing code from the project web site (bug #660).
o Fixed a race condition when closing a JtdsStatement in multiple threads
concurrently (Patch #121, #118).
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|| ||
|| SourceForge Project Upgrade ||
|| ||
|| The previous tracker item IDs have been replaced by individual bug/patch ||
|| IDs and are no longer valid. ||
|| ||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
===============================================================================
08/15/2012 - jTDS 1.2.6 released
===============================================================================
Changes from jTDS 1.2.5
=======================
08/15/2012 - Holger Rehn
o Applied patch [3048203] by amallon, adding a new 'autoCommit' connection
property to override the auto commit default for newly created connections.
o Commented out tests not compatible with Java 1.4, that have been added since
the jTDS 1.2.5 release.
o Adopted build scripts to exclude test classes from distro.
03/22/2012 - Holger Rehn
o Applied patch [3476715] for bug [3260570] provided by Apaali, parsing
time values containing fractions of seconds may fail.
o Applied fix [3436324] suggested by Shane StClair, JtdsStatement.close()
failed due to invalid state.
09/04/2011 - Holger Rehn
o Applied patch [3290370] by Maarten van der Zwaart, re-send UDP recovery
packet when connecting an SQL Server by instance name.
o Applied patch [3224480] by Shane StClair, adding support for spatial types
geometry/geography for TDS versions greater than 7.0.
o Applied patch [3307731] by Rainer Schwarze, ResultSet cancellation may cause
connection to be closed.
o Applied backport of IPv6 support from 2.0 branch provided by George Dimitrov
and his unit test for the URL parser (patch [3402583]).
01/02/2011 - Holger Rehn
o Corrected bug [3141458], NPE if ResultSet.next() and ResultSet.close() are
called by multiple threads concurrently.
10/07/2010 - Holger Rehn
o Corrected bug [3078236], exception chaining time grows exponentially with
number of exceptions in chain.
o Corrected bug [3081749], SSPIJNIClient.getInstance() isn't thread-safe.
o Corrected a bug in JtdsStatement.close(), any RuntimeException would have
masked a prior SQLException.
o Improved fix for bug [2931326], Statement.close() cannot throw NPE anymore.
05/17/2010 - Holger Rehn
o Corrected bug [2931326], NPE if Statement.close() is called by multiple
threads concurrently.
o Applied fix for bug [3002431] by Rainer Schwarze, improved handling of port
discovery errors.
o Improved error messages if a value cannot be converted to a given SQL type.
o Corrected bug [3000472], TimerThread started when closing last connection.
o Fixed method synchronization in TimerThread.
===============================================================================
12/30/2009 - jTDS 1.2.5 released
===============================================================================
Changes from jTDS 1.2.4
=======================
12/30/2009 - Holger Rehn
o Corrected bug [2900139], NoClassDefFoundError with C3P0.
o Corrected bugs [2856350], [2898905], problems with JDBC4 stubs in GlassFish.
o Modified build process to remove JDBC4 stubs, feature request [2905814].
12/09/2009 - Holger Rehn
o Updated JCIFS to version 1.3.12
o Corrected bug [2911266], Default response timeout of 30 seconds if using
named pipes via JCIFS.
12/06/2009 - Holger Rehn
o Implemented PreparedStatement.toString(), feature request [2909009].
11/05/2009 - Holger Rehn
o Corrected bug [2892493], NullPointException when receiving character NULL
values (MS SQL Server 7.0 and later).
11/04/2009 - Holger Rehn
o Corrected bug [2891775], fix for [2340241] has broken Java 1.3 compatibility.
10/22/2009 - Holger Rehn
o Corrected bug [2883066], Numeric overflow in conversion BigInteger/BIGINT.
10/17/2009 - Holger Rehn
o Corrected bug [2871274], no soft kill for TimerThread.
o Improved performance by not using Exceptions for controlling the timer,
anymore.
o Corrected a bug that lead to login errors being masked by later exceptions.
===============================================================================
09/29/2009 - jTDS 1.2.4 released
===============================================================================
Changes from jTDS 1.2.3
=======================
09/28/2009 - Holger Rehn
o Corrected bug [2860742], getByte() causes overflow error for negative
values.
09/27/2009 - Holger Rehn
o Workaround for bug [2856350], JDBC4 method stubs make jTDS unusable.
===============================================================================
09/04/2009 - jTDS 1.2.3 released
===============================================================================
Changes from jTDS 1.2.2
=======================
08/21/2009 - Holger Rehn
o Corrected bug [2814376], varchar-type is truncated in non-unicode
environment.
08/20/2009 - Holger Rehn
o Corrected bug [2349058], DateTime allows invalid dates through
08/14/2009 - Holger Rehn
o Corrected bug [2181003], attempt to set a BC date invalidates
driver state.
08/11/2009 - Holger Rehn
o Corrected bug by backporting patch [2675463], getSchemas() now returns
schemas, not database users for MSSQL 2005 and later.
08/10/2009 - Holger Rehn
o Corrected bug [1855125], jTDS silently ignores integer overflows in
ResultSet's getter methods.
08/08/2009 - Holger Rehn
o Corrected bug [1755448], login failure leaves unclosed sockets.
o Added missing finalizer in connection class to ensure resources are released
if an application fails to close a connection.
08/07/2009 - Holger Rehn
o Corrected bug [2340241] by adding a new connection property 'processId'.
o Addressed feature request [1778933] by adding a new connection property
'socketKeepAlive'.
08/04/2009 - Holger Rehn
o Corrected bug [1845477], Added missing license info.
o Resolved issue [1955499], Performance problems with timestamps in
multi-threaded applications.
o Corrected bug [1793584], Login timeout canceled too early.
08/03/2009 - Holger Rehn
o Corrected bug [1802986], incorrect charset mapping between 'MAC'
and 'ISO-8859-1'.
o Resolved problem [1957748], Java VM is leaking memory in
File.deleteOnExit().
See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6664633.
07/31/2009 - Holger Rehn
o Corrected bug [2508201], date field is changed by 3 milliseconds.
07/30/2009 - Holger Rehn
o Corrected bug [2796385], running out of UDP sockets.
07/27/2009 - Holger Rehn
o Corrected bug [1869156] memory leak of WeakReferences.
o Corrected data truncation problem described in bug [2021839].
o Corrected bug [1811383] ArrayIndexOutOfBounds on executeBatch.
07/26/2009 - Holger Rehn
o Corrected bug [2021839] savepoint starts 2 transactions if it's the first
operation.
07/25/2009 - Holger Rehn
o Corrected bug [1843801] infinite loop if DB connection dies during a batch.
o Applied patch [1844846] jTDS cannot connect IBM/Netcool Omnibus.
o Added JDBC 4 method stubs, feature request [2021848].
07/24/2009 - Holger Rehn
o Corrected bug [2818256] a savepoint is invalid after rollback.
07/23/2009 - Holger Rehn
o Corrected bug [1883905] unintentional infinite wait.
o Applied patch [1714497] to avoid using Sun's SSL implementation.
===============================================================================
08/22/2007 - jTDS 1.2.2 released
===============================================================================
Changes from jTDS 1.2.1
=======================
08/18/2007 - Brian Heineman
o Applied Mike Hutchinson's fix for bug
[1774322] Sybase nulled text fields return not null
08/05/2007 - Brian Heineman
o Applied patch [1592113] NTLMv2 properties on datasource.
o Applied patch [1236417] 64-bit support for Single Sign On (SSO)
o Applied patch [1504761] Itanium and AMD64/EM64T 64 bit support for SSO
o Implemented feature [1491811] sqlState code for snapshot conflict.
o Updated SQL Server sqlState codes.
08/02/2007 - Brian Heineman
o Corrected bug [1765905] Driver version miscellanea is incorrect;
updated to 1.2.2.
===============================================================================
07/12/2007 - jTDS 1.2.1 released
===============================================================================
Changes from jTDS 1.2
=====================
07/12/2007 - Brian Heineman
o Applied patch from Alin Sinpalean for concurrent batch updates.
o Corrected Java 1.3/1.4 compile problem.
07/11/2007 - Brian Heineman
o Applied patch from Alin Sinpalean for cursor exception handling.
07/08/2007 - Brian Heineman
o Corrected bug [1571660] Changed reference from Statement.EXECUTE_FAILED
(which was added in Java 1.4) to JtdsStatement.EXECUTE_FAILED.
o Applied patch [1567127] Eclipse javadoc warnings.
o Applied patch [1567332] Updated build file to work with or without
backslashes on Windows. This also fixes the problem of having spaces
in the JAVA_HOME path.
o Applied patch [1567151] HTML validation patches.
o Applied patch [1567994] Updated equality checks.
o Corrected bug [1623668] Lost apostrophes in statement parameter
values (prepareSQL=0) by applying the patch mentioned in the issue;
added test to ensure that there are no regressions.
o Corrected bug [1437845] milliseconds are lost under JRE 1.3 by applying
the patch attached to the issue.
o Corrected bug [1696767] incorrect ResultSetMetaData when useLOBS=false by
applying the patch mentioned in the issue.
o Corrected bug [1453552] JTDS Driver returns wrong column type with sybase
by applying the patch attached to the issue.
o Corrected bug [1374518] rollback fails on Sybase 12.5 by applying the patch
attached to the issue.
o Corrected bug [1460746] Batching of Prepare Statements by applying the patch
attached to the issue.
o Applied patch [1460207] Connection.setCatalog() has invalid check
o Implemented feature [1749962] Temporary directory should be configurable
o Corrected bug [1596743] executeQuery absorbs thread interrupt status by
applying the patch mentioned in the issue.
06/23/2006 - Matt Brinkley
o Oops...checked in some test code. I backed out those changes.
06/23/2006 - Matt Brinkley
o Fixed the flags passed for NTLMv2 authentication. Before the fix,
authentication would fail in configuration where Minimum Session
Security for NTLM SSP based (including secure RPC) Servers setting
was set to 'Require NTLM v2 session security'.
05/19/2006 - Alin Sinpalean
o Fix the previous changelist. Copy-paste didn't really help there.
05/18/2006 - Alin Sinpalean
o Added support for SNAPSHOT transaction isolation, in the same way as the
new MS driver -- using setTransactionIsolation(4096).
04/05/2006 - Matt Brinkley
o NTLMv2 auth fix: now it doesn't NPE if server fails to send target info.
03/23/2006 - Matt Brinkley
o Added NTLMv2 support for windows authentication.
01/12/2006 - David Kilzer
o Applied Mike Hutchinson's fix for Bug [1403067] ProtocolException:
Invalid table TAB_NAME_TOKEN. TdsCore.tdsTableNameToken() now handles
tables referenced using server.database.owner.table syntax. Also
modified exception code to include the unknown TAB_NAME_TOKEN value.
12/22/2005 - David Kilzer
o Replaced JtdsObjectFactoryUnitTest.testAllProperties() method with an
inner class that extends DefaultPropertiesTestLibrary to make this
test class fail automatically when a new property is added to the
library class. Removed stale comments in JtdsDataSourceUnitTest.
o Fixed Bug [1386615] Connecting across domains with named pipes fails
on Windows. New 'useJCIFS' boolean parameter added that will force
use of the jCIFS library on Windows for named pipe connections.
o Updated ConnectionJDBC2UnitTest class to check for both an instance
field and a getter for all properties. Added "missing" getters to
ConnecionJDBC2 class: getAppName(), getBufferMaxMemory(),
getBufferMinPackets(), getDatabaseName(), getMacAddress(), getNamedPipe(),
getProgName(), getWsid(). Renamed package-private getters in
ConnectionJDBC2 class that returned boolean values to use "get" instead
of "is": getLastUpdateCount(), getUseUnicode(). Moved
DefaultPropertiesTestLibrary.ucFirst() to UnitTestBase class.
o Fixed default path for named pipes on Sybase. (Previous behavior
would always default to the SQL Server path!) Added
DefaultProperties.getNamedPipePath() method with unit tests.
12/21/2005 - David Kilzer
o Extracted the JtdsDataSource.addNonNullProperties() method from
getConnection(String, String) method for easier testing. Added inner
test class Test_JtdsDataSource_addNonNullProperties to
JtdsDataSourceUnitTest to test new addNonNullProperties() method.
Replaced call to Exception.getStackTrace() in
getConnection(String, String) with a call to Support.linkException().
Fixed addNonNullProperties() to set the serverType parameter if it is
not null. Note that this does not affect Driver.parseURL() which
ends up (re)setting that property from the URL.
12/20/2005 - David Kilzer
o Implemented RFE [1291335] Provide a mechanism for binding to a local
IP address. New "bindAddress" parameter introduced (Java 1.4 and newer
only).
o Updated UnitTestBase.invoke*() methods to link original exceptions to
RuntimeExceptions. Added new UnitTestBase.invokeSetInstanceField()
method. Added back suite tests to JtdsDataSourceUnitTest that test
default values on the JtdsDataSource class and its getReference()
method by setting the default values through reflection before testing.
This allows one new test method to be added to the
DefaultPropertiesTestLibrary class and for tests to fail everywhere a
developer hasn't implemented a new driver property yet.
12/19/2005 - David Kilzer
o Changed reference to old 'TdsDataSource' class in faq.html to newer
'JtdsDataSource' class.
o Alphabetized parameters in faq.html to make them easier to find.
o Added missing </code> tag in "badrpc" question in faq.html.
o Updated the loginTimeout parameter information in faq.html to document
behavior with TCP/IP connections.
o Fixed the "What are the class names...?" question to match the TOC
entry.
12/19/2005 - Alin Sinpalean
o Minor optimization in determining the scale for decimal parameters.
12/05/2005 - Alin Sinpalean
o Applied Mike's fix for bug [1371295] executeBatch returns incorrect counts.
Batch updates now always return an array of length equal to the batch size,
padded up with EXECUTE_FAILED values if necessary.
o Applied Mike's fix for a bug related to [1368058] Calling StoredProcedure
with functions (identifiers containing special characters not parsed).
11/25/2005 - Alin Sinpalean
o Corrected bug [1358059] Memory leak in add/remove statement. The remove
statement logic did not remove the WeakReference if the Statement had been
garbage collected.
o Corrected an issue in TdsData causing CHAR columns containing single blanks
to be returned as zero length strings.
o Removed redundand call to checkClosed() in TdsCore.
o Removed duplicate entries from Charsets.properties.
11/23/2005 - Alin Sinpalean
o Made a few modifications to the test suite to accomodate changes in SQL
Server 2005.
11/09/2005 - Alin Sinpalean
o Corrected bug [1351891] Using JtdsCallableStatement.setFloat causes
SQLException. findParameter() was called as if to retrieve parameter values
from the setByte(), setDouble() and setFloat() methods, which caused the
parameter not to be found.
===============================================================================
10/08/2005 - jTDS 1.2 released
===============================================================================
Changes from jTDS 1.1
=====================
11/03/2005 - Alin Sinpalean
o Applied Mike's fix for bug [1346086] Problem with DATABASE name change on
Sybase.
o Applied patch [1250393] modify getJdbcType() to handle subclass of basic
JDBC types, submitted by Joel Schneider (cognophile).
o Corrected a minor DatabaseMetaData error: supportsTransactionIsolationLevel
returned true for TRANSACTION_NONE or any invalid value.
10/31/2005 - Alin Sinpalean
o Corrected bug in JtdsDatabaseMetaData.getBestRowIdentifier(). Statement was
closed, causing errors when using the returned result set.
10/27/2005 - Mike Hutchinson
o Fixed bug "[1305275] Cursor opens fails when cursor threshold <> -1" by
amending MSCursorResultSet.
o Fixed bugs "[1283472] Unable to cancel statement with cursor resultset" and
"[1323363] Deadlock Exception not reported (SQL Server)" by amending
JtdsStatement executeSQL() and executeSQLQuery().
o Fixed a bug in handling output parameters that occurs when invoking remote
stored procedures. The TdsCore.tdsOutputParamToken method was amended.
o Implement RFE "[1289687] configurable socket setSoTimeout()". This also
offers a solution to bug "[1297306] Network problem can cause jTDS hang-up".
o Fixed bug "[1246270] Closing a statement after cancelling it throws an
exception" by amending JtdsStatement.close().
o [SQL Server 2005] Database meta data has been improved so that getColumns()
can distinguish between text and varchar(max), image and varbinary(max) etc.
Changes were required to JtdsDatabaseMetaData.getColumns() and a new method
getMSTypeName was added to TdsData. A test case has been added to Tds8Test.
o [Sybase ASE 15] Added support for new data types unitext, bigint and
unsigned smallint, int and bigint. This enhancement required changes to
TdsCore, TdsData and ResponseStream. New test cases have been added to
Tds5Test.
o [Sybase ASE 15] With ASE 15 the default packet size is now 2048 bytes. The
ConnectionJDBC and DefaultProperties classes have been amended so that the
server default is used when there is no packetSize connection property
present.
o [Documentation] Modified faq.html to document bug [1260507]
CallableStatement Exception and the new soTimeout connection property.
o [Documentation] Modified typemap.html to document the new Sybase datatypes.
10/20/2005 - Alin Sinpalean
o Corrected bug [1293415] Charset iso_1 is broken for Sybase. For Sybase the
server's iso_1 charset maps to the standard ISO-8859-1, rather than Cp1252
as it does for MS SQL Server.
o Applied Mike's fix for bug [1330118] SSL fails with SQL 2005 September CTP.
o Applied Mike's fix for bug [1329765] Pseudo column ROWSTAT is back with SQL
2005 (September CTP).
10/18/2005 - Alin Sinpalean
o Corrected bug [1327029] setFetchSize give incorrect error message.
o Corrected bug [1296482] setAutoCommit() behaviour. According to section
10.1.1 of the JDBC 3.0 spec (which takes precedence over the API
documentation) the transaction should only be committed if the auto-commit
mode is _changed_ during a transaction.
09/27/2005 - David Kilzer
o Added info to the FAQ about the jTDS implementation of
javax.naming.spi.ObjectFactory.
09/26/2005 - David Kilzer
o Applied Mike's patch for bug [1299147] Latest change does not compile
with java 1.5. This patch cleans up the use of checkOpen() in a
number of methods in JtdsCallableStatement, JtdsPreparedStatement,
JtdsStatement and JtdsResultSet.
09/23/2005 - David Kilzer
o Fixed compilation on Java 1.5 in MessagesPropertiesUnitTest. Thanks
to Mike Hutchinson for the patch in bug [1299147] Latest change does
not compile with java 1.5.
09/22/2005 - David Kilzer
o Added MessagesPropertiesUnitTest to ensure every prop.* property has
a matching prop.desc.* property and vice-versa.
09/21/2005 - David Kilzer
o Applied patch for bug [1253127] Improved decimal peformance for MSSQL
SP4 by Mike Hutchinson. This patch also fixes bug [1236078] Procedure
doesn't get called for some BigDecimal values (in Java 1.5).
09/20/2005 - David Kilzer
o Removed RequestStream.setMaxPrecision() and added a 'maxPrecision'
argument to the RequestStream constructor. This value should never
change during the life of the RequestStream, and thus should be set
in the constructor. Updated SharedSocket.getRequestStream() method.
o Refactored SharedSocket constructor to take only a single argument
of type ConnectionJDBC2. Added some package-private getter methods
to ConnectionJDBC2.
o Replaced SharedNamedPipe.instance() method with a public constructor.
o Simplified SharedNamedPipe and SharedLocalNamedPipe constructors by
passing in a ConnectionJDBC2 object instead of a laundry list of
data values. Added more package-private getter methods to the
ConnectionJDBC2 class. Moved SharedNamedPipe.calculateBufferSize()
to Support.calculateNamedPipeBufferSize(). Changed hard-coded buffer
values in SharedLocalNamedPipe constructor to use the value returned
from Support.calculateNamedPipeBufferSize().
09/09/2005 - David Kilzer
o Applied Mike's patch to fix a small bug with getProcedureColumns() in
JtdsDatabaseMetaData and SQL Server 7.0 where the RETURN_VALUE
parameter was not prefixed with an '@' character.
09/07/2005 - David Kilzer
o Extracted code from the original Support.linkException() method to accept
generic Exception objects. Provided linkException() convenience methods
for SQLException and SQLWarning classes. Linked IOException thrown from
ConnectionJDBC2.createNamedPipe() for connection timeouts using the new
method.
o Applied Mike's fix for bug [1273988] Insert UTF8 string fails when length
is 255 (ASE12.5.2).
09/06/2005 - David Kilzer
o Applied patch for bug [1277000] "All pipe instances are busy" error not
handled properly. Added TestAllPipInstancesAreBusy tool class which is
used to manually reproduce the error. Updated "loginTimeout" entry on
FAQ. Added more use of Support.linkException() in ConnectionJDBC2
constructor.
o Created new Support.isWindowsOS() method to consolidate duplicate code.
Added SupportUnitTest class to test new method.
08/30/2005 - David Kilzer
o Updated FAQ to reflect new behavior of the namedPipe parameter since
patch [1122494] SQL Server Authentication & Named pipes was applied
in jTDS 1.0.3.
07/27/2005 - Alin Sinpalean
o Corrected bug [1245775] Column type inconsistency when useLOBs=false.
07/11/2005 - Alin Sinpalean
o Applied Mike's fix for bugs [1234531] Dates before 01/01/1900 broken due to
DateTime value markers and [1235845] getTimestamp() returns illegal value
after getString().
07/05/2005 - Alin Sinpalean
o Applied Mike's fix for bug [1232733] setFetchSize(0) causes exception.
o Final fix for bug [1229636] Memory Leak in Prepared Statements.
07/04/2005 - Alin Sinpalean
o Corrected some build issues with Java 1.3.
07/01/2005 - Alin Sinpalean
o Applied yet another patch for bug [1229636] Memory Leak in Prepared
Statements, with a minor change. This seems to finally fix the caching and
memory leaks; handles are always cached, even if maxStatements=0, retrieved
from the connection cache and the statement list of handles is implemented
by a Set, to make sure no memory leaks due to duplicates occur.
06/30/2005 - Alin Sinpalean
o Corrected bug [1229636] Memory Leak in Prepared Statements, based on Mike's
initial patch.
o Realized that my initial fix will not work with maxStatements=0 (as opposed
to Mike's) so made some more changes.
o Corrected synchronization issue in ConnectionJDBC2.removeStatement() for the
ConnectionJDBC2.statements instance variable.
06/29/2005 - Alin Sinpalean
o Corrected a bug with prepare handles caching where the usage count was
decremented twice when a statement was closed, causing premature release of
handles.
06/28/2005 - Alin Sinpalean
o Applied Mike's additional patch for bug [1222199] Delayed exception thrown
in statement close. "Execution cancelled" exceptions are now only thrown if
the cancel was caused by a call to Statement.cancel(); if a timeout is the
cause, the exception is masked as an exception was already thrown when the
execution timed out.
o Corrected a memory leak caused by the prepared statement's handles
collection being implemented through an ArrayList rather than a Set. The
same handle would be added again and again on each execution and never
removed until the statement was closed.
06/27/2005 - Alin Sinpalean
o Per Mike's suggestion, changed the SQLState of query cancelled exceptions to
HY008 instead of S1008.
06/23/2005 - Alin Sinpalean
o Corrected bug [1226210] {fn dayofweek()} depends on the language. Fix
submitted by Xavier Poinsard.
06/22/2005 - Alin Sinpalean
o Corrected bug [1222199] Delayed exception thrown in statement close. In the
current implementation Statement.close() does throw any server side errors
(to make sure the user doesn't miss any) but Connection.close() ignores
them.
o Applied Mike's fix for bug [1222238] Unable to connect to Sybase 10 with TDS
5.
06/21/2005 - Alin Sinpalean
o Applied Mike's fix for bug [1222205] getParameterMetaData returns not
implemented.
===============================================================================
06/16/2005 - jTDS 1.1 released
===============================================================================
Changes from jTDS 1.0.3
=======================
06/16/2005 - Alin Sinpalean
o Added the useLOBs connection property to control whether large types (IMAGE
and TEXT/NTEXT) should be mapped by default to LOBs or Java types (String
and byte[]). Default is true, i.e. map to LOBs by default.
o Updated version number to 1.1.
06/15/2005 - Alin Sinpalean
o Applied Mike's fix for bug [1047208] SQLException chaining not implemented
correctly, with a few additions in places where exceptions might have gotten
lost.
o Removed SSPIJNIClient.main() and hexDump() as they weren't used anyway.
06/10/2005 - Alin Sinpalean
o Corrected bug [1217786] Moving to "beforeFirst" with ResultSet.absolute(-X)
and a number of related absolute() and relative() issues with
MSCursorResultSet.
06/03/2005 - Alin Sinpalean
o Removed no longer needed cache classes.
o Corrected an issue with savepoints, which was causing cached procedures to
not be dropped by the driver on a savepoint rollback.
o Removed already fixed or outdated TODO comments.
06/02/2005 - Alin Sinpalean
o Applied Mike's fix for bug [1212905] PreparedStatement.setFloat issue.
o Moved all the "create cursor or use direct execution" logic into a single
place and corrected an issue where useCursors=true would cause a cursor
prepare to be issued even on executeUpdate().
06/01/2005 - Alin Sinpalean
o Initial implementation for extended scrollability/updatability support
(TYPE_SCROLL_SENSITIVE for keyset cursors, TYPE_SCROLL_SENSITIVE + 1 for
dynamic cursors, CONCUR_UPDATABLE for optimistic concurrency w/ timestamps,
CONCUR_UPDATABLE + 1 for pessimistic concurrency and CONCUR_UPDATABLE + 2
for optimistic concurrency w/ value checking). All the new values work with
Sybase too, but the behavior is the same as the default.
05/30/2005 - Alin Sinpalean
o Changed the default prepareSQL mode from 1 (temporary stored procedures) to
3 (sp_prepare) for SQL Server. For Sybase, the default is still 1.
o Corrected a bug in DateTime that was causing -1 to be stored as the time
component of a DATETIME field for a Date value.
o Applied Mike's patch [1210936] Change byte array to string conversions; the
patch changes the way byte[] to String conversions are made (now hex values
are returned) and also a bug with SELECT DISTINCT not working with Sybase.
o Added information about the useCursors property (and fast forward-only
cursors to the FAQ).
o Made the maximum global buffer memory and minimum local buffer packets
configurable from the connection properties by adding two new properties:
bufferMaxMemory and bufferMinPackets.
05/27/2005 - Alin Sinpalean
o Added initial support for fast forward-only cursors.
o Corrected yet another cancel synchronization issue caused by the end of
response flag not being reset when a cancel packet was sent.
o Corrected an issue causing hidden columns to "become visible" in result set
meta data obtained from prepared statements.
o Corrected bug [1209039] jTDS can deadlock when used with C3P0 connection
pooling; unnecessary synchronization on statements caused deadlocks.
05/25/2005 - Alin Sinpalean
o Applied Mike's last patch posted in RFE tracker [1172683] Improve the
performance of Prepared Statements. The patch implements metadata caching
and removes support for sp_prepexec and sp_cursorprepexec (prepareSQL=4).
05/20/2005 - Alin Sinpalean
o Corrected bug [1204658] Conversion from Number to BigDecimal causes data
corruption.
o BigDecimal to String conversion no longer drops insignificant trailing
zeroes.
05/11/2005 - Alin Sinpalean
o Corrected bug [1200027] Enhancement: Change how Properties keys are
determined.
o Added serialVersionUID to JtdsDataSource.
05/10/2005 - Alin Sinpalean
o Applied Mike's patch [1197446] Optimized handling of datetime values.
o Applied Mike's patch with SQLParser improvements, posted in RFE [1172683]
Improve the performance of Prepared Statements.
o Applied Mike's fix for bug [1197603] Cursor downgrade error in
CachedResultSet and added a test case.
05/09/2005 - David Kilzer
o Made the error.connection.autocommit message in ConnectionJDBC2 specific to
the method being called (commit() or rollback()) by introducing a parameter.
05/06/2005 - Alin Sinpalean
o Corrected bug [1195511] Recent change to JtdsStatement breaks Sybase
metadata.
05/04/2005 - Alin Sinpalean
o Corrected a bug that was causing the ResultSet position to be reset to the
beginning of the cached block if a reread was attempted after updateRow().
04/28/2005 - Alin Sinpalean
o Implemented caching of a single TdsCore instance in ConnectionJDBC2. When a
statement is closed its TdsCore is cached and reused on the next statement
creation.
o Made a lot of properties final.
o Corrected bug [1180777] collation-related execption on update - if a prepare
failed, execution was not retried (unprepared) and failed.
o Removed the ConnectionJDBC2 finalizer, as the resources will be freed anyway
when garbage collected.
04/25/2005 - Alin Sinpalean
o Applied Brett Wooldridge's patch for RFE [1172683] Improve the performance
of Prepared Statements. The patch implements a cache for parsed SQL
statements (parsed sql and parameter information, where available).
04/22/2005 - Alin Sinpalean
o Corrected bug [1187872] Supported CodePage: error in error message.
o Corrected bug [1187927] Driver Hangs on Statement.execute(). Versions 1.0.3
and prior entered an infinite loop when parsing an unterminated multi-line
comment.
04/20/2005 - Alin Sinpalean
o Applied Mike's fix for bug [1184376] Sybase getProcedureColumns bug.
04/19/2005 - Alin Sinpalean
o Major code cleanup using various code inspection tools.
04/17/2005 - Alin Sinpalean
o Applied Mike's patch for bug [1172405] BLOB/CLOB position methods fail: a
BlobBuffer class was introduced to handle LOB buffering to memory/disk and
BlobImpl/ClobImpl, as well as other classes, were modified accordingly.
===============================================================================
04/15/2005 - jTDS 1.0.3 released
===============================================================================
Changes from jTDS 1.0.2
=======================
04/15/2005 - Alin Sinpalean
o Updated version number to 1.0.3.
04/13/2005 - Alin Sinpalean
o Corrected bug [1182066] regression bug resultset: ResultSet.relative() was
not working as expected.
o Minor performance optimizations in ClobImpl and LOBTest.
04/11/2005 - Alin Sinpalean
o Applied Mike's fix for bug [1179773] jTDS fails when used with c3p0
connection pool.
o Applied Mike's fix for bug [1180164] NPE in TdsData with mulit-byte charset.
o Applied Mike'd fix for bug [1180169] JDBC escapes not allowed with Sybase
addBatch.
o Updated FAQ listing an additional reason why a ResultSet may be downgraded
to update only read only: not a single SELECT statement.
o Added DBSolo to the links page per Marko Hantula's request.
o Closed bug [991089] INSTANCE parameter does not work with SQL Server 2005
after adding an explanation to the FAQ on how to make it work.
04/07/2005 - Alin Sinpalean
o Applied Mike and Dave's combined fix for bug [1176221] JtdsPreparedStatement
setTime setTimestamp Daylight DST Bug.
04/04/2005 - David Kilzer
o Refactored duplicate code in JtdsPreparedStatement.setDate(int, Date, Calendar),
setTime(int, Time, Calendar) and setTimestamp(int, Timestamp, Calendar) into
adjustTimeByCalendar(long, Calendar) method in preparation to fix [1176221]
JtdsPreparedStatement setTime setTimestamp Daylight DST Bug.
04/04/2005 - Alin Sinpalean
o Optimized buffer allocation in RequestStream/ResponseStream.
o Moved the Statement.getMoreResults(Statement.KEEP_CURRENT_RESULT) test to a
different, JDBC 3.0 only unit test.
03/29/2005 - Alin Sinpalean
o Applied a temporary (and highly useless) fix for bug [1172405] BLOB/CLOB
position methods fail. position() methods work now, at least in theory.
03/26/2005 - Alin Sinpalean
o Applied Mike's patch [1166594] JDBC3 Multiple open result sets. The
getMoreResults(int) method is fully implemented and the JtdsResultSet class
has been enhanced so that it can cache the remaining result set rows when
required by the KEEP_CURRENT_RESULT option. Result sets returned by
Statement.execute() are only cached by when required by the getMoreResults()
method. A couple of minor bugs in the CachedResultSet class are also fixed;
a where clause for updates could include text or image columns which is not
allowed and the Sybase syntax for inserting rows containing all default
values was incorrect.
o Corrected bug [1170777] resultSet.updateRow() fails if no row has been
changed. Thanks go to Brett Wooldridge for signalling the bug and providing