-
Notifications
You must be signed in to change notification settings - Fork 58
/
Changes
2646 lines (2165 loc) · 122 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
1.646 - 2024-09-19, H.Merijn Brand
* Remove "experimental" tag from statistics_info () (issue#134)
1.645 - 2024-09-03, H.Merijn Brand
* Move developer tests to xt/
* Make Changes match CPAN::Changes::Spec and regen DBI::Changes from that
* Fixes for modern gcc i.c.w. recent perl (Daniël)
* Small code & doc cleanups for recent perl
* See TODO in `perldoc DBI` to see where you can help with documentation!
1.644 - 2024-08-23, DBI-Team
Update Devel::PPPort,
thanks to H.Merijn Brand
Fix CVE-2014-10401 and CVE-2014-10402 - f_dir might not exist in DBD::File connections
thanks to Jens Rehsack & H.Merijn Brand
Do not check gccversion on clang
thanks to Daniël van Eeden
Upgrade GIMME to GIMME_V
thanks to Daniël van Eeden
Do not check with JSON::XS with perl-5.022 and later
thanks to H.Merijn Brand
Makefile.PL allows gcc-10 and up now
thanks to H.Merijn Brand (noted by XSven)
Do not leak $_ after callback execution (rt#144526, PR#117)
thanks to Mauke
Switch from Dynaloader to XSLoader (PR#94)
thanks to Todd
Tim handed the project to the team
Merge Pull Requests, resolve RT tickets, & resolve GH issues
thanks to many! Please check gitlog
1.643 - 2020-01-31, Tim Bunce
Fix memory corruption in XS functions when Perl stack is reallocated
thanks to Pali
Fix calling dbd_db_do6 API function
thanks to Pali
Fix potentially calling newSV(0) in malloc_using_sv()
thanks to Pali
Fix order of XS preparse() ps_accept and ps_return argument names
thanks to Petr Písař
Fix a potential NULL profile dereference in dbi_profile()
thanks to Petr Písař
Fix a buffer overflow on an overlong DBD class name
thanks to Petr Písař
Remove remnants of support for perl <= v5.8.0
thanks to Pali and H.Merijn Brand
Update Devel::PPPort and remove redundant compatibility macros
thanks to Pali and H.Merijn Brand
Correct minor typo in documentation
thanks to Mohammad Anwar
Correct documentation introducing $dbh->selectall_array()
thanks to Pali
Introduce select and do wrappers earlier in the documentation
thanks to Dan Book
Mark as deprecated old API functions which overflow or are affected by
Unicode issues, thanks to Pali
Add new attribute RaiseWarn, similar to RaiseError,
thanks to Pali
1.642 - 2018-10-28, Tim Bunce
Fix '.' in @INC for proxy test under parallel load
thanks to H.Merijn Brand.
Fix driver-related croak() in DBI->connect to report the original DSN
thanks to maxatome #67
Introduce a new statement DBI method $sth->last_insert_id()
thanks to pali #64
Allow to call $dbh->last_insert_id() method without arguments
thanks to pali #64
Added a new XS API function variant dbd_db_do6()
thanks to Pali #61
Fix misprints in doc of selectall_hashref
thanks to Perlover #69
Remove outdated links to DBI related training resources. RT#125999
1.641 - 2018-03-19, Tim Bunce
Remove dependency on Storable 2.16 introduced in DBI 1.639
thanks to Ribasushi #60
Avoid compiler warnings in Driver.xst #59
thanks to pali #59
1.640 - 2018-01-28, Tim Bunce
Fix test t/91_store_warning.t for perl 5.10.0
thanks to pali #57
Add Perl 5.10.0 and 5.8.1 specific versions to Travis testing
thanks to pali #57
Add registration of mariadb_ prefix for new DBD::MariaDB driver
thanks to pali #56
1.639 - 2017-12-28, Tim Bunce
Fix UTF-8 support for warn/croak calls within DBI internals,
thanks to pali #53
Fix dependency on Storable for perl older than 5.8.9,
thanks to H.Merijn Brand.
Add DBD::Mem driver, a pure-perl in-memory driver using DBI::DBD::SqlEngine,
thanks to Jens Rehsack #42
Corrected missing semicolon in example in documentation,
thanks to pali #55
1.637 - 2017-08-16, Tim Bunce
Fix use of externally controlled format string (CWE-134) thanks to pali #44
This could cause a crash if, for example, a db error contained a %.
https://cwe.mitre.org/data/definitions/134.html
Fix extension detection for DBD::File related drivers
Fix tests for perl without dot in @INC RT#120443
Fix loss of error message on parent handle, thanks to charsbar #34
Fix disappearing $_ inside callbacks, thanks to robschaber #47
Fix dependency on Storable for perl older than 5.8.9
Allow objects to be used as passwords without throwing an error, thanks to demerphq #40
Allow $sth NAME_* attributes to be set from Perl code, re #45
Added support for DBD::XMLSimple thanks to nigelhorne #38
Documentation updates:
Improve examples using eval to be more correct, thanks to pali #39
Add cautionary note to prepare_cached docs re refs in %attr #46
Small POD changes (Getting Help -> Online) thanks to openstrike #33
Adds links to more module names and fix typo, thanks to oalders #43
Typo fix thanks to bor #37
1.636 - 2016-04-24, Tim Bunce
Fix compilation for threaded perl <= 5.12 broken in 1.635 RT#113955
Revert change to DBI::PurePerl DESTROY in 1.635
Change t/16destroy.t to avoid race hazard RT#113951
Output perl version and archname in t/01basics.t
Add perl 5.22 and 5.22-extras to travis-ci config
1.635 - 2016-04-24, Tim Bunce
Fixed RaiseError/PrintError for UTF-8 errors/warnings. RT#102404
Fixed cases where ShowErrorStatement might show incorrect Statement RT#97434
Fixed DBD::Gofer for UTF-8-enabled STDIN/STDOUT
thanks to mauke PR#32
Fixed fetchall_arrayref({}) behavior with no columns
thanks to Dan McGee PR#31
Fixed tied CachedKids ref leak in attribute cache by weakening
thanks to Michael Conrad RT#113852
Fixed "panic: attempt to copy freed scalar" upon commit() or rollback()
thanks to fbriere for detailed bug report RT#102791
Ceased to ignore DESTROY of outer handle in DBI::PurePerl
Treat undef in DBI::Profile Path as string "undef"
thanks to fREW Schmidt RT#113298
Fix SQL::Nano parser to ignore trailing semicolon
thanks to H.Merijn Brand.
Added @ary = $dbh->selectall_array(...) method
thanks to Ed Avis RT#106411
Added appveyor support (Travis like CI for windows)
thanks to mbeijen PR#30
Corrected spelling errors in pod
thanks to Gregor Herrmann RT#107838
Corrected and/or removed broken links to SQL standards
thanks to David Pottage RT#111437
Corrected doc example to use dbi: instead of DBI: in DSN
thanks to Michael R. Davis RT#101181
Removed/updated broken links in docs
thanks to mbeijen PR#29
Clarified docs for DBI::hash($string)
Removed the ancient DBI::FAQ module RT#102714
Fixed t/pod.t to require Test::Pod >= 1.41 RT#101769
This release was developed at the Perl QA Hackathon 2016
L<http://act.qa-hackathon.org/qa2016/>
which was made possible by the generosity of many sponsors:
L<https://www.fastmail.com> FastMail,
L<https://www.ziprecruiter.com> ZipRecruiter,
L<http://www.activestate.com> ActiveState,
L<http://www.opusvl.com> OpusVL,
L<https://www.strato.com> Strato,
L<http://www.surevoip.co.uk> SureVoIP,
L<http://www.cv-library.co.uk> CV-Library,
L<https://www.iinteractive.com/> Infinity,
L<https://opensource.careers/perl-careers/> Perl Careers,
L<https://www.mongodb.com> MongoDB,
L<https://www.thinkproject.com> thinkproject!,
L<https://www.dreamhost.com/> Dreamhost,
L<http://www.perl6.org/> Perl 6,
L<http://www.perl-services.de/> Perl Services,
L<https://www.evozon.com/> Evozon,
L<http://www.booking.com> Booking,
L<http://eligo.co.uk> Eligo,
L<http://www.oetiker.ch/> Oetiker+Partner,
L<http://capside.com/en/> CAPSiDE,
L<https://www.procura.nl/> Procura,
L<https://constructor.io/> Constructor.io,
L<https://metacpan.org/author/BABF> Robbie Bow,
L<https://metacpan.org/author/RSAVAGE> Ron Savage,
L<https://metacpan.org/author/ITCHARLIE> Charlie Gonzalez,
L<https://twitter.com/jscook2345> Justin Cook.
1.634 - 2015-08-03, Tim Bunce
Enabled strictures on all modules (Jose Luis Perez Diez) #22
Note that this might cause new exceptions in existing code.
Please take time for extra testing before deploying to production.
Improved handling of row counts for compiled drivers and enable them to
return larger row counts (IV type) by defining new *_iv macros.
Fixed quote_identifier that was adding a trailing separator when there
was only a catalog (Martin J. Evans)
Removed redundant keys() call in fetchall_arrayref with hash slice (ilmari) #24
Corrected pod xref to Placeholders section (Matthew D. Fuller)
Corrected pod grammar (Nick Tonkin) #25
Added support for tables('', '', '', '%') special case (Martin J. Evans)
Added support for DBD prefixes with numbers (Jens Rehsack) #19
Added extra initializer for DBI::DBD::SqlEngine based DBD's (Jens Rehsack)
Added Memory Leaks section to the DBI docs (Tim)
Added Artistic v1 & GPL v1 LICENSE file (Jose Luis Perez Diez) #21
1.633 - 2015-01-11, Tim Bunce
Fixed selectrow_*ref to return undef on error in list context
instead if an empty list.
Changed t/42prof_data.t more informative
Changed $sth->{TYPE} to be NUMERIC in DBD::File drivers as per the
DBI docs. Note TYPE_NAME is now also available. [H.Merijn Brand]
Fixed compilation error on bleadperl due DEFSV no longer being an lvalue
[Dagfinn Ilmari Mannsåker]
Added docs for escaping placeholders using a backslash.
Added docs for get_info(9000) indicating ability to escape placeholders.
Added multi_ prefix for DBD::Multi (Dan Wright) and ad2_ prefix for
DBD::AnyData2
1.632 - 2014-11-09, Tim Bunce
Fixed risk of memory corruption with many arguments to methods
originally reported by OSCHWALD for Callbacks but may apply
to other functionality in DBI method dispatch RT#86744.
Fixed DBD::PurePerl to not set $sth->{Active} true by default
drivers are expected to set it true as needed.
Fixed DBI::DBD::SqlEngine to complain loudly when prerequite
driver_prefix is not fulfilled (RT#93204) [Jens Rehsack]
Fixed redundant sprintf argument warning RT#97062 [Reini Urban]
Fixed security issue where DBD::File drivers would open files
from folders other than specifically passed using the
f_dir attribute RT#99508 [H.Merijn Brand]
Changed delete $h->{$key} to work for keys with 'private_' prefix
per request in RT#83156. local $h->{$key} works as before.
Added security notice to DBD::Proxy and DBI::ProxyServer because they
use Storable which is insecure. Thanks to ppisar@redhat.com RT#90475
Added note to AutoInactiveDestroy docs strongly recommending that it
is enabled in all new code.
1.631 - 2014-01-20, Tim Bunce
NOTE: This release changes the handle passed to Callbacks from being an 'inner'
handle to being an 'outer' handle. If you have code that makes use of Callbacks,
ensure that you understand what this change means and review your callback code.
Fixed err_hash handling of integer err RT#92172 [Dagfinn Ilmari]
Fixed use of \Q vs \E in t/70callbacks.t
Changed the handle passed to Callbacks from being an 'inner'
handle to being an 'outer' handle.
Improved reliability of concurrent testing
PR#8 [Peter Rabbitson]
Changed optional dependencies to "suggest"
PR#9 [Karen Etheridge]
Changed to avoid mg_get in neatsvpv during global destruction
PR#10 [Matt Phillips]
1.630 - 2013-10-28, Tim Bunce
NOTE: This release enables PrintWarn by default regardless of $^W.
Your applications may generate more log messages than before.
Fixed err for new drh to be undef not to 0 [Martin J. Evans]
Fixed RT#83132 - moved DBIstcf* constants to util
export tag [Martin J. Evans]
PrintWarn is now triggered by warnings recorded in methods like STORE
that don't clear err RT#89015 [Tim Bunce]
Changed tracing to no longer show quote and quote_identifier calls
at trace level 1.
Changed DBD::Gofer ping while disconnected set_err from warn to info.
Clarified wording of log message when err is cleared.
Changed bootstrap to use $XS_VERSION RT#89618 [Andreas Koenig]
Added connect_cached.connected Callback PR#3 [David E. Wheeler]
Clarified effect of refs in connect_cached attributes [David E. Wheeler]
Extended ReadOnly attribute docs for when the driver cannot
ensure read only [Martin J. Evans]
Corrected SQL_BIGINT docs to say ODBC value is used PR#5 [ilmari]
There was no DBI 1.629 release.
1.628 - 2013-07-22, Tim Bunce
Fixed missing fields on partial insert via DBI::DBD::SqlEngine
engines (DBD::CSV, DBD::DBM etc.) [H.Merijn Brand, Jens Rehsack]
Fixed stack corruption on callbacks RT#85562 RT#84974 [Aaron Schweiger]
Fixed DBI::SQL::Nano_::Statement handling of "0" [Jens Rehsack]
Fixed exit op precedence in test RT#87029 [Reni Urban]
Added support for finding tables in multiple directories
via new DBD::File f_dir_search attribute [H.Merijn Brand]
Enable compiling by C++ RT#84285 [Kurt Jaeger]
Typo fixes in pod and comment [David Steinbrunner]
Change DBI's docs to refer to git not svn [H.Merijn Brand]
Clarify bind_col TYPE attribute is sticky [Martin J. Evans]
Fixed reference to $sth in selectall_arrayref docs RT#84873
Spelling fixes [Ville Skyttä]
Changed $VERSIONs to hardcoded strings [H.Merijn Brand]
1.627 - 2013-05-16, Tim Bunce
Fixed VERSION regression in DBI::SQL::Nano [Tim Bunce]
1.626 - 2013-05-15, Tim Bunce
Fixed pod text/link was reversed in a few cases RT#85168
[H.Merijn Brand]
Handle aliasing of STORE'd attributes in DBI::DBD::SqlEngine
[Jens Rehsack]
Updated repository URI to git [Jens Rehsack]
Fixed skip() count arg in t/48dbi_dbd_sqlengine.t [Tim Bunce]
1.625 - 2013-03-28, Tim Bunce (svn r15595)
Fixed heap-use-after-free during global destruction RT#75614
thanks to Reini Urban.
Fixed ignoring RootClass attribute during connect() by
DBI::DBD::SqlEngine reported in RT#84260 by Michael Schout
1.624 - 2013-03-22, Tim Bunce (svn r15576)
Fixed Gofer for hash randomization in perl 5.17.10+ RT#84146
Clarify docs for can() re RT#83207
1.623 - 2013-01-02, Tim Bunce (svn r15547)
Fixed RT#64330 - ping wipes out errstr (Martin J. Evans).
Fixed RT#75868 - DBD::Proxy shouldn't call connected() on the server.
Fixed RT#80474 - segfault in DESTROY with threads.
Fixed RT#81516 - Test failures due to hash randomisation in perl 5.17.6
thanks to Jens Rehsack and H.Merijn Brand and feedback on IRC
Fixed RT#81724 - Handle copy-on-write scalars (sprout)
Fixed unused variable / self-assignment compiler warnings.
Fixed default table_info in DBI::DBD::SqlEngine which passed NAMES
attribute instead of NAME to DBD::Sponge RT72343 (Martin J. Evans)
Corrected a spelling error thanks to Chris Sanders.
Corrected typo in DBI->installed_versions docs RT#78825
thanks to Jan Dubois.
Refactored table meta information management from DBD::File into
DBI::DBD::SqlEngine (H.Merijn Brand, Jens Rehsack)
Prevent undefined f_dir being used in opendir (H.Merijn Brand)
Added logic to force destruction of children before parents
during global destruction. See RT#75614.
Added DBD::File Plugin-Support for table names and data sources
(Jens Rehsack, #dbi Team)
Added new tests to 08keeperr for RT#64330
thanks to Kenichi Ishigaki.
Added extra internal handle type check, RT#79952
thanks to Reini Urban.
Added cubrid_ registered prefix for DBD::cubrid, RT#78453
Removed internal _not_impl method (Martin J. Evans).
NOTE: The "old-style" DBD::DBM attributes 'dbm_ext' and 'dbm_lockfile'
have been deprecated for several years and their use will now generate
a warning.
1.622 - 2012-06-06, Tim Bunce (svn r15327)
Fixed lack of =encoding in non-ASCII pod docs. RT#77588
Corrected typo in DBI::ProfileDumper thanks to Finn Hakansson.
1.621 - 2012-05-21, Tim Bunce (svn r15315)
Fixed segmentation fault when a thread is created from
within another thread RT#77137, thanks to Dave Mitchell.
Updated previous Changes to credit Booking.com for sponsoring
Dave Mitchell's recent DBI optimization work.
1.620 - 2012-04-25, Tim Bunce (svn r15300)
Modified column renaming in fetchall_arrayref, added in 1.619,
to work on column index numbers not names (an incompatible change).
Reworked the fetchall_arrayref documentation.
Hash slices in fetchall_arrayref now detect invalid column names.
1.619 - 2012-04-23, Tim Bunce (svn r15294)
Fixed the connected method to stop showing the password in
trace file (Martin J. Evans).
Fixed _install_method to set CvFILE correctly
thanks to sprout RT#76296
Fixed SqlEngine "list_tables" thanks to David McMath
and Norbert Gruener. RT#67223 RT#69260
Optimized DBI method dispatch thanks to Dave Mitchell.
Optimized driver access to DBI internal state thanks to Dave Mitchell.
Optimized driver access to handle data thanks to Dave Mitchell.
Dave's work on these optimizations was sponsored by Booking.com.
Optimized fetchall_arrayref with hash slice thanks
to Dagfinn Ilmari Mannsåker. RT#76520
Allow renaming columns in fetchall_arrayref hash slices
thanks to Dagfinn Ilmari Mannsåker. RT#76572
Reserved snmp_ and tree_ for DBD::SNMP and DBD::TreeData
1.618 - 2012-02-25, Tim Bunce (svn r15170)
Fixed compiler warnings in Driver_xst.h (Martin J. Evans)
Fixed compiler warning in DBI.xs (H.Merijn Brand)
Fixed Gofer tests failing on Windows RT74975 (Manoj Kumar)
Fixed my_ctx compile errors on Windows (Dave Mitchell)
Significantly optimized method dispatch via cache (Dave Mitchell)
Significantly optimized DBI internals for threads (Dave Mitchell)
Dave's work on these optimizations was sponsored by Booking.com.
Xsub to xsub calling optimization now enabled for threaded perls.
Corrected typo in example in docs (David Precious)
Added note that calling clone() without an arg may warn in future.
Minor changes to the install_method() docs in DBI::DBD.
Updated dbipport.h from Devel::PPPort 3.20
1.617 - 2012-01-30, Tim Bunce (svn r15107)
NOTE: The officially supported minimum perl version will change
from perl 5.8.1 (2003) to perl 5.8.3 (2004) in a future release.
(The last change, from perl 5.6 to 5.8.1, was announced
in July 2008 and implemented in DBI 1.611 in April 2010.)
Fixed ParamTypes example in the pod (Martin J. Evans)
Fixed the definition of ArrayTupleStatus and remove confusion over
rows affected in list context of execute_array (Martin J. Evans)
Fixed sql_type_cast example and typo in errors (Martin J. Evans)
Fixed Gofer error handling for keeperr methods like ping (Tim Bunce)
Fixed $dbh->clone({}) RT73250 (Tim Bunce)
Fixed is_nested_call logic error RT73118 (Reini Urban)
Enhanced performance for threaded perls (Dave Mitchell, Tim Bunce)
Dave's work on this optimization was sponsored by Booking.com.
Enhanced and standardized driver trace level mechanism (Tim Bunce)
Removed old code that was an inneffective attempt to detect
people doing DBI->{Attrib}.
Clear ParamValues on bind_param param count error RT66127 (Tim Bunce)
Changed DBI::ProxyServer to require DBI at compile-time RT62672 (Tim Bunce)
Added pod for default_user to DBI::DBD (Martin J. Evans)
Added CON, ENC and DBD trace flags and extended 09trace.t (Martin J. Evans)
Added TXN trace flags and applied CON and TXN to relevant methods (Tim Bunce)
Added some more fetchall_arrayref(..., $maxrows) tests (Tim Bunce)
Clarified docs for fetchall_arrayref called on an inactive handle.
Clarified docs for clone method (Tim Bunce)
Added note to DBI::Profile about async queries (Marcel Grünauer).
Reserved spatialite_ as a driver prefix for DBD::Spatialite
Reserved mo_ as a driver prefix for DBD::MO
Updated link to the SQL Reunion 95 docs, RT69577 (Ash Daminato)
Changed links for DBI recipes. RT73286 (Martin J. Evans)
1.616 - 2010-12-30, Tim Bunce (svn r14616)
Fixed spurious dbi_profile lines written to the log when
profiling is enabled and a trace flag, like SQL, is used.
Fixed to recognize SQL::Statement errors even if instantiated
with RaiseError=0 (Jens Rehsack)
Fixed RT#61513 by catching attribute assignment to tied table access
interface (Jens Rehsack)
Fixing some misbehavior of DBD::File when running within the Gofer
server.
Fixed compiler warnings RT#62640
Optimized connect() to remove redundant FETCH of \%attrib values.
Improved initialization phases in DBI::DBD::SqlEngine (Jens Rehsack)
Added DBD::Gofer::Transport::corostream. An experimental proof-of-concept
transport that enables asynchronous database calls with few code changes.
It enables asynchronous use of DBI frameworks like DBIx::Class.
Added additional notes on DBDs which avoid creating a statement in
the do() method and the effects on error handlers (Martin J. Evans)
Adding new attribute "sql_dialect" to DBI::DBD::SqlEngine to allow
users control used SQL dialect (ANSI, CSV or AnyData), defaults to
CSV (Jens Rehsack)
Add documentation for DBI::DBD::SqlEngine attributes (Jens Rehsack)
Documented dbd_st_execute return (Martin J. Evans)
Fixed typo in InactiveDestroy thanks to Emmanuel Rodriguez.
1.615 - 2010-09-21, Tim Bunce (svn r14438)
Fixed t/51dbm_file for file/directory names with whitespaces in them
RT#61445 (Jens Rehsack)
Fixed compiler warnings from ignored hv_store result (Martin J. Evans)
Fixed portability to VMS (Craig A. Berry)
1.614 - 2010-09-17, Tim Bunce (svn r14408)
Fixed bind_param () in DBI::DBD::SqlEngine (rt#61281)
Fixed internals to not refer to old perl symbols that
will no longer be visible in perl >5.13.3 (Andreas Koenig)
Many compiled drivers are likely to need updating.
Fixed issue in DBD::File when absolute filename is used as table name
(Jens Rehsack)
Croak manually when file after tie doesn't exists in DBD::DBM
when it have to exists (Jens Rehsack)
Fixed issue in DBD::File when users set individual file name for tables
via f_meta compatibility interface - reported by H.Merijn Brand while
working on RT#61168 (Jens Rehsack)
Changed 50dbm_simple to simplify and fix problems (Martin J. Evans)
Changed 50dbm_simple to skip aggregation tests when not using
SQL::Statement (Jens Rehsack)
Minor speed improvements in DBD::File (Jens Rehsack)
Added $h->{AutoInactiveDestroy} as simpler safer form of
$h->{InactiveDestroy} (David E. Wheeler)
Added ability for parallel testing "prove -j4 ..." (Jens Rehsack)
Added tests for delete in DBM (H.Merijn Brand)
Added test for absolute filename as table to 51dbm_file (Jens Rehsack)
Added two initialization phases to DBI::DBD::SqlEngine (Jens Rehsack)
Added improved developers documentation for DBI::DBD::SqlEngine
(Jens Rehsack)
Added guides how to write DBI drivers using DBI::DBD::SqlEngine
or DBD::File (Jens Rehsack)
Added register_compat_map() and table_meta_attr_changed() to
DBD::File::Table to support clean fix of RT#61168 (Jens Rehsack)
1.613 - 2010-07-22, Tim Bunce (svn r14271)
Fixed Win32 prerequisite module from PathTools to File::Spec.
Changed attribute headings and fixed references in DBI pod (Martin J. Evans)
Corrected typos in DBI::FAQ and DBI::ProxyServer (Ansgar Burchardt)
1.612 - 2010-07-16, Tim Bunce (svn r14254)
NOTE: This is a minor release for the DBI core but a major release for
DBD::File and drivers that depend on it, like DBD::DBM and DBD::CSV.
This is also the first release where the bulk of the development work
has been done by other people. I'd like to thank (in no particular order)
Jens Rehsack, Martin J. Evans, and H.Merijn Brand for all their contributions.
Fixed DBD::File's {ChopBlank} handling (it stripped \s instead of space
only as documented in DBI) (H.Merijn Brand)
Fixed DBD::DBM breakage with SQL::Statement (Jens Rehsack, fixes RT#56561)
Fixed DBD::File file handle leak (Jens Rehsack)
Fixed problems in 50dbm.t when running tests with multiple
dbms (Martin J. Evans)
Fixed DBD::DBM bugs found during tests (Jens Rehsack)
Fixed DBD::File doesn't find files without extensions under some
circumstances (Jens Rehsack, H.Merijn Brand, fixes RT#59038)
Changed Makefile.PL to modernize with CONFLICTS, recommended dependencies
and resources (Jens Rehsack)
Changed DBI::ProfileDumper to rename any existing profile file by
appending .prev, instead of overwriting it.
Changed DBI::ProfileDumper::Apache to work in more configurations
including vhosts using PerlOptions +Parent.
Add driver_prefix method to DBI (Jens Rehsack)
Added more tests to 50dbm_simple.t to prove optimizations in
DBI::SQL::Nano and SQL::Statement (Jens Rehsack)
Updated tests to cover optional installed SQL::Statement (Jens Rehsack)
Synchronize API between SQL::Statement and DBI::SQL::Nano (Jens Rehsack)
Merged some optimizations from SQL::Statement into DBI::SQL::Nano
(Jens Rehsack)
Added basic test for DBD::File (H.Merijn Brand, Jens Rehsack)
Extract dealing with Perl SQL engines from DBD::File into
DBI::DBD::SqlEngine for better subclassing of 3rd party non-db DBDs
(Jens Rehsack)
Updated and clarified documentation for finish method (Tim Bunce).
Changes to DBD::File for better English and hopefully better
explanation (Martin J. Evans)
Update documentation of DBD::DBM to cover current implementation,
tried to explain some things better and changes most examples to
preferred style of Merijn and myself (Jens Rehsack)
Added developer documentation (including a roadmap of future plans)
for DBD::File
1.611 - 2010-04-29, Tim Bunce (svn r13935)
NOTE: minimum perl version is now 5.8.1 (as announced in DBI 1.607)
Fixed selectcol_arrayref MaxRows attribute to count rows not values
thanks to Vernon Lyon.
Fixed DBI->trace(0, *STDERR); (H.Merijn Brand)
which tried to open a file named "*main::STDERR" in perl-5.10.x
Fixes in DBD::DBM for use under threads (Jens Rehsack)
Changed "Issuing rollback() due to DESTROY without explicit disconnect"
warning to not be issued if ReadOnly set for that dbh.
Added f_lock and f_encoding support to DBD::File (H.Merijn Brand)
Added ChildCallbacks => { ... } to Callbacks as a way to
specify Callbacks for child handles.
With tests added by David E. Wheeler.
Added DBI::sql_type_cast($value, $type, $flags) to cast a string value
to an SQL type. e.g. SQL_INTEGER effectively does $value += 0;
Has other options plus an internal interface for drivers.
Documentation changes:
Small fixes in the documentation of DBD::DBM (H.Merijn Brand)
Documented specification of type casting behaviour for bind_col()
based on DBI::sql_type_cast() and two new bind_col attributes
StrictlyTyped and DiscardString. Thanks to Martin Evans.
Document fetchrow_hashref() behaviour for functions,
aliases and duplicate names (H.Merijn Brand)
Updated DBI::Profile and DBD::File docs to fix pod nits
thanks to Frank Wiegand.
Corrected typos in Gopher documentation reported by Jan Krynicky.
Documented the Callbacks attribute thanks to David E. Wheeler.
Corrected the Timeout examples as per rt 50621 (Martin J. Evans).
Removed some internal broken links in the pod (Martin J. Evans)
Added Note to column_info for drivers which do not
support it (Martin J. Evans)
Updated dbipport.h to Devel::PPPort 3.19 (H.Merijn Brand)
1.609 - 2009-06-08, Tim Bunce (svn r12816)
Fixes to DBD::File (H.Merijn Brand)
added f_schema attribute
table names case sensitive when quoted, insensitive when unquoted
workaround a bug in SQL::Statement (temporary fix) related
to the "You passed x parameters where y required" error
Added ImplementorClass and Name info to the "Issuing rollback() due to
DESTROY without explicit disconnect" warning to identify the handle.
Applies to compiled drivers when they are recompiled.
Added DBI->visit_handles($coderef) method.
Added $h->visit_child_handles($coderef) method.
Added docs for column_info()'s COLUMN_DEF value.
Clarified docs on stickyness of data type via bind_param().
Clarified docs on stickyness of data type via bind_col().
1.608 - 2009-05-05, Tim Bunce (svn r12742)
Fixes to DBD::File (H.Merijn Brand)
bind_param () now honors the attribute argument
added f_ext attribute
File::Spec is always required. (CORE since 5.00405)
Fail and set errstr on parameter count mismatch in execute ()
Fixed two small memory leaks when running in mod_perl
one in DBI->connect and one in DBI::Gofer::Execute.
Both due to "local $ENV{...};" leaking memory.
Fixed DBD_ATTRIB_DELETE macro for driver authors
and updated DBI::DBD docs thanks to Martin J. Evans.
Fixed 64bit issues in trace messages thanks to Charles Jardine.
Fixed FETCH_many() method to work with drivers that incorrectly return
an empty list from $h->FETCH. Affected gofer.
Added 'sqlite_' as registered prefix for DBD::SQLite.
Corrected many typos in DBI docs thanks to Martin J. Evans.
Improved DBI::DBD docs thanks to H.Merijn Brand.
1.607 - 2008-07-22, Tim Bunce (svn r11571)
NOTE: Perl 5.8.1 is now the minimum supported version.
If you need support for earlier versions send me a patch.
Fixed missing import of carp in DBI::Gofer::Execute.
Added note to docs about effect of execute(@empty_array).
Clarified docs for ReadOnly thanks to Martin Evans.
1.605 - 2008-06-16, Tim Bunce (svn r11434)
Fixed broken DBIS macro with threads on big-endian machines
with 64bit ints but 32bit pointers. Ticket #32309.
Fixed the selectall_arrayref, selectrow_arrayref, and selectrow_array
methods that get embedded into compiled drivers to use the
inner sth handle when passed a $sth instead of an sql string.
Drivers will need to be recompiled to pick up this change.
Fixed leak in neat() for some kinds of values thanks to Rudolf Lippan.
Fixed DBI::PurePerl neat() to behave more like XS neat().
Increased default $DBI::neat_maxlen from 400 to 1000.
Increased timeout on tests to accommodate very slow systems.
Changed behaviour of trace levels 1..4 to show less information
at lower levels.
Changed the format of the key used for $h->{CachedKids}
(which is undocumented so you shouldn't depend on it anyway)
Changed gofer error handling to avoid duplicate error text in errstr.
Clarified docs re ":N" style placeholders.
Improved gofer retry-on-error logic and refactored to aid subclassing.
Improved gofer trace output in assorted ways.
Removed the beeps "\a" from Makefile.PL warnings.
Removed check for PlRPC-modules from Makefile.PL
Added sorting of ParamValues reported by ShowErrorStatement
thanks to to Rudolf Lippan.
Added cache miss trace message to DBD::Gofer transport class.
Added $drh->dbixs_revision method.
Added explicit LICENSE specification (perl) to META.yaml
1.604 - 2008-03-24, Tim Bunce (svn r10994)
Fixed fetchall_arrayref with $max_rows argument broken in 1.603,
thanks to Greg Sabino Mullane.
Fixed a few harmless compiler warnings on cygwin.
1.603, 2008-03-22, Tim Bunce
Fixed pure-perl fetchall_arrayref with $max_rows argument
to not error when fetching after all rows already fetched.
(Was fixed for compiled drivers back in DBI 1.31.)
Thanks to Mark Overmeer.
Fixed C sprintf formats and casts, fixing compiler warnings.
Changed dbi_profile() to accept a hash of profiles and apply to all.
Changed gofer stream transport to improve error reporting.
Changed gofer test timeout to avoid spurious failures on slow systems.
Added options to t/85gofer.t so it's more useful for manual testing.
1.602 - 2008-02-08, Tim Bunce (svn r10706)
Fixed potential coredump if stack reallocated while calling back
into perl from XS code. Thanks to John Gardiner Myers.
Fixed DBI::Util::CacheMemory->new to not clear the cache.
Fixed avg in DBI::Profile as_text() thanks to Abe Ingersoll.
Fixed DBD::DBM bug in push_names thanks to J M Davitt.
Fixed take_imp_data for some platforms thanks to Jeffrey Klein.
Fixed docs tie'ing CacheKids (ie LRU cache) thanks to Peter John Edwards.
Expanded DBI::DBD docs for driver authors thanks to Martin Evans.
Enhanced t/80proxy.t test script.
Enhanced t/85gofer.t test script thanks to Stig.
Enhanced t/10examp.t test script thanks to David Cantrell.
Documented $DBI::stderr as the default value of err for internal errors.
Gofer changes:
track_recent now also keeps track of N most recent errors.
The connect method is now also counted in stats.
1.601 - 2007-10-21, Tim Bunce (svn r10103)
Fixed t/05thrclone.t to work with Test::More >= 0.71
thanks to Jerry D. Hedden and Michael G Schwern.
Fixed DBI for VMS thanks to Peter (Stig) Edwards.
Added client-side caching to DBD::Gofer. Can use any cache with
get($k)/set($k,$v) methods, including all the Cache and Cache::Cache
distribution modules plus Cache::Memcached, Cache::FastMmap etc.
Works for all transports. Overridable per handle.
Added DBI::Util::CacheMemory for use with DBD::Gofer caching.
It's a very fast and small strict subset of Cache::Memory.
1.59 - 2007-08-23, Tim Bunce (svn r9874)
Fixed DBI::ProfileData to unescape headers lines read from data file.
Fixed DBI::ProfileData to not clobber $_, thanks to Alexey Tourbin.
Fixed DBI::SQL::Nano to not clobber $_, thanks to Alexey Tourbin.
Fixed DBI::PurePerl to return undef for ChildHandles if weaken not available.
Fixed DBD::Proxy disconnect error thanks to Philip Dye.
Fixed DBD::Gofer::Transport::Base bug (typo) in timeout code.
Fixed DBD::Proxy rows method thanks to Philip Dye.
Fixed dbiprof compile errors, thanks to Alexey Tourbin.
Fixed t/03handle.t to skip some tests if ChildHandles not available.
Added check_response_sub to DBI::Gofer::Execute
1.58 - 2007-06-25, Tim Bunce (svn r9678)
Fixed code triggering fatal error in bleadperl, thanks to Steve Hay.
Fixed compiler warning thanks to Jerry D. Hedden.
Fixed t/40profile.t to use int(dbi_time()) for systems like Cygwin where
time() seems to be rounded not truncated from the high resolution time.
Removed dump_results() test from t/80proxy.t.
1.57 - 2007-06-13, Tim Bunce (svn r9639)
Note: this release includes a change to the DBI::hash() function which will
now produce different values than before *if* your perl was built with 64-bit
'int' type (i.e. "perl -V:intsize" says intsize='8'). It's relatively rare
for perl to be configured that way, even on 64-bit systems.
Fixed XS versions of select*_*() methods to call execute()
fetch() etc., with inner handle instead of outer.
Fixed execute_for_fetch() to not cache errstr values
thanks to Bart Degryse.
Fixed unused var compiler warning thanks to JDHEDDEN.
Fixed t/86gofer_fail tests to be less likely to fail falsely.
Changed DBI::hash to return 'I32' type instead of 'int' so results are
portable/consistent regardless of size of the int type.
Corrected timeout example in docs thanks to Egmont Koblinger.
Changed t/01basic.t to warn instead of failing when it detects
a problem with Math::BigInt (some recent versions had problems).
Added support for !Time and !Time~N to DBI::Profile Path. See docs.
Added extra trace info to connect_cached thanks to Walery Studennikov.
Added non-random (deterministic) mode to DBI_GOFER_RANDOM mechanism.
Added DBIXS_REVISION macro that drivers can use.
Added more docs for private_attribute_info() method.
DBI::Profile changes:
dbi_profile() now returns ref to relevant leaf node.
Don't profile DESTROY during global destruction.
Added as_node_path_list() and as_text() methods.
DBI::ProfileDumper changes:
Don't write file if there's no profile data.
Uses full natural precision when saving data (was using %.6f)
Optimized flush_to_disk().
Locks the data file while writing.
Enabled filename to be a code ref for dynamic names.
DBI::ProfileDumper::Apache changes:
Added Quiet=>1 to avoid write to STDERR in flush_to_disk().
Added Dir=>... to specify a writable destination directory.
Enabled DBI_PROFILE_APACHE_LOG_DIR for mod_perl 1 as well as 2.
Added parent pid to default data file name.
DBI::ProfileData changes:
Added DeleteFiles option to rename & delete files once read.
Locks the data files while reading.
Added ability to sort by Path elements.
dbiprof changes:
Added --dumpnodes and --delete options.
Added/updated docs for both DBI::ProfileDumper && ::Apache.
1.56 - 2007-06-18, Tim Bunce (svn r9660)
Fixed printf arg warnings thanks to JDHEDDEN.
Fixed returning driver-private sth attributes via gofer.
Changed pod docs docs to use =head3 instead of =item
so now in html you get links to individual methods etc.
Changed default gofer retry_limit from 2 to 0.
Changed tests to workaround Math::BigInt broken versions.
Changed dbi_profile_merge() to dbi_profile_merge_nodes()
old name still works as an alias for the new one.
Removed old DBI internal sanity check that's no longer valid
causing "panic: DESTROY (dbih_clearcom)" when tracing enabled
Added DBI_GOFER_RANDOM env var that can be use to trigger random
failures and delays when executing gofer requests. Designed to help
test automatic retry on failures and timeout handling.
Added lots more docs to all the DBD::Gofer and DBI::Gofer classes.
1.55 - 2007-05-04, Tim Bunce (svn r9504)
Fixed set_err() so HandleSetErr hook is executed reliably, if set.
Fixed accuracy of profiling when perl configured to use long doubles.
Fixed 42prof_data.t on fast systems with poor timers thanks to Malcolm Nooning.
Fixed potential corruption in selectall_arrayref and selectrow_arrayref
for compiled drivers, thanks to Rob Davies.
Rebuild your compiled drivers after installing DBI.
Changed some handle creation code from perl to C code,
to reduce handle creation cost by ~20%.
Changed internal implementation of the CachedKids attribute
so it's a normal handle attribute (and initially undef).
Changed connect_cached and prepare_cached to avoid a FETCH method call,
and thereby reduced cost by ~5% and ~30% respectively.
Changed _set_fbav to not croak when given a wrongly sized array,
it now warns and adjusts the row buffer to match.
Changed some internals to improve performance with threaded perls.
Changed DBD::NullP to be slightly more useful for testing.
Changed File::Spec prerequisite to not require a minimum version.
Changed tests to work with other DBMs thanks to ZMAN.
Changed ex/perl_dbi_nulls_test.pl to be more descriptive.
Added more functionality to the (undocumented) Callback mechanism.
Callbacks can now elect to provide a value to be returned, in which case
the method won't be called. A callback for "*" is applied to all methods
that don't have their own callback.
Added $h->{ReadOnly} attribute.
Added support for DBI Profile Path to contain refs to scalars
which will be de-ref'd for each profile sample.
Added dbilogstrip utility to edit DBI logs for diff'ing (gets installed)
Added details for SQLite 3.3 to NULL handling docs thanks to Alex Teslik.
Added take_imp_data() to DBI::PurePerl.
Gofer related changes:
Fixed gofer pipeone & stream transports to avoid risk of hanging.
Improved error handling and tracing significantly.
Added way to generate random 1-in-N failures for methods.
Added automatic retry-on-error mechanism to gofer transport base class.
Added tests to show automatic retry mechanism works a treat!
Added go_retry_hook callback hook so apps can fine-tune retry behaviour.
Added header to request and response packets for sanity checking
and to enable version skew between client and server.
Added forced_single_resultset, max_cached_sth_per_dbh and max_cached_dbh_per_drh
to gofer executor config.
Driver-private methods installed with install_method are now proxied.
No longer does a round-trip to the server for methods it knows
have not been overridden by the remote driver.
Most significant aspects of gofer behaviour are controlled by policy mechanism.
Added policy-controlled caching of results for some methods, such as schema metadata.
The connect_cached and prepare_cached methods cache on client and server.
The bind_param_array and execute_array methods are now supported.
Worked around a DBD::Sybase bind_param bug (which is fixed in DBD::Sybase 1.07)
Added goferperf.pl utility (doesn't get installed).
Many other assorted Gofer related bug fixes, enhancements and docs.
The http and mod_perl transports have been remove to their own distribution.
Client and server will need upgrading together for this release.
1.54 - 2007-02-23, Tim Bunce (svn r9157)
NOTE: This release includes the 'next big thing': DBD::Gofer.
Take a look!
WARNING: This version has some subtle changes in DBI internals.
It's possible, though doubtful, that some may affect your code.
I recommend some extra testing before using this release.
Or perhaps I'm just being over cautious...
Fixed type_info when called for multiple dbh thanks to Cosimo Streppone.
Fixed compile warnings in bleadperl on freebsd-6.1-release
and solaris 10g thanks to Philip M. Gollucci.
Fixed to compile for perl built with -DNO_MATHOMS thanks to Jerry D. Hedden.
Fixed to work for bleadperl (r29544) thanks to Nicholas Clark.
Users of Perl >= 5.9.5 will require DBI >= 1.54.
Fixed rare error when profiling access to $DBI::err etc tied variables.
Fixed DBI::ProfileDumper to not be affected by changes to $/ and $,
thanks to Michael Schwern.
Changed t/40profile.t to skip tests for perl < 5.8.0.
Changed setting trace file to no longer write "Trace file set" to new file.
Changed 'handle cleared whilst still active' warning for dbh
to only be given for dbh that have active sth or are not AutoCommit.
Changed take_imp_data to call finish on all Active child sth.
Changed DBI::PurePerl trace() method to be more consistent.
Changed set_err method to effectively not append to errstr if the new errstr
is the same as the current one.
Changed handle factory methods, like connect, prepare, and table_info,
to copy any error/warn/info state of the handle being returned
up into the handle the method was called on.
Changed row buffer handling to not alter NUM_OF_FIELDS if it's
inconsistent with number of elements in row buffer array.
Updated DBI::DBD docs re handling multiple result sets.
Updated DBI::DBD docs for driver authors thanks to Ammon Riley
and Dean Arnold.
Updated column_info docs to note that if a table doesn't exist
you get an sth for an empty result set and not an error.
Added new DBD::Gofer 'stateless proxy' driver and framework,
and the DBI test suite is now also executed via DBD::Gofer,
and DBD::Gofer+DBI::PurePerl, in addition to DBI::PurePerl.
Added ability for trace() to support filehandle argument,
including tracing into a string, thanks to Dean Arnold.
Added ability for drivers to implement func() method
so proxy drivers can proxy the func method itself.
Added SQL_BIGINT type code (resolved to the ODBC/JDBC value (-5))
Added $h->private_attribute_info method.
1.53 - 2006-10-31, Tim Bunce (svn r7995)
Fixed checks for weaken to work with early 5.8.x versions
Fixed DBD::Proxy handling of some methods, including commit and rollback.
Fixed t/40profile.t to be more insensitive to long double precision.
Fixed t/40profile.t to be insensitive to small negative shifts in time
thanks to Jamie McCarthy.
Fixed t/40profile.t to skip tests for perl < 5.8.0.
Fixed to work with current 'bleadperl' (~5.9.5) thanks to Steve Peters.
Users of Perl >= 5.9.5 will require DBI >= 1.53.
Fixed to be more robust against drivers not handling multiple result
sets properly, thanks to Gisle Aas.
Added array context support to execute_array and execute_for_fetch
methods which returns executed tuples and rows affected.
Added Tie::Cache::LRU example to docs thanks to Brandon Black.
1.52 - 2006-07-30, Tim Bunce (svn r6840)
Fixed memory leak (per handle) thanks to Nicholas Clark and Ephraim Dan.
Fixed memory leak (16 bytes per sth) thanks to Doru Theodor Petrescu.
Fixed execute_for_fetch/execute_array to RaiseError thanks to Martin J. Evans.
Fixed for perl 5.9.4. Users of Perl >= 5.9.4 will require DBI >= 1.52.
Updated DBD::File to 0.35 to match the latest release on CPAN.
Added $dbh->statistics_info specification thanks to Brandon Black.