-
Notifications
You must be signed in to change notification settings - Fork 35
/
Copy pathpackage.xml
1698 lines (1646 loc) · 75.3 KB
/
package.xml
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
<?xml version="1.0" encoding="UTF-8"?>
<package packagerversion="1.9.1" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>MDB2</name>
<channel>pear.php.net</channel>
<extends>MDB</extends>
<summary>database abstraction layer</summary>
<description>PEAR MDB2 is a merge of the PEAR DB and Metabase php database abstraction layers.
It provides a common API for all supported RDBMS. The main difference to most
other DB abstraction packages is that MDB2 goes much further to ensure
portability. MDB2 provides most of its many features optionally that
can be used to construct portable SQL statements:
* Object-Oriented API
* A DSN (data source name) or array format for specifying database servers
* Datatype abstraction and on demand datatype conversion
* Various optional fetch modes to fix portability issues
* Portable error codes
* Sequential and non sequential row fetching as well as bulk fetching
* Ability to make buffered and unbuffered queries
* Ordered array and associative array for the fetched rows
* Prepare/execute (bind) named and unnamed placeholder emulation
* Sequence/autoincrement emulation
* Replace emulation
* Limited sub select emulation
* Row limit emulation
* Transactions/savepoint support
* Large Object support
* Index/Unique Key/Primary Key support
* Pattern matching abstraction
* Module framework to load advanced functionality on demand
* Ability to read the information schema
* RDBMS management methods (creating, dropping, altering)
* Reverse engineering schemas from an existing database
* SQL function call abstraction
* Full integration into the PEAR Framework
* PHPDoc API documentation</description>
<lead>
<name>Lukas Kahwe Smith</name>
<user>lsmith</user>
<email>[email protected]</email>
<active>no</active>
</lead>
<lead>
<name>Lorenzo Alberton</name>
<user>quipo</user>
<email>[email protected]</email>
<active>yes</active>
</lead>
<contributor>
<name>Paul Cooper</name>
<user>pgc</user>
<email>[email protected]</email>
<active>no</active>
</contributor>
<lead>
<name>Daniel Convissor</name>
<user>danielc</user>
<email>[email protected]</email>
<active>yes</active>
</lead>
<helper>
<name>David Coallier</name>
<user>davidc</user>
<email>[email protected]</email>
<active>yes</active>
</helper>
<helper>
<name>Ali Fazelzadeh</name>
<user>afz</user>
<email>[email protected]</email>
<active>yes</active>
</helper>
<date>2010-08-29</date>
<time>12:44:43</time>
<version>
<release>2.5.0b3</release>
<api>2.5.0b3</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<license>BSD License</license>
<notes>
- fixed bug #15912: MDB2::loadClass can return MDB2_OK without loading class
- fixed bug #16020: unable to set params via dsn string in parseDSN()
- fixed bug #16508: reusing var name + return by ref [rix0r]
- fixed bug #16727: quote(url, 'clob')) fetches URL even if lob_allow_url_include option is false
- fixed unreported bug in parseDSN() and oracle's Easy Connect syntax
- fixed bug #16973 and #17039: Wrong _skipDelimitedStrings behavior with escaped quotes
- fixed bug #16994: incompatible declaration of setTransactionIsolation() in some drivers
- dropped PHP 4 support
- PHP 5.3 compatibility fixes
- performance tweaks (reduced number of internal function calls)
- added new sqlsrv driver (native SQL Server driver) [Chris Pucci, Mike Ketcham]
- added new ODBC experimental driver [pschellhaas]
- Switched test suite to PHPUnit 3.5
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), etc.)
- add support for database/table/row LOCKs
- add support for CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- handle LOBs in buffered result sets (Request #8793)
</notes>
<contents>
<dir baseinstalldir="/" name="/">
<dir name="docs">
<dir name="examples">
<file name="example.php" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file name="example_php5.php" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file name="metapear_test_db.schema" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
</dir> <!-- /docs/examples -->
<file name="CONTRIBUTORS" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file name="datatypes.html" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file name="MAINTAINERS" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file name="README" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file name="STATUS" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file name="TODO" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
</dir> <!-- /docs -->
<dir name="MDB2">
<dir name="Driver">
<dir name="Datatype">
<file name="Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
</dir> <!-- /MDB2/Driver/Datatype -->
<dir name="Function">
<file name="Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
</dir> <!-- /MDB2/Driver/Function -->
<dir name="Manager">
<file name="Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
</dir> <!-- /MDB2/Driver/Manager -->
<dir name="Native">
<file name="Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
</dir> <!-- /MDB2/Driver/Native -->
<dir name="Reverse">
<file name="Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
</dir> <!-- /MDB2/Driver/Reverse -->
</dir> <!-- /MDB2/Driver -->
<file name="Date.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file name="Extended.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file name="Iterator.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file name="LOB.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
</dir> <!-- /MDB2 -->
<dir name="tests">
<file name="AllTests.php" role="test" />
<file name="Debug.php" role="test" />
<file name="README" role="test" />
<file name="autoload.inc" role="test">
<tasks:replace from="@php_dir@" to="php_dir" type="pear-config" />
</file>
<file name="dsn.inc" role="test" />
<file name="functions.inc" role="test" />
<file name="import.schema.php" role="test" />
<file name="querysim.csv" role="test" />
<file name="querysim_test.php" role="test" />
<file name="schema.xml" role="test" />
<dir name="Nonstandard">
<file name="Base.php" role="test" />
<file name="IbaseHelper.php" role="test" />
<file name="MssqlHelper.php" role="test" />
<file name="MysqlHelper.php" role="test" />
<file name="MysqliHelper.php" role="test" />
<file name="Oci8Helper.php" role="test" />
<file name="PgsqlHelper.php" role="test" />
<file name="SqliteHelper.php" role="test" />
<file name="SqlservHelper.php" role="test" />
</dir> <!-- /tests/Nonstandard -->
<dir name="Standard">
<file name="Abstract.php" role="test" />
<file name="ApiTest.php" role="test" />
<file name="BugsTest.php" role="test" />
<file name="DatatypeTest.php" role="test" />
<file name="ExtendedTest.php" role="test" />
<file name="FunctionTest.php" role="test" />
<file name="InternalsTest.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file name="ManagerTest.php" role="test" />
<file name="ReverseTest.php" role="test" />
<file name="UsageTest.php" role="test" />
</dir> <!-- /tests/Standard -->
</dir> <!-- /tests -->
<file name="LICENSE" role="data" />
<file name="MDB2.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
</dir> <!-- / -->
</contents>
<dependencies>
<required>
<php>
<min>5.3.0</min>
</php>
<pearinstaller>
<min>1.9.1</min>
</pearinstaller>
<package>
<name>PEAR</name>
<channel>pear.php.net</channel>
<min>1.3.6</min>
</package>
</required>
<group hint="Frontbase SQL driver for MDB2" name="fbsql">
<subpackage>
<name>MDB2_Driver_fbsql</name>
<channel>pear.php.net</channel>
<min>0.3.0</min>
</subpackage>
</group>
<group hint="Interbase/Firebird driver for MDB2" name="ibase">
<subpackage>
<name>MDB2_Driver_ibase</name>
<channel>pear.php.net</channel>
<min>1.5.0b3</min>
</subpackage>
</group>
<group hint="MS SQL Server driver for MDB2" name="mssql">
<subpackage>
<name>MDB2_Driver_mssql</name>
<channel>pear.php.net</channel>
<min>1.5.0b3</min>
</subpackage>
</group>
<group hint="MySQL driver for MDB2" name="mysql">
<subpackage>
<name>MDB2_Driver_mysql</name>
<channel>pear.php.net</channel>
<min>1.5.0b3</min>
</subpackage>
</group>
<group hint="MySQLi driver for MDB2" name="mysqli">
<subpackage>
<name>MDB2_Driver_mysqli</name>
<channel>pear.php.net</channel>
<min>1.5.0b3</min>
</subpackage>
</group>
<group hint="Oracle driver for MDB2" name="oci8">
<subpackage>
<name>MDB2_Driver_oci8</name>
<channel>pear.php.net</channel>
<min>1.5.0b3</min>
</subpackage>
</group>
<group hint="ODBC driver for MDB2" name="odbc">
<subpackage>
<name>MDB2_Driver_odbc</name>
<channel>pear.php.net</channel>
<min>0.1.0</min>
</subpackage>
</group>
<group hint="PostgreSQL driver for MDB2" name="pgsql">
<subpackage>
<name>MDB2_Driver_pgsql</name>
<channel>pear.php.net</channel>
<min>1.5.0b3</min>
</subpackage>
</group>
<group hint="Querysim driver for MDB2" name="querysim">
<subpackage>
<name>MDB2_Driver_querysim</name>
<channel>pear.php.net</channel>
<min>0.6.0</min>
</subpackage>
</group>
<group hint="SQLite2 driver for MDB2" name="sqlite">
<subpackage>
<name>MDB2_Driver_sqlite</name>
<channel>pear.php.net</channel>
<min>1.5.0b3</min>
</subpackage>
</group>
<group hint="MS SQL Server driver for MDB2" name="sqlsrv">
<subpackage>
<name>MDB2_Driver_sqlsrv</name>
<channel>pear.php.net</channel>
<min>1.5.0b3</min>
</subpackage>
</group>
</dependencies>
<phprelease />
<changelog>
<release>
<version>
<release>2.5.0b3</release>
<api>2.5.0b3</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2010-08-29</date>
<license>BSD License</license>
<notes>
- fixed bug #15912: MDB2::loadClass can return MDB2_OK without loading class
- fixed bug #16020: unable to set params via dsn string in parseDSN()
- fixed bug #16508: reusing var name + return by ref [rix0r]
- fixed bug #16727: quote(url, 'clob')) fetches URL even if lob_allow_url_include option is false
- fixed unreported bug in parseDSN() and oracle's Easy Connect syntax
- fixed bug #16973 and #17039: Wrong _skipDelimitedStrings behavior with escaped quotes
- fixed bug #16994: incompatible declaration of setTransactionIsolation() in some drivers
- dropped PHP 4 support
- PHP 5.3 compatibility fixes
- performance tweaks (reduced number of internal function calls)
- added new sqlsrv driver (native SQL Server driver) [Chris Pucci, Mike Ketcham]
- added new ODBC experimental driver [pschellhaas]
- Switched test suite to PHPUnit 3.5
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), etc.)
- add support for database/table/row LOCKs
- add support for CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- handle LOBs in buffered result sets (Request #8793)
</notes>
</release>
<release>
<version>
<release>2.5.0b2</release>
<api>2.5.0b2</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2009-01-14</date>
<license>BSD License</license>
<notes>
- fixed bug #12117: disconnect() does not work as documented
- fixed bug #12912: replace() documentation
- fixed bug #13811: _skipDelimitedStrings() fails on empty strings
- fixed bug #13898: more tolerant check for 'new_link' DSN option
- request #13929: added 'default_fk_action_ondelete' and 'default_fk_action_onupdate'
options for default FOREIGN KEY constraints actions
- fixed bug #14124: _skipDelimitedStrings() and prepare() fail with sql comments
inside quoted strings
- fixed bug #14179: declaration of MDB2_Driver_Common::raiseError() must be
compatible with that of PEAR::raiseError()
- fixed doc bug #14290: connect should mention the type of object returned
- fixed bug #14831: $ignores in _skipDelimitedStrings() [patch by Aleksander Machniak]
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), etc.)
- add support for database/table/row LOCKs
- add support for CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- handle LOBs in buffered result sets (Request #8793)
</notes>
</release>
<release>
<version>
<release>2.5.0b1</release>
<api>2.5.0b1</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2008-03-15</date>
<license>BSD License</license>
<notes>
- request #12731: added truncateTable() in the Manager module
- request #12732: added vacuum() in the Manager module for OPTIMIZE/VACUUM TABLE abstraction
- request #12800: added alterDatabase() in the Manager module [afz]
- fixed bug #12924: correctly handle internal expected errors even with custom error handling
- fixed bug #12991: new error code in errorInfo() [afz]
- added databaseExists() method [afz]
- request #13106: added unixtimestamp() in the Function module
- added max_identifiers_length option
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), etc.)
- add support for database/table/row LOCKs
- add support for CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- handle LOBs in buffered result sets (Request #8793)
</notes>
</release>
<release>
<version>
<release>2.5.0a2</release>
<api>2.5.0a2</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2007-12-06</date>
<license>BSD License</license>
<notes>
- fixed bug #12358: E_STRICT changes in latest alpha broke PHP4 compatibility
- fixed bug #12351: wrong case for function PEAR::isError() in the Reverse module
[was: IsError()]
- fixed bug #12530: MDB2_Extended::autoPrepare() gives error if $types is null
- request #12012: added charset/collation support in createDatabase() for the
drivers that support this feature
- added bindname_format option (this is the regexp used to recognize named
placeholders in prepared statements)
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), etc.)
- add support for database/table/row LOCKs
- add support for CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- handle LOBs in buffered result sets (Request #8793)
</notes>
</release>
<release>
<version>
<release>2.5.0a1</release>
<api>2.5.0a1</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2007-10-28</date>
<license>BSD License</license>
<notes>
- fixed bug #10024: Security fix for LOBs. Added an option to turn lob_allow_url_include off by default
- fixed bug #11179: prepared statements with named placeholders fail if extra values are provided
- request #11297: added support for "schema.table" (or "owner.table") notation in the Reverse module
- initial support for FOREIGN KEY and CHECK constraints in the Reverse and Manager modules
- fixed bug #11428: propagate quote() errors with invalid data types
- added new test cases in the test suite
- added LENGTH() function in the Function module
- fixed bug #11612: raiseError() must be compatible with PEAR::raiseError() [PHP6]
- fixed bug #11790: avoid array_diff() because it has a memory leak in PHP 5.1.x
- fixed bug #11906: quoteIdentifier fails for names with dots
- fixed bug #11975: Extended::autoExecute() does not work with Oracle when using LOBs
(patch by Pieter Meulen, van der)
- fixed some E_STRICT errors with PHP5
- fixed bug #12083: createTable() in the Manager module now returns MDB2_OK on success,
as documented
- fixed bug #12246: wrong check in MDB2::isStatement() (thanks to [email protected])
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), etc.)
- add support for database/table/row LOCKs
- add support for CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- add charset and collation support to field declaration in all drivers
- handle LOBs in buffered result sets (Request #8793)
</notes>
</release>
<release>
<version>
<release>2.4.1</release>
<api>2.4.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2007-05-03</date>
<license>BSD License</license>
<notes>
- fixed bug #10407: propagate errors in MDB2_Statement_Common::execute()
- fixed bug #10452: error in getDeclaration() with custom datatype_map and no
datatype_map_callback function
- fixed bug #10521: quote($val,'decimal') and quote($val,'float') pass unsafe characters
- return length as "precision,scale" for NUMERIC and DECIMAL fields in mapNativeDatatype()
- fixed bug #10537: safer check for valid MDB2 connection in singleton() [fornax]
- fixed bug #10598: MDB2::singleton() not working in some rare conditions [fornax]
- in getTableIndexDefinition() and getTableConstraintDefinition() in the Reverse
module, also return the field position in the index/constraint
- exec() now returns a reference instead of a copy to prevent memory leaks
- request #10787: MDB2_Driver_Common::$phptype and $dbsyntax properties are now public
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- add charset and collation support to field declaration in all drivers
- handle LOBs in buffered result sets (Request #8793)
</notes>
</release>
<release>
<version>
<release>2.4.0</release>
<api>2.4.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2007-03-13</date>
<license>BSD License</license>
<notes>
- propagate errors in getTableFieldDefinition() in the Reverse module
- internally use MDB2::classExists() wrapper instead of directly calling class_exists()
- fixed bug #9502: query result misbehaves when the number of returned columns
is greater than the number of passed types
- fixed bug #9748: Table name is not quoted in Extended.php buildManipSQL()
- fixed bug #9800: when the php extension for the driver fails to load, the
error is not propagated correctly and the script dies
- propagate errors in the Datatype module
- implemented guid() in the Function module [globally unique identifier]
(thanks to mario dot adam at schaeffler dot com)
- fixed bug #4854: Oracle Easy Connect syntax only works with array DSN
- fixed bug #10105: inTransaction() was returning an incorrect value after a call
to disconnect() or __destruct()
- implemented a fallback mechanism within getTableIndexDefinition() and
getTableConstraintDefinition() in the Reverse module to ignore the 'idxname_format'
option and use the index name as provided in case of failure before returning
an error
- added a 'nativetype_map_callback' option to map native data declarations back to
custom data types (thanks to Andrew Hill).
- fixed bug #10234 and bug #10233: MDB2_Driver_Datatype_Common::mapNativeDatatype()
must ensure that it returns the correct length value, or null
- added support for TEMPORARY tables (patch by Andrew Hill)
- phpdoc fixes
- fixed tests to be compatible with PHP4
- added new tests, including some MDB2 internals tests by Andrew Hill and Monique Szpak
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- add charset and collation support to field declaration in all drivers
- handle LOBs in buffered result sets (Request #8793)
</notes>
</release>
<release>
<version>
<release>2.3.0</release>
<api>2.3.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-11-03</date>
<license>BSD License</license>
<notes>
- added charset and collation support to field declaration
- added SQL comments and quoted identifier handling inside prepared statement parser
- expanded length/scale support for numeric types (Request #7170)
- added statement_format option to make it possible to define the name used for
native statements if supported
- fixed bug when setting MDB2_PREPARE_RESULT in autoExecute()
- fixed notice in exec() call in autoExecute()
- reversed if logic in MDB2::fileExists checking to be more fool proof with
safe_mode restrictions (Bug #8296)
- moved CREATE TABLE query generation in a separate method for reuse in the drivers
- added testLOBRead to test multiple LOB reads
- fixed getColumnNames() optional parameter handling (Bug #8857)
- phpdoc fix for fetchCol/fetchAll
- added an extra if in the autoExecute method of the Extended driver (Bug #8878)
- expanded tableInfo() tests
- expanded prepare() tests
- fix the incorrect use of currID() for lastInsertID() emulation (Bug #9107)
- add test for lastInsertID()
- also output php version in test results
- added supported 'new_link'
- dropped use of track_errors because 5.2.0 causes php_errormsg to not get
populated if a custom error handler is set and it was causing issues for
safe_mode users anyways
- added some error handling into the bindValues()/bindParams() methods (Bug #9133)
- bindValue() does not need values by reference
- fix issue in execute() when parameter is a scalar integer of 0 (Bug #9158)
- implemented stream_stat() method (Bug #9092)
- better deal with non scalar arguments in test helper function as 5.2.0 explodes otherwise
- extracted _skipDelimitedStrings() method from prepare()
- added test for _skipDelimitedStrings() method
- migrated to package.xml version 2
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- expand charset support in schema management and result set handling (Request #4666)
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- explore use of install groups (pear install MDB2#mysql)
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- add charset and collation support to field declaration in all drivers
- handle LOBs in buffered result sets (Request #8793)
</notes>
</release>
<release>
<version>
<release>2.2.2</release>
<api>2.2.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-09-03</date>
<license uri="http://www.example.com">BSD License</license>
<notes>
- flip positions property array in prepared statement objects to make it
possible to optionally use the same named placeholder in multiple places
inside a single prepared statement
- expanded prepare tests to cover more edge cases
- renamed valid_types property to valid_default_values in the Datatype module
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- expand charset support in schema management and result set handling (Request #4666)
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- expand length/scale support for numeric types (Request #7170)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add a package2.xml and explore use of install groups (pear install MDB2#mysql)
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
</notes>
</release>
<release>
<version>
<release>2.2.1</release>
<api>2.2.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-08-21</date>
<license uri="http://www.example.com">BSD License</license>
<notes>
- fixed missing code in tableInfo() (Bug #8289)
- fixed handling of indexes and constraints and types in tableInfo() (fixes BC break)
- do not set nested transaction error if error is expected
- explictly default to NULL when the column is NULLable and no default is set
(related to Bug #8359)
- added support for case insensitive matching via ILIKE in matchPattern()
- added getAsKeyword() for generating "AS" keyword as required by the RDBMS
- return an error if a named placeholder name is used twice inside a single statement
- add support for multi column PRIMARY KEYs in createTable()
- added lower() and upper() to the function module
- moved escaping tests to datatype tests
- added summary at the end of a test run for each RDBMS
- explicitly pass the php_type var in all internal loadModule() calls
- added support for 'primary' option in createTable()
- expanded NULL tests
- fixed handling return values when disable_query is set in _doQuery() and _execute()
- check if safe_mode is enabled in fileExists() to determine what algo to use (Bug #8296)
- added a test case for updating LOBs
- added rtrim test case for LOBs
- if result types are specified only rtrim() type 'text' fields (otherwise
it will mean that for some drivers LOB's would get rtrimmed)
- phpdoc fixes to the convertResult*() methods
- added execParam() method and code tweaks for get*() methods in the Extended module
- removed redundant assertions when testing if a given feature is unsupported
- removed tests of portability off (users should just set the given portability
setting they want to test in their test_setup.php)
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- expand charset support in schema management and result set handling (Request #4666)
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- expand length/scale support for numeric types (Request #7170)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add a package2.xml and explore use of install groups (pear install MDB2#mysql)
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
</notes>
</release>
<release>
<version>
<release>2.2.0</release>
<api>2.2.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-07-23</date>
<license uri="http://www.example.com">BSD License</license>
<notes>
- added MDB2_AUTOQUERY_SELECT (Request #7817)
- added nested transaction support (inspired by ADODB's smart transactions) but
expanded to optionally use SAVEPOINTs *EXPERIMENTAL*
beginNestedTransaction(), completeNestedTransaction(),
failNestedTransaction(), getNestedTransactionError()
- inTransaction() will now return an integer with the nested transaction depth
if a nested transaction has been started
- added setTransactionIsolation()
- added savepoint support to beginTransaction(), commit() and rollback()
- added Native base class for consistency
- added missing colnum parameter to queryOne() [used by getOne()]
- added new tests for get*() Extended module methods
- fixed missing db variable from getValidTypes()
- added testing of a prepared statement with no parameters
- added handling of empty result sets to result set verification in the test suite
- oci8 and ibase (and possibly other rdbms) do not like freeing the statement
before reading the result set (Bug #8068):
* moved statement freeing after reading the result set in get*() Extended methods
* bypass prepared statement API for queries without parameters in autoExecute()
(this means you cannot use parameters with SELECT statements in autoExecute()
on the above mentioned platforms)
- use data type callback in getValidTypes()
- fixed identifier quoting in buildManipSQL() for SELECT statements (thx Kailoran)
- phpdoc and cosmetic fixes in limitQuery()
- added matchPattern() and patternEscapeString(), escapePattern() *EXPERIMENTAL*
- added ability to escape wildcard characters in escape() and quote()
- added debug() call at the end of a query/prepare/execute calling (Request #7933)
- added context array parameter to debug() and make use of it whereever sensible
- added optional method name parameter to raiseError() and use whereever possible
- added a new option "debug_expanded_output" which needs to be set to true to
get additional context information and to get "post" callback calls
- added testPortabilityOptions()
- set length of 8 and fixed for user_password in the test suite
- reworked tableInfo() to use a common implementation based on getTableFieldDefinition()
when a table name is passed (Bug #8124)
- disconnect after changing database/DSN (otherwise transactions may be left open)
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- expand charset support in schema management and result set handling (Request #4666)
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- expand length/scale support for numeric types (Request #7170)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support to generating "AS" keyword if required
- add support for database/table/row LOCKs
- add ActiveRecord implementation (probably as a separate package)
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- extended to support for case insensitive matching via ILIKE/collate in matchPattern()
- generate STATUS file from test suite results and allow users to submit test results
</notes>
</release>
<release>
<version>
<release>2.1.0</release>
<api>2.1.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-06-15</date>
<license uri="http://www.example.com">BSD License</license>
<notes>
- removed bogus code from execute()
- new test case for floats/decimals and locale
- reworked fix for float/decimal handling
- expanded scientific notation handling
- fixed several minor issues with the datatype tests
- removed use of "*" in all places in the test suite that are followed by a fetch
- tweaked handling of free() for prepared statements
- return error if a prepared statement is attempted to be free'ed or executed again
- added result_wrap_class param to limitQuery()
- added parameter to not quote return value of getBeforeId()
- added setCharset()
- enable transactions by default
- added decimal reverse engineering test
- fixed parameter order in assertions in reverse engineering fields tests
- generalized quoteIdentifier() with a property
- switched most array_key_exists() calls to !empty() to improve readability and performance
- fixed a few edge cases and potential warnings
- added ability to rewrite queries for query(), exec() and prepare() using a debug handler callback
- added 'datatype_map' option (Request #7797)
- added reverse parameter to getColumnNames()
- added 'datatype_map_callback' option
- added getValidTypes() method to handle additional types from the 'datatype_map' option
- set last_query in _execute() to prepared statement (Bug #7856)
- adding random function emulation to generate a float between 0 and 1
- explicitly fetch row id = 1 in LOB tests
- cosmetic fix to prepare() (Bug #7883)
- bumped PHP dependency to 4.3.2 because of LOB stream support
open todo items:
- handle autoincrement fields in alterTable()
- add support for ADODB style "smart transactions":
http://phplens.com/lens/adodb/docs-adodb.htm#ex11
- add length handling to LOB reverse engineering
</notes>
</release>
<release>
<version>
<release>2.0.3</release>
<api>2.0.3</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-05-22</date>
<license uri="http://www.example.com">BSD License</license>
<notes>
- fix float/decimal handling (Request #3021)
- default to decimal for double (instead of float)
- serialize arrays when no type is explicitly given
- phpdoc fixes
- expanded FLOAT test
- added support for identifier quoting (Request #7671)
- added test class for the Extended module
- added support for DELETE in auto*() methods (Request #5345)
- added "emulate_prepared" option to force prepared statement emulation
open todo items:
- handle autoincrement fields in alterTable()
- add support for ADODB style "smart transactions":
http://phplens.com/lens/adodb/docs-adodb.htm#ex11
- add length handling to LOB reverse engineering
</notes>
</release>
<release>
<version>
<release>2.0.2</release>
<api>2.0.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-05-14</date>
<license uri="http://www.example.com">BSD License</license>
<notes>
- phpdoc and folding mark fixes (thx Laurent and Stoyan)
- added getTriggerDefinition() in the Reverse module
- added listTableViews() in the Manager module
- explicitly set is_manip parameter to false for transaction debug calls
- various minor tweaks to error messages, phpdoc and adding stub methods to the
common driver
- added row seeking support to fetchOne()
- added ability to hint that a constraint is a primary key in dropConstraint()
- since we no longer complain about primary keys not being called primary we can
remove the necessary hacks in the test suite
- improved LOB tests in the test suite
- do not require Manager module for core API tests
- added support for fixed and variable types for 'text' in declarations,
as well as in reverse engineering (Request #1523)
- updated MAINTAINERS to current status
- readded STATUS document, still needs to be filled with content