-
Notifications
You must be signed in to change notification settings - Fork 14
/
Changes
3290 lines (2187 loc) · 111 KB
/
Changes
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
# satisfy kwalitee test
use strict;
=encoding utf8
DBD::ODBC::Changes - Log of significant changes to the DBD::ODBC
1.62_1 2020-02-16
[BUG FIXES]
Fix for issue 18. This is a significant change to the way binary columns are
bound as DBD::ODBC was pushing the bytes in a scalar PV instead of the code
points. If you bind input parameters as SQL_VARBINARY you will want to check
this carefully. NOTE: the change does not yet affect in/out bound parameters.
[ENHANCEMENTS]
A few changes to tests to support Postgres ODBC driver issues.
1.61 2020-01-30
[BUG FIXES]
Fix 12blob.t test by pali
Fix searching for ODBC libraries in system by pali (#15)
[ENHANCEMENTS]
use PERL_NO_GET_CONTEXT for more performance by markusbeth (#13)
[MISCELLANEOUS]
Fix travis builds for older Perls by pali
1.60 2018-10-31
[BUG FIXES]
Merged pull request 11 from audun which fixes some issues with the AutoCommit flag
on commit and rollback.
[MISCELLANEOUS]
Merged pull request 10 from vadz which fixed typo (affecting license) in README.md.
1.59 2018-08-10
[BUG FIXES]
git issue 8. Setting odbc_utf8_on didn't work properly. Thanks to David Wheeler for
reporting and helping to debug.
1.58 2018-03-01
[MISCELLANEOUS]
Various changes to the test suite to get better results with Postgres
1.57 2018-03-01
[MISCELLANEOUS]
Merged pull request 6 from genio which allows Makefile.PL argument -u
to be set via the environment variable DBD_ODBC_UNICODE
This version was removed from CPAN because it was uploaded with a nasty
bug in the diagnostics code.
1.56 2016-10-06
Full release of the 1.53 development series
One version skipped because of indexing problems.
1.53_2 2016-02-03
[MISCELLANEOUS]
Add new FAQs
1.53_1 2015-10-16
[BUG FIXES]
Strictly speaking this is a bug fix to DBI and not DBD::ODBC but DBI
now supports 64 bit row counts where an IV in perl is 64 bits. However, it
necessitated changes to DBD::ODBC to pick up the fix. odbc_rows (my workaround
since 2012) is still supported but should no longer be required so long as you
use this DBD::ODBC and DBI 1.633_92 or above.
[INTERNALS]
Removed dbd_st_rows and now setting DBIc_ROW_COUNT.
[DOCUMENTATION]
Add tables and table_info section to deviations from the DBI spec.
[MISCELLANEOUS]
Change column name in t/rt_101579.t as "method" is a reserved word
in. Teradata Thanks to Zhenyi Zhou.
Remove duplicate dynamic_config from META.yml.
1.52 2015-04-15
[MISCELLANEOUS]
Changes to the test suite to make it run better with Postgres thanks
to Greg Sabino Mullane.
1.51_4 2015-01-18
[BUG FIXES]
Numerous errors in the test suite (with SQLite ODBC driver) mostly down to not
creating the test table first.
[MISCELLANEOUS]
Try and make the test suite run ok for SQLite ODBC driver so I can use it
in travis-ci.
1.51_3 2015-01-17
[BUG FIXES]
RT101579 - using bound input parameters for numeric columns (e.g.,
SQL_NUMERIC) only works the first time and will quite likely fail
with "string data, right truncation" on the second and subsequent
calls to execute. Thanks to Laura Cox for finding.
1.51_2 2014-11-19
[BUG FIXES]
The table_info method (ANSI version only) was incorrectly passing
the table name for the type argument. I think this bug was
introduced last year. Thanks to Nick Gorham for spotting and providing
a fix.
1.51_1 2014-11-14
[BUG FIXES]
RT100186 - handle VARBINARY(MAX) parameters with SQL Server native
client. Identify "libmsodbcsql*" as the MS ODBC Driver for Linux as
there are some specific workarounds for MS Native Client ODBC driver.
1.50 2014-07-25
[BUG FIXES]
The 80_odbc_diags.t test could fail if a driver fails a table does
not exist test in the prepare instead of the execute.
1.49_4 2014-07-08
[BUG FIXES]
Fixed sql_type_cast.t test which assumed column aliases which stay
lowercase.
Fixed 87_odbc_lob_read.t test which did not bow out of the test
properly if the database was not MS SQL Server.
[DOCUMENTATION]
Revised the query notification example and documentation.
Added a link to a better Query Notification article.
1.49_3 2014-05-01
[CHANGE IN BEHAVIOUR]
As warned years ago, this release removes the odbc_old_unicode attribute.
If you have a good reason to use it speak up now before the next non-development
release.
[BUG FIXES]
Fix rt89255: Fails to create test table for tests using PostgreSQL odbc driver.
Change test suite to fallback on PRECISION if COLUMN_SIZE is not found.
[ENHANCEMENTS]
Added support for MS SQL Server Query Notification. See the new
section in the pod.
Added a currently undocumented (and experimental)
odbc_describe_param method on a statement handle which takes a
parameter number as the only argument and returns an array of the
data type, parameter size, decimal digits and nullable (as per
SQLDescribeParam).
[DOCUMENTATION]
Added FAQ on truncated column names with freeTDS.
[MISCELLANEOUS]
I have removed the "experimental" tag for odbc_getdiagfield and odbc_getdiagrec
methods.
1.49_2 2014-04-26
[BUG FIXES]
Change to data_sources in 1.49_1 could lead to a compile error since
data_sources was not returning a value if an error occurred.
1.49_1 2014-04-25
[BUG FIXES]
If you had a lot of DSNs on Windows (more than 280 but it depends on
the length of their names) and called the data_sources method it
could crash your script. Code internally changed to stop putting the DSNs
returned on the stack.
[CHANGE IN BEHAVIOUR]
As warned years ago, the private data_sources method has been
removed - use DBI one instead.
[MISCELLANEOUS]
Added FAQ entry of maximum number of allowed parameters.
1.48 2014-03-03
[MISCELLANEOUS]
Manifest has wrong filename for 90_trace_flags.t
Forgot to remove warning from ODBC.pm that this is a development
release and unicode change when I released 1.47.
1.47 2014-02-19
Full release of the 1.46 development releases.
[MISCELLANEOUS]
Just some tidying up of dbdimp.c - shouldn't make a difference to anyone.
Further changes to this change file to make it CPAN::Changes spec.
NOTE the changes.cpanhq.com site does not yet support "unknown" for
dates.
1.46_2 2013-12-17
[BUG FIXES]
When built with unicode support and odbc_old_unicode is not enabled
columns reported as SQL_LONGVARCHAR were not by default bound as
SQL_WCHAR and hence were not returned correctly unless the bind was
overridden.
[MISCELLANEOUS]
Added test 90_trace_flag.t
1.46_1 2013-11-16
[CHANGE IN BEHAVIOUR]
As warned in release 1.45, the binding of unicode parameters to
char/varchar columns has changed significantly. If you don't attempt
to insert unicode into char/varchar columns or if you only inserted
unicode into nchar/nvarchar columns you should see no difference.
From this release, unicode data inserted into
char/varchar/longvarchar columns is bound as SQL_WCHAR and not
whatever the driver reports the parameter as (which is mostly
SQL_CHAR).
Previously if DBD::ODBC received an error or (SQL_SUCCESS_WITH_INFO)
from an ODBC API call and then the driver refused to return the
error state/text DBD::ODBC would issue its own error saying "Unable
to fetch information about the error" and state IM008. That state
was wrong and has been changed to HY000.
[BUG FIXES]
Some drivers cannot support catalogs and/or schema names in
SQLTables. Recent changes set the schema/catalog name to the empty
string (good reasons below) which causes "optional feature not
implemented" from MS Access (which does not support schemas - even
for a simply ping (which uses SQLTables)). Now we call
SQLCATALOG_NAME and SQLSCHEMA_USAGE on connect to ascertain support
which modifies SQLTables call.
[MISCELLANEOUS]
Added test 45_unicode_varchar.t for MS SQL Server only so far.
1.45 2013-10-28
[CHANGE IN BEHAVIOUR]
There is no intentional change in behaviour in this release but I'm
adding a warning that the next development release is highly liking
to contain some significant unicode changes in behaviour to fix some
bugs which have been around for quite a long time now.
[BUG FIXES]
If an SQLExecute ODBC API call returned SQL_NO_DATA DBD::ODBC was
still calling SQLError (which was a waste of time).
Since 1.44_1 odbc_out_connect_string stopped returning anything.
[MISCELLANEOUS]
Added another link to resources for supplementary characters.
Added 1 more test to 20SqlServer.t for update statement.
Small changes to 20SqlServer.t test to skip some tests and note the
problem if SQLExecute returns SQL_NO_DATA on a non searched update.
1.44_4 2013-10-16
[BUG FIXES]
Fix method redefinition warnings in threads on Perl >= 5.16 thanks
Dagfinn Ilmari Mannsåker
[MISCELLANEOUS]
Changed this Changes file to be closer to the version 0.03 change
file spec.
Added t/version.t test.
Added recommends Test::Version.
Updates to the odbc_more_results pod to help clarify its use after
some confusion was seen in a perlmonks thread.
1.44_3 2013-10-11
[CHANGE IN BEHAVIOUR]
If you attempt to set the ReadOnly attribute and the underlying
ODBC driver does not support this (SQL_SUCCESS_WITH_INFO and "option
value changed" is returned) a warning is issued. However, until RT
89015 "You cannot issue a warning in the STORE method" in DBI is
resolved you won't get this warning. As DBI 1.628 it is not
resolved. I've only seen the SQLite ODBC driver do this.
If you set ReadOnly and the underlying ODBC driver does not
support this then any subsequent attempts to fetch the ReadOnly
attribute will return the value you set.
[BUG FIXES]
The 82_table_info test assumed all database and ODBC Drivers
supported catalogs and schemas (some don't). Use get_info to
find out if catalogs and schemas are supported before
running these tests.
The rt_79190.t could incorrectly fail if your test DSN contained
the DRIVER attribute.
[MISCELLANEOUS]
Added RedHat spec file to examples courtesy of Michiel Beijen.
Added "use strict" to FAQ/Changes etc to quieten kwalitee test.
Added a workaround in the test suite for a probable bug in the
postgres ODBC driver which does not return COLUMN_SIZE from
SQLGetTypeInfo. It also issues a warning. See
http://www.postgresql.org/message-id/[email protected]
1.44_3 2013-10-11
[MISCELLANEOUS]
Skip 70execute_array_native.t test if MS Access - even if behind an
ODBC Bridge.
Fixed some compiler warnings when attempting to print/trace SvCUR.
1.44_2 2013-09-07
[BUG FIXES]
When table_info was called with a '%' for any one of the catalog,
schema or type arguments with the rest all '' (the empty string),
only a list of catalogs, schemas or types should be returned. It was
not doing that as it was changing empty strings to undef/NULL.
pod for odbc_lob_read had an example only saying lob_read.
TYPE attribute for odbc_lob_read was actually coded as Type. It is
now as documented.
The example lob_read.pl had the TYPE set to 999 from when I was
testing it but it got checked in like this.
MANIFEST contained column_info.pl but the file was coltest.pl
[MISCELLANEOUS]
Fixed RT 86379 - spelling mistakes in ODBC.pm and FAQ - thanks
to David Steinbrunner.
Added 82_table_info.t test.
Added 87_odbc_log_read.t test.
1.44_1 2013-06-06
Moved from subversion to github as svn.perl.org is closing down.
Changed docs to show new repository.
[BUG FIXES]
Fixed RT 84450 - Database Handle Attribute Fetch broken. Thanks to
Stephen Oberholtzer for finding and supplying patch.
Fixed problem with attributes on bind_col not being sticky. You'll
probably only see this if you are using fetchall_arrayref with a
slice and setting TYPE or attributes in bind_col first.
1.43 2013-03-06
This is a full release of all the 1.42_* development releases.
plus:
[BUG FIXES]
Minor fix to 10handler.t test suite which relied on a native error
being true instead of defined.
1.42_5 2013-01-25
[BUG FIXES]
Not all modules used in test code were specified in build_requires.
1.42_4 2013-01-21
[ENHANCEMENTS]
odbc_trace and odbc_trace_file are now full connection attributes
so you can set them any time you like, not just in connect.
1.42_3 2013-01-17
[ENHANCEMENTS]
Added odbc_trace_file and odbc_trace attributes to the connect
method so you can now enable ODBC API tracing from the connect
method instead of having to use the ODBC Driver Manager. These also
only enable ODBC API tracing in the application which made the call
unlike the ODBC Driver Manager settings.
1.42_2 2012-12-17
[MISCELLANEOUS]
Changed any use of if SvUPGRADE to remove the if test as per email
from Dave Mitchell and posting at
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2012-12/msg00424.html.
1.42_1 2012-12-12
[BUG FIXES]
DBD::ODBC's ExecDirect method did not return an SQLLEN so if you
managed to affect a massive number of rows it would be cast to an
int and hence precision lost.
[CHANGE IN BEHAVIOUR]
When you called DBI's execute method and odbc_exec_direct was not
set (the default) if you managed to affect more rows than would fit
into an int you would get the incorrect count (NOTE on 32 bit
platforms ODBC's SQLRowCount can only return a 32bit value
anyway). You would get whatever casting an SQLLEN to an int would
give you. The fix for this needs a change to DBI (see RT 81911) and
the change would probably impact every DBD so until then DBD::ODBC
will a) warn if an overflow occurs and Warn is set on the handle b)
return INT_MAX and c) provide a new statement method odbc_rows which
you can use to get the correct value.
[ENHANCEMENTS]
New odbc_rows statement method (see above).
[MISCELLANEOUS]
New rt_81911.t test case.
1.42_0 2012-11-28
[BUG FIXES]
MS Access requires a longchar column to be bound using SQL_LONGVARCHAR.
However, MS Access does not support SQLDescribeParam and we default to
SQL_VARCHAR in this case. The point at which we switch to SQL_LONGVARCHAR
was defaulted to 4000 (for MS SQL Server). We now default to SQL_LONGVARCHAR
for MS Access when data is > 255. This means you can remove those
{TYPE => SQL_LONGVARCHAR} from your bind_param calls for longchar columns
in MS Access.
I seem to have introduced a bug in the test suite for MS Access.
The last test in the 09bind test binds dates as varchars (by
default) and this cannot work in MS Access (it needs to be a
timestamp). This test was skipped in the past and the skip got
removed.
[MISCELLANEOUS]
Steffen Goeldner reported some issues with execute_array in
DBD::Oracle where if ArrayTupleStatus was not specified and an error
occurred DBD::Oracle did not do the right thing. As I used
DBD::Oracle as a base when I wrote execute_for_fetch in DBD::ODBC I
added tests to the test suite to ensure these issues did not exist
in DBD::ODBC.
Minor change to sql_type_cast.t test which attempts to insert an
integer into a varchar. No databases so far have complained about
this until we ran the test against Derby. Changed to use '100'.
RT 80446 - fix spelling mistake - thanks to Xavier Guimar.
1.41 2012-10-23
A full release of the 1.40 development release series.
1.40_3 2012-10-08
[BUG FIXES]
Oops, changes to some rt tests fail when not run to MS SQL Server
and they should not be run for other drivers - there was a double
done_testing call.
[CHANGE IN BEHAVIOUR]
As I warned literally years ago DBD::ODBC's private function
DescribeCol has been removed. You can use DBI's statement attributes
like NAME, PRECISION etc, instead. All test code has been changed to
remove calls to DescribeCol and GetTypeInfo.
[MISCELLANEOUS]
New example sqlserver_supplementary_chrs.pl added which shows that
in MS SQL Server 2012 you can now store unicode characters
over 0xFFFF (ones which are surrogate pairs).
More documentation for odbc_out_connect_string.
1.40_2 2012-09-06
[BUG FIXES]
Fixed rt 78838 - bind_param does not correctly stringify blessed
objects when connected to MS SQL Server
Fix issue in dbd_bind_ph where if you passed a sql type and were
also attempting to change from in to out or vice versa or increasing
the size of an output bound param it would not spot this error.
Allowed the test cases to spot DB2 driver as libXXXdb2.
[MISCELLANEOUS]
New test cases added for some rts.
Added Test::NoWarnings to some tests where it was missing.
1.40_1 2012-09-04
[BUG FIXES]
Debian/Ubuntu have moved unixODBC into /usr/lib/i386-linux-gnu
so look in this dir for unixODBC as well - thanks to Meastro for finding.
Fixed rt 78838
I had a sequence point error which is only seen with some compilers
as it is sometimes optimized out. It could cause DBD::ODBC to omit
adding the UID/PWD to the end of the connection string when using DSN=.
Thanks to Zsolt Cserna for spotting it and to ilmari and Leon for
explaining it to me.
Fixed rt 79397
Output bound parameters may be incorrectly bound if changed after
bind_param_inout is called. If you start with an undef bound param
and change it to a defined string/number less than 28 characters
before calling execute the original undef will probably be bound.
Thanks to runrig on perl monks for providing an example.
[CHANGE IN BEHAVIOUR]
If you attempt to bind an rv without amagic DBD::ODBC will now
croak - related to rt 78838.
1.39 2012-07-07
[BUG FIXES]
Manifest mentioned 2 files in examples which do not exist - they
should have been execute_for_fetch.pl.
execute_for_fetch.pl example had not be changed since
odbc_disable_array_operations became odbc_array_operations.
1.38_3 2012-06-25
[BUG FIXES]
Added encoding line to this file to stop pod test from complaining.
[DOCUMENTATION]
Added link to 64 bit ODBC article.
Fixed some typos in the pod.
[MISCELLANEOUS]
Made pod.t an author test.
1.38_2 2012-05-24
[ENHANCEMENTS]
Added support for Oracle TAF (assuming your ODBC driver supports it)
- see odbc_taf_callback.
1.38_1 2012-05-19
[BUG FIXES]
Fixed rt 77283. If you overrode the bind type as SQL_INTEGER in a bind_col
call AFTER previously binding as another type (or not specifying a type)
you would not get the right value back. This also fixes the DiscardString
bind_col attribute for SQL_INTEGER binds (however, see below as DiscardString
is no longer required for SQL_INTEGER).
Fixed some format specifiers in trace calls.
[CHANGE IN BEHAVIOUR]
DBD::ODBC allowed you to change the bound column type in bind_col
after the column was already bound. It now does not allow this
and issues a warning.
You can nolonger override the bound column type (except with
SQL_NUMERIC and SQL_DOUBLE). All columns are now bound as either
SQL_C_LONG (integer columns) or SQL_C_[W]CHAR (all other columns).
If you are calling bind_col with a TYPE => xxx it most likely did
not do what you expected and you should examine it carefully with a
view to removing it altogether. As a result you no longer have to
override the bind type for MS SQL Server XML columns - these will be
bound as SQL_C_CHAR or SQL_C_WCHAR depending on whether Unicode is
enabled.
Integer columns are now bound as SQL_C_LONGs and not as before,
SQL_C_CHAR. This should not matter to you but if you were adding 0
to your integer columns retrieved to make them behave like integers
you should nolonger need to do it.
[OTHER]
Added some missing SQL_C_xxx types to S_SqlCTypeToString internal
function. This only affects tracing.
Some tests in 08bind were skipped when they did not need to be.
sql_type_cast tests rewritten due to fixes above.
1.37 2012-04-07
A full release of the 1.36 dev releases.
Please note the changes in behaviour below.
1.36_2 2012-03-31
[BUG FIXES]
* not strictly a bug fix, more a workaround. MS Access mdb driver
reports 22 for the size of doubles but then returns an empty string
for long doubles that still fit in 22 chrs. rt 69864.
[CHANGE IN BEHAVIOUR]
* The odbc_disable_array_operations has been replaced with
odbc_array_operations and the default for array operations is off.
Sorry, but I warned this was experimental. The
ODBC_DISABLE_ARRAY_OPERATIONS env var remains.
[DOCUMENTATION]
* Rewrote parts of "Unicode implementation in DBD::ODBC" to describe
UTF-16/UCS-2 internal implementation.
* Changed ordering of some of the pod sections.
1.36_1 2012-03-21
[BUG FIXES]
* Fixed 12blob.t skip count when driver does not have a big enough
varchar column to run the test.
* Work around problems hit during the test suite in DB2 driver which
only allows rows of size up to the page size and varchars of 4K.
* Fix bug in execute_for_fetch where it would ignore the parameters
processed when creating the ArrayTupleStatus and hence could
attempt to call SQLGetDiagRec on a parameter row which was not
executed. See the logs in rt 75687 which show this although this
is not a fix for this rt.
* The code wasn't catching success with info from SQLExecute in
execute_for_fetch.
* Add support for drivers (DB2 in this case) which return
SQL_PARAM_DIAG_UNAVAILABLE in bound parameter status array when
running execute_for_fetch. Any driver returning doing
SQL_PARC_NO_BATCH from SQLGetInfo(SQL_PARAM_ARRAY_ROW_COUNTS)
might do this.
* Fix test code for execute_for_fetch to a) handle drivers doing
SQL_PARC_NO_BATCH and b) add "not null" to primary key fields for
drivers like DB2 which require it.
[CHANGE IN BEHAVIOUR]
* In execute_for_fetch set the parameter status array to all 9999
(which is invalid) so we can see if the ODBC driver actually sets
them and we can warn if they don't.
* For freeTDS default odbc_disable_array_operations to 1 as no
version of the freeTDS driver can be found that works. I was
requested to do this by the dbix-class guys. I may revert this
later if freeTDS is fixed.
* as above for MS Access. It is a shame I cannot find any way of
finding out if a driver is capable of array operations.
[ENHANCEMENTS]
* execute_for_fetch code now checks the
ODBC_DISABLE_ARRAY_OPERATIONS environment variable which can
be set to 1 or 0 to override the internal default.
[DOCUMENTATION]
* Fixed ColAttributes example in pod which used a $dbh instead of a
$sth.
* Fixed DescribeCol example in pod which used a $dbh instead of a
$sth.
* new FAQ on SQLRowCount, freeTDS and execute_for_fetch
* Fix typo shown in rt 75860.
[OTHER]
* Reduced usage of D_imp_xxx to avoid calls to dbih_getcom2. See
thread on dbi-dev at
http://www.mail-archive.com/[email protected]/msg06675.html
* Changed the 70execute_array.t test to run it twice, once using
DBI's methods and once using the native one in DBD::ODBC.
* Made the 2 unicode tests work with DB2 ODBC driver.
1.35 2012-03-06
Full release of the 1.34 development releases
1.34_7 2012-03-02
[BUG FIXES]
* Fixed more compiler errors highlighed by a smoker using MS Visual
C where some code come before a variable definition.
1.34_6 2012-02-27
[BUG FIXES]
* Fixed some compiler warnings and a compile error highlighed by a
smoker using MS Visual C where some code come before a variable
definition.
1.34_5 2012-02-17
[BUG FIXES]
* The 40UnicodeRoundTrip tests counts could be 1 off in some cases.
* Fix for t/03batt.t which could fail a test if the data source had
no table - Kenichi Ishigaki
* If a driver misbehaves during global destruction e.g. SQLFreeStmt
fails but no error is available DBD::ODBC issues an error saying
an error occurred but no error diagnostics could be found. This is
pointless and irritating during global destruction. This stems
from a change in 1.28. Thanks to Peter Rabbitson for reporting
and suggested fix.
[CHANGE IN BEHAVIOUR]
* Prior to this release if you called selectall_* methods with a
non-select statement DBD::ODBC would raise an error saying "no
select statement currently executing". See RT 68720. After
discussions on dbi-dev the concensus seems to be that issuing a
warning in this case is better so that is what I've done. As a
result t/rt_68720.t has been removed and
t/85_selectall_non_select.t has been added.
[DOCUMENTATION]
* odbc_getdiagfield was incorrectly named odbc_getdiagrec in the pod
* add DBI version required for StrictlyTyped and DiscardString to
pod
* Added new FAQ on why a transaction may be committed when
AutoCommit is turned off.
[OTHER]
* Make examples\odbc_diag.pl more tolerant of drivers which do not
handle diagnostic calls properly.
* Make t/40UnicodeRoundTrip.t work with SQLite - Kenichi Ishigaki
* Make t/odbc_describe_parameter.t work with SQLite - Kenichi
Ishigaki
* Add 80_odbc_diags.t based on the same file in examples
1.34_4 2012-02-05
[BUG FIXES]
* When odbc_getdiag* methods were added they installed themselves
into DBI but did not set IMP_KEEP_ERR so calling them cleared
DBI's errors.
1.34_3 2012-02-03
[BUG FIXES]
* Linking against unixODBC was working by accident on most UNIX
machines and depended on the order of the files in /usr/lib (or
wherever) and what files there were (e.g. an archive or a shared
object). Same applied to iODBC but it was more broken especially
on machines where libiodbc.so.N.N existed but there was no
libiodbc.so which could lead to no adding the shared object at
all. I doubt anyone really noticed this but I did eventually on
Ubuntu where libiodbc.so.N.N existed but libiodbc.so did not.
[ENHANCEMENTS]
* Added experimental odbc_getdiagrec and odbc_getdiagrec methods,
examples/odbc_diag.pl and examples/params_in_error.pl.
[DOCUMENTATION]
* New FAQ entries.
1.34_2 2012-01-25
[BUG FIXES]
* Fixed rt73734 - debian moved where unixODBC libs are stored.
* Fixed memory leak of the parameter status array introduced in
previous release when execute_for_fetch used. When the statement
handle is destroyed the parameter status array was not freed.
[ENHANCEMENTS]
* Added environment variable PERL_DBD_ODBC_PREFER_UNIXODBC as a
synonym for -x from Rafael Kitover (Caelum).
[DOCUMENTATION]
* Add a deviation from DBI spec for type_info_all.
[OTHER]
* Added example execute_for_fetch.pl
1.34_1 2011-12-11
[ENHANCEMENTS]
* Added experimental execute_for_fetch support and associated
attributes odbc_batch_size and odbc_disable_array_operations.
1.33 2011-12-01
This is simply the official release of the 1.32 development
releases.
1.32_5 2011-11-24
[ENHANCEMENTS]
* Enable multiple active statement support in 70execute_array.t for
drivers we recognise which support MAS.
* Change column_info to support Unicode catalog/schema/table/column
names.
1.32_4 2011-11-22
[BUG FIXES]
* remove debugging printf which output "HERE" in some rare cases.
rt 72534 - thanks John Deighan for spotting this.
* The test 70execute_array.t could fail due to warning being output
if the driver does not support Multiple Active Statements.
[ENHANCEMENTS]
* Use SQLGetTypeInfoW on unicode builds.
1.32_3 2011-11-15
[BUG FIXES]
* Fix bug in utf16_copy which was not adding a trailing NUL but I'm
not sure this affected anyone until I changed table_info this
release.
[ENHANCEMENTS]
* DBD::ODBC now allows unicode catalog/schema/table parameters to be
passed to table_info. Of course they will only reliably work with
a supporting Unicode ODBC driver.
1.32_2 2011-10-22
[ENHANCEMENTS]
* Added new odbc_driver_complete attribute allowing the ODBC Driver
Manager and ODBC Driver to throw dialogues for incomplete
connection strings or expired passwords etc.
[OTHER]
* added more examples
[DOCUMENTATION]
* new FAQ entries
* added note saying you cannot pass unicode schema/table/column
names to metadata calls like table_info/column_info currently.
1.32_1 2011-06-24
[BUG FIXES]
* I omitted rt_68720.t from the 1.31 distribution which leads
to a warning as it is mentioned in the MANIFEST.
[OTHER]
* Changed line endings in README.af and README.unicode to be unix
line endings and native eol-style in subversion.
* Minor changes to Makefile.PL to save the opensuse guys patching.
* Added unicode_sql.pl and unicode_params.pl examples
1.31 2011-06-21
[BUG FIXES]
Recently introduced test sql_type_cast.t cannot work with DBI less
than 1.611.
Minor change to Makefile.PL to avoid use of unitialised warning on
$ENV{LD_LIBRARY_PATH} in warning when it is not set.
1.30_7 2011-06-15
[BUG FIXES]