This file is indexed.

/usr/share/php/.registry/mdb2.reg is in php-mdb2 2.5.0b5-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
a:25:{s:7:"attribs";a:6:{s:15:"packagerversion";s:5:"1.9.4";s:7:"version";s:3:"2.0";s:5:"xmlns";s:35:"http://pear.php.net/dtd/package-2.0";s:11:"xmlns:tasks";s:33:"http://pear.php.net/dtd/tasks-1.0";s:9:"xmlns:xsi";s:41:"http://www.w3.org/2001/XMLSchema-instance";s:18:"xsi:schemaLocation";s:147:"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";}s:4:"name";s:4:"MDB2";s:7:"channel";s:12:"pear.php.net";s:7:"extends";s:3:"MDB";s:7:"summary";s:26:"database abstraction layer";s:11:"description";s:1379:"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";s:4:"lead";a:3:{i:0;a:4:{s:4:"name";s:17:"Lukas Kahwe Smith";s:4:"user";s:6:"lsmith";s:5:"email";s:20:"smith@pooteeweet.org";s:6:"active";s:2:"no";}i:1;a:4:{s:4:"name";s:16:"Lorenzo Alberton";s:4:"user";s:5:"quipo";s:5:"email";s:19:"l.alberton@quipo.it";s:6:"active";s:3:"yes";}i:2;a:4:{s:4:"name";s:16:"Daniel Convissor";s:4:"user";s:7:"danielc";s:5:"email";s:15:"danielc@php.net";s:6:"active";s:3:"yes";}}s:11:"contributor";a:4:{s:4:"name";s:11:"Paul Cooper";s:4:"user";s:3:"pgc";s:5:"email";s:14:"pgc@ucecom.com";s:6:"active";s:2:"no";}s:6:"helper";a:2:{i:0;a:4:{s:4:"name";s:14:"David Coallier";s:4:"user";s:6:"davidc";s:5:"email";s:17:"david@jaws.com.mx";s:6:"active";s:3:"yes";}i:1;a:4:{s:4:"name";s:14:"Ali Fazelzadeh";s:4:"user";s:3:"afz";s:5:"email";s:16:"afz@dev-code.com";s:6:"active";s:3:"yes";}}s:4:"date";s:10:"2012-10-29";s:4:"time";s:8:"15:41:51";s:7:"version";a:2:{s:7:"release";s:7:"2.5.0b5";s:3:"api";s:7:"2.5.0b5";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:7:"license";s:11:"BSD License";s:5:"notes";s:1336:"- fixed bug #18494: _compareIntegerDefinition() ignores length change.
- fixed bug #16280: compareDefinition() turns NULL defaults into empty strings for NOT NULL columns.
- fixed bug #19677: Call to undefined function: MDB2_Driver_mysql::isError()

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)";s:8:"contents";a:1:{s:3:"dir";a:2:{s:7:"attribs";a:2:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:1:"/";}s:4:"file";a:39:{i:0;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:25:"docs/examples/example.php";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:1;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:30:"docs/examples/example_php5.php";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:2;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:37:"docs/examples/metapear_test_db.schema";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:3;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:17:"docs/CONTRIBUTORS";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:4;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:19:"docs/datatypes.html";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:5;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:16:"docs/MAINTAINERS";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:6;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:11:"docs/README";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:7;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:11:"docs/STATUS";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:8;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:9:"docs/TODO";s:4:"role";s:3:"doc";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:9;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:31:"MDB2/Driver/Datatype/Common.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:10;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:31:"MDB2/Driver/Function/Common.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:11;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:30:"MDB2/Driver/Manager/Common.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:12;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:29:"MDB2/Driver/Native/Common.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:13;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:30:"MDB2/Driver/Reverse/Common.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:14;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:13:"MDB2/Date.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:15;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:17:"MDB2/Extended.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:16;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:17:"MDB2/Iterator.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:17;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:12:"MDB2/LOB.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:18;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:26:"tests/Nonstandard/Base.php";s:4:"role";s:4:"test";}}i:19;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:35:"tests/Nonstandard/SqlservHelper.php";s:4:"role";s:4:"test";}}i:20;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:27:"tests/Standard/Abstract.php";s:4:"role";s:4:"test";}}i:21;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:26:"tests/Standard/ApiTest.php";s:4:"role";s:4:"test";}}i:22;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:27:"tests/Standard/BugsTest.php";s:4:"role";s:4:"test";}}i:23;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:31:"tests/Standard/DatatypeTest.php";s:4:"role";s:4:"test";}}i:24;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:31:"tests/Standard/ExtendedTest.php";s:4:"role";s:4:"test";}}i:25;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:31:"tests/Standard/FunctionTest.php";s:4:"role";s:4:"test";}}i:26;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:32:"tests/Standard/InternalsTest.php";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}i:27;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:30:"tests/Standard/ManagerTest.php";s:4:"role";s:4:"test";}}i:28;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:30:"tests/Standard/ReverseTest.php";s:4:"role";s:4:"test";}}i:29;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:28:"tests/Standard/UsageTest.php";s:4:"role";s:4:"test";}}i:30;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:18:"tests/AllTests.php";s:4:"role";s:4:"test";}}i:31;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:18:"tests/autoload.inc";s:4:"role";s:4:"test";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:9:"@php_dir@";s:2:"to";s:7:"php_dir";s:4:"type";s:11:"pear-config";}}}i:32;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:15:"tests/Debug.php";s:4:"role";s:4:"test";}}i:33;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:13:"tests/dsn.inc";s:4:"role";s:4:"test";}}i:34;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:19:"tests/functions.inc";s:4:"role";s:4:"test";}}i:35;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:23:"tests/import.schema.php";s:4:"role";s:4:"test";}}i:36;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:12:"tests/README";s:4:"role";s:4:"test";}}i:37;a:1:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:16:"tests/schema.xml";s:4:"role";s:4:"test";}}i:38;a:2:{s:7:"attribs";a:3:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:8:"MDB2.php";s:4:"role";s:3:"php";}s:13:"tasks:replace";a:1:{s:7:"attribs";a:3:{s:4:"from";s:17:"@package_version@";s:2:"to";s:7:"version";s:4:"type";s:12:"package-info";}}}}}}s:12:"dependencies";a:2:{s:8:"required";a:3:{s:3:"php";a:1:{s:3:"min";s:5:"5.2.0";}s:13:"pearinstaller";a:1:{s:3:"min";s:5:"1.9.1";}s:7:"package";a:3:{s:4:"name";s:4:"PEAR";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"1.3.6";}}s:5:"group";a:11:{i:0;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:29:"Frontbase SQL driver for MDB2";s:4:"name";s:5:"fbsql";}s:10:"subpackage";a:3:{s:4:"name";s:17:"MDB2_Driver_fbsql";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"0.3.0";}}i:1;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:34:"Interbase/Firebird driver for MDB2";s:4:"name";s:5:"ibase";}s:10:"subpackage";a:3:{s:4:"name";s:17:"MDB2_Driver_ibase";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:7:"1.5.0b4";}}i:2;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:29:"MS SQL Server driver for MDB2";s:4:"name";s:5:"mssql";}s:10:"subpackage";a:3:{s:4:"name";s:17:"MDB2_Driver_mssql";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:7:"1.5.0b4";}}i:3;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:21:"MySQL driver for MDB2";s:4:"name";s:5:"mysql";}s:10:"subpackage";a:3:{s:4:"name";s:17:"MDB2_Driver_mysql";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:7:"1.5.0b4";}}i:4;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:22:"MySQLi driver for MDB2";s:4:"name";s:6:"mysqli";}s:10:"subpackage";a:3:{s:4:"name";s:18:"MDB2_Driver_mysqli";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:7:"1.5.0b4";}}i:5;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:22:"Oracle driver for MDB2";s:4:"name";s:4:"oci8";}s:10:"subpackage";a:3:{s:4:"name";s:16:"MDB2_Driver_oci8";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:7:"1.5.0b4";}}i:6;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:20:"ODBC driver for MDB2";s:4:"name";s:4:"odbc";}s:10:"subpackage";a:3:{s:4:"name";s:16:"MDB2_Driver_odbc";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"0.2.0";}}i:7;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:26:"PostgreSQL driver for MDB2";s:4:"name";s:5:"pgsql";}s:10:"subpackage";a:3:{s:4:"name";s:17:"MDB2_Driver_pgsql";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:7:"1.5.0b4";}}i:8;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:24:"Querysim driver for MDB2";s:4:"name";s:8:"querysim";}s:10:"subpackage";a:3:{s:4:"name";s:20:"MDB2_Driver_querysim";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:5:"0.7.0";}}i:9;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:23:"SQLite2 driver for MDB2";s:4:"name";s:6:"sqlite";}s:10:"subpackage";a:3:{s:4:"name";s:18:"MDB2_Driver_sqlite";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:7:"1.5.0b4";}}i:10;a:2:{s:7:"attribs";a:2:{s:4:"hint";s:29:"MS SQL Server driver for MDB2";s:4:"name";s:6:"sqlsrv";}s:10:"subpackage";a:3:{s:4:"name";s:18:"MDB2_Driver_sqlsrv";s:7:"channel";s:12:"pear.php.net";s:3:"min";s:7:"1.5.0b5";}}}}s:10:"phprelease";s:0:"";s:9:"changelog";a:1:{s:7:"release";a:30:{i:0;a:5:{s:7:"version";a:2:{s:7:"release";s:7:"2.5.0b5";s:3:"api";s:7:"2.5.0b5";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2012-10-29";s:7:"license";s:11:"BSD License";s:5:"notes";s:1336:"- fixed bug #18494: _compareIntegerDefinition() ignores length change.
- fixed bug #16280: compareDefinition() turns NULL defaults into empty strings for NOT NULL columns.
- fixed bug #19677: Call to undefined function: MDB2_Driver_mysql::isError()

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)";}i:1;a:5:{s:7:"version";a:2:{s:7:"release";s:7:"2.5.0b4";s:3:"api";s:7:"2.5.0b4";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2012-10-23";s:7:"license";s:11:"BSD License";s:5:"notes";s:3514:"- MDB2 is now E_STRICT compliant! [danielc]
- Fix Bug #9502: Strong typing query result misbehaves [danielc]
- Fix Bug #16508: mdb2-2.5.0b1 not working with PHP 5.3.0 [quipo]
- Fix Bug #17552: MDB2_Driver_Manager_ibase::listTableConstraints returns list of indices [quipo]
- Fix Bug #17890: Improper use of array_search in psgsql.php v1.173  prepare function [quipo]
- Fix Bug #18050: Many "Deprecated" [quipo]
- Fix Bug #18175: Using MDB2::factory raises fatal error [quipo]
- Fix Bug #18203: Type introspection breaks with associative arrays if names are identical [danielc] (patch by Peter Bex)
- Fix Bug #18398: non-static functions called statically [danielc]
- Fix Bug #18427: Notices appear while debugging [quipo]
- Fix Bug #18721: DSN URLs do not support "@" in database names [danielc]
- Fix Bug #18826: Crash and security problem with is_a() in combination with value escaping [doconnor]
- Fix Bug #18886: Deprecated code generates warnings [astembridge]
- Fix Bug #18978: upgrade from alpha2 to beta3 breaks iterator.php [danielc]
- Fix Bug #19008: remove error_reporting (for PEAR QA team) [danielc]
- Fix Bug #19136: Infinite Recurcsion makes result object unuseable [danielc]
- Fix Bug #19148: "undefined variable result" in MDB2_Driver_Common::_wrapQuery() [danielc]
- Fix Bug #19191: Have dropSequence() return MDB2_OK on success, as documented [danielc]
- Fix Bug #19192: Have createSequence() return MDB2_OK on success, as documented [danielc]
- Fix Bug #19193: Have createConstraint() return MDB2_OK on success, as documented [danielc]
- Fix Bug #19194: Have dropConstraint() return MDB2_OK on success, as documented [danielc]
- Fix Bug #19195: Have createIndex() return MDB2_OK on success, as documented [danielc]
- Fix Bug #19196: Have vacuum() return MDB2_OK on success, as documented [danielc]
- Fix Bug #19199: Have dropTable() return MDB2_OK on success, as documented [danielc]
- Fix Bug #19200: Have alterTable() return MDB2_OK on success, as documented [danielc]
- Fix Bug #19201: Have truncateTable() return MDB2_OK on success, as documented [danielc]
- Fix Bug #19202: sqlite foreign key violations produce generic MDB2_ERROR [danielc]
- Fix Bug #19262: Fetchmode constants WERE bitwise [gauthierm]
- Implement Feature #17367: Documentation Sync Drift [quipo]
- Implement Feature #18759: User note that is a documentation problem [danielc]
- small performance tweaks

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)";}i:2;a:5:{s:7:"version";a:2:{s:7:"release";s:7:"2.5.0b3";s:3:"api";s:7:"2.5.0b3";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2010-08-29";s:7:"license";s:11:"BSD License";s:5:"notes";s:1929:"- 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)";}i:3;a:5:{s:7:"version";a:2:{s:7:"release";s:7:"2.5.0b2";s:3:"api";s:7:"2.5.0b2";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2009-01-14";s:7:"license";s:11:"BSD License";s:5:"notes";s:1853:"- 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)";}i:4;a:5:{s:7:"version";a:2:{s:7:"release";s:7:"2.5.0b1";s:3:"api";s:7:"2.5.0b1";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2008-03-15";s:7:"license";s:11:"BSD License";s:5:"notes";s:1599:"- 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)";}i:5;a:5:{s:7:"version";a:2:{s:7:"release";s:7:"2.5.0a2";s:3:"api";s:7:"2.5.0a2";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2007-12-06";s:7:"license";s:11:"BSD License";s:5:"notes";s:1573:"- 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)";}i:6;a:5:{s:7:"version";a:2:{s:7:"release";s:7:"2.5.0a1";s:3:"api";s:7:"2.5.0a1";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2007-10-28";s:7:"license";s:11:"BSD License";s:5:"notes";s:2284:"- 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 zaa@zaa.pp.ru)

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)";}i:7;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.4.1";s:3:"api";s:5:"2.4.1";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2007-05-03";s:7:"license";s:11:"BSD License";s:5:"notes";s:2022:"- 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)";}i:8;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.4.0";s:3:"api";s:5:"2.4.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2007-03-13";s:7:"license";s:11:"BSD License";s:5:"notes";s:2758:"- 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)";}i:9;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.3.0";s:3:"api";s:5:"2.3.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-11-03";s:7:"license";s:11:"BSD License";s:5:"notes";s:3085:"- 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)";}i:10;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.2.2";s:3:"api";s:5:"2.2.2";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-09-03";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1412:"- 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..)";}i:11;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.2.1";s:3:"api";s:5:"2.2.1";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-08-21";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:2632:"- 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";}i:12;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.2.0";s:3:"api";s:5:"2.2.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-07-23";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:3286:"- 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";}i:13;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.1.0";s:3:"api";s:5:"2.1.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-06-15";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1721:"- 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";}i:14;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.0.3";s:3:"api";s:5:"2.0.3";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-05-22";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:633:"- 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";}i:15;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.0.2";s:3:"api";s:5:"2.0.2";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-05-14";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:2298:"- 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
- tweaked handling of error objects inside raiseError()
- made _doQuery() return a reference
- added userinfo's to all raiseError calls that previously had none
- added bindValueArray()
- use bindValueArray() instead of bindParamArray() in all internal calls
- removed the skeleton drivers, since its too much work to maintain them
  and there are plenty of sample drivers to look at
- fixed example due to API change in MDB2_Schema (Bug #7575)
- added 'prepared_statements' supported meta data setting
- do not retrieve lob in the stream constructor and streams_eof()
- strip of file:// prefix in writeLOBToFile()
- typo fix ressource/resource in LOB array
- removed lob property from the LOB streams wrapper (references are always
  shaky business in PHP so lets use them as little as possible)
- fixed _destroyLOB() API to match other private LOB methods
- fixed phpdoc comments of all private LOB methods
- typo fix in autoincrement test
- reworked index/constraint creation to not affected unnecessary reverse tests

Note: Due to changes in generation of declaration statements you may need to
update your test databases (for example by rerunning the MDB2_Schema
installation using the CVS version or a release greater than 0.5.0)

open todo items:
- handle autoincrement fields in alterTable()
- add support for ADODB style "smart transactions":
  http://phplens.com/lens/adodb/docs-adodb.htm#ex11";}i:16;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.0.1";s:3:"api";s:5:"2.0.1";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-04-16";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1609:"- added new comprehensive tests for the Reverse module
- fixed testcases to pass for mysql[i] (needs pk's to be called "primary") ..
  sqlite is probably severely broken for these tests
- added ability to specify port number when using unix sockets in
  MDB2::parseDSN() (bug #5982)
- added test for multi_query option
- typo fix in get constraint test
- use ugly fopen() hack in fileExists()
  http://marc.theaimsgroup.com/?l=pear-dev&m=114148949106207&w=2
- allow "." and "$" in sequence name (bug #7081)
- aligned _modifyQuery() signature and phpdoc
- added inTransaction() to determine if a transaction is currently open
- added support for tabe options in createTable() (bug ##7079)
- make it possible to overwrite the error code-message map
- added sample sqlite in memory dsn to php5 example
- added 'result_introspection' supported metadata support
- added bindValue() method
- use MDB2_PREPARE_MANIP where we previously were using false
- fixed default values for date and timestamp
- if MDB2_PORTABILITY_EMPTY_TO_NULL is set change '' to ' ' in _getDeclaration()
- refactored class loading into MDB2::loadClass()
- properly quote CURRENT_* for temporal types (bug #6416)
- added connected_server_info to cache server info in getServerInfo()
- reset all connection related properties in disconnect()
- separated result_buffering and prefetching by adding the new result_prefetching option
- set error code in all raiseError() calls
- added support for length in reverse engineering of integer fields
- improve test suite documentation

open todo items:
- handle autoincremement fields in alterTable()";}i:17;a:5:{s:7:"version";a:2:{s:7:"release";s:5:"2.0.0";s:3:"api";s:5:"2.0.0";}s:9:"stability";a:2:{s:7:"release";s:6:"stable";s:3:"api";s:6:"stable";}s:4:"date";s:10:"2006-02-09";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:79:"- handle null as resource when disable_query option is enabled in result object";}i:18;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC5";s:3:"api";s:8:"2.0.0RC5";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2006-02-05";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:916:"- expanded testing of prepared queries (out of order binding, escape characters
  inside the string, lobs without named parameters that match the field name)
- removed ugly hack for quote parameter in quote() since it was insufficient
  (escaping also needs to be prevented)
- added support for out of order parameter binding in prepared queries
- expanded testing of prepared queries (out of order binding, escape characters
  inside the string, lobs without named parameters that match the field name)
- reset row_limit and row_offset after calling prepare() just like we do for query() and exec()
- cosmetic fix (removed "row_" prefix from "row_limit" and "row_offset")
- now using INT/TINYINT/SMALLINT by default instead of CHAR(1) for the boolean datatype
  (BC BREAK!)
- added MDB2_datatype_testcase to test suite
- support an arbitrary number of arguments in concat()
- add property phpdoc comments to LOB.php";}i:19;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC4";s:3:"api";s:8:"2.0.0RC4";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2006-01-13";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:796:"- explicitly pass if the module is phptype specific in all loadModule calls (bug #6226)
- some cleanups in loadModule()
- eliminate possible warnings in execute() and _assignBindColumns()
- do not silence includes when debug option is enabled
- fixed serious bug in autoincrement test
- added dbsyntax to getDSN() string output (feature request #6463)
- fixed signature of executeStoredProc()
- nextResult() returns false if there are no more result sets to read
- renamed _isIndexName() to _fixIndexName()
- _fixIndexName() now just attempts to remove possible formatting
- renamed _isSequenceName() to _fixSequenceName()
- _fixSequenceName() now just attempts to remove possible formatting, and only
  returns a boolean if no formatting was applied when the new "check" parameter is set to true";}i:20;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC3";s:3:"api";s:8:"2.0.0RC3";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-12-30";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:479:"- added error handling when result set introspection is not supported in _wrapResult()
- fixed example
- removed peardb wrapper (its broken, unmaintained and probably unused)
- added new example using php5 only features
- MDB2_OK is now a boolean true, instead of integer 1
- types can now always be keyed by name or by order
- renamed setResultTypes() in the datatype module to checkResultTypes()
  and modified the signature accordingly
- removed no longer used MDB2::isManip()";}i:21;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC2";s:3:"api";s:8:"2.0.0RC2";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-12-28";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:616:"- fixed testNow() to use the datatype abstraction
- fixed testGetTableFieldDefinition() to use a blob column instead of a clob
  since we default to blob when we cannot differntiate between blob and clob
- split up alterTable() testing into two separate test methods
- removed errorNative() was never implemented, use errorInfo() instead
- fixed major bug in _fixResultArrayValues() that would lead to performance or
  incorrect application of portability features
- phpdoc fixes in LOB.php, Iterator.php, Date.php and Extended.php
- removed not required prev() and hasPrev() from the SeekableIterator implementation";}i:22;a:5:{s:7:"version";a:2:{s:7:"release";s:8:"2.0.0RC1";s:3:"api";s:8:"2.0.0RC1";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-12-21";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1629:"- added numerous testcases in the manager and reverse module
- unified case fixing in the list*() methods
- case-insensitive comparison in _isSequenceName()
- added getConnection() to fetch a native connection resource
- split index and constraint handling
- quote identifiers where possible inside the manager methods depending on
  the new 'quote_identifier' option (defaults to off)
- refactored get*Declaration() methods to use getTypeDeclaration()
- setting in_transaction to false on disconnect
- store if type has changed in compareDefinition()
- added new Function modules to handle difference in SQL functions
- added verious new test cases
- refactored test cases to use an MDB2_testcase base class
- allow empty field parameter in get*ID() methods (bug #5791)
- tweaked error messages for file loads
- split off manipulation queries into exec() method from the query() method *BC BREAK*
- only if result_types is set to false in prepare() method the query will be
  handled as a DML statement *BC BREAK*
- use a proper default value if a field is set to not null in _getDeclaration*() (bug #5930)
- added getServerVersion()
- renamed defaultOutput() to getDefaultOutput() *BC BREAK*
- use tableInfo() to automatically determine the result types if type is set to true
- reworked file loading to work around issues in safe_mode with MDB2::fileExists() (bug #6226)
- no need to return by reference in getConnection() (it even seems to work for
  mysqli that has objects and not resource connections)
- added "idxname_format" as option similar to "seqname_format"
- fixed bug in API calls inside autoExecute() (bug #6286)";}i:23;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta6";s:3:"api";s:10:"2.0.0beta6";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-10-16";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:3425:"Warning: this release features numerous BC breaks!

There have been considerable improvements to the datatype, manager and reverse
modules. Furthermore preliminary support for auto increment and primary keys
has been added. Please note that making a field auto increment implies a single
column primary key on this field.

- increased php dependency to 4.3.0 due to the usage of the streams API since beta5
- moved logic from MDB2::connect() to MDB2::factory(), the only difference is
  that MDB2::connect will immediatly try to connect to the database
- MDB2::singleton now uses MDB2::factory()
- added support for auto increment and primary key in schema. (mysql[i])
- alterTable now needs the full definition to work (use getTableFieldDefinition
 from Reverse module if you do not have a definition at hand) this eliminates the need
 of the declaration part in the alterTable array.
- nicer test chooser. Added some js magic to [un]select all the tests in a group
- fixed typo in _getTextDeclaration()
- fix PHP4.4 breakage
- ensure that types and result_types property in the statement class is an array (bug #4695)
- added support for fetchmode in the iterator class and for any other result wrapper class (bug #4685)
- moved getInsertID() into core as lastInsertID()
- moved getBeforeID() and getAfterID() from core into the extended module
- added base class for all modules (which provides getDBInstance())
- added free() method to remove an instance from the global instance array
- removed schema manager related error codes from MDB2::errorMessage()
- dont set the include path in test suite (people can do that in test_setup.php)
- added missing default numRows() method
- added hack into stream_eof() to handle the BC break in 5.0.x
- removed uncessary duplicate quoting in quote() in the peardb wrapper (bug #5195)
- warning fix in BC hack of connect() in the peardb wrapper
- tweaked error message in setResultTypes()
- removed PDO compatibility code in bindParam and bindCol, now using 0-index numeric keys again
- expect keys in type arrays the same way as they are passed for the values in execute() and bindParamArray()
- add s pattern modifier to preg_replace() call for parameter searches in prepare() (bug #5362)
- moved all private fetch mode fix methods into _fixResultArrayValues() for performance reasons
- added new portability fetch mode MDB2_PORTABILITY_FIX_ASSOC_FIELD_NAMES (to remove database/table qualifiers from assoc indexes)
- renamed MDB2_PORTABILITY_LOWERCASE to MDB2_PORTABILITY_FIX_CASE and use 'field_case' option to determine if to upper- or lowercase (CASE_LOWER/CASE_UPPER)
- ensure that fetchAll always returns an array() even if the result set was empty
- use array_key_exists() instead of isset() where possible
- changed structure of field add/remove/change in alterTable() to match MDB2_Schema
- added default values for supported property
- reworked supports() to return the given value and also return errors for non existant support feature
- reworked subSelect() to use the 'emulated' supports() return value
- removed implementation of createIndex() (now every driver needs to implement it themselves)
- sync fileExists with the LiveUser one, explode instead of split and is_readable instead of file_exists.
- tweaked compare method family to better deal with optional properties

open todo items:
- add test cases for the various module methods
- add getServerVersion()";}i:24;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta5";s:3:"api";s:10:"2.0.0beta5";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-06-08";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1230:"Warning: this release features numerous BC breaks to make the MDB2 API be as
similar as possible as the ext/pdo API! The next release is likely to also break
BC for the same reason. Check php.net/pdo for information on the pdo API.

- refactored LOB support (BC breaks)
- moved all drivers into separate packages MDB2_Driver_* (BC break)
- bindParam() and bindColumn() are now 1-indexed (BC break)
- removed special handling for day light saving time (bug #4341) (BC break)
- ensure SQL injection protection in all _quote() methods
  (was missing in some decimal, float, time, date and timestamp implementations)
- renamed getRowCount() to rowCount() for PDO compliance (BC break)
  (doesnt take into account the offset anymore)
- added new quote() parameter to remove quotes (ugly hack will get cleaned up)
- renamed execute() to _execute() since common provides some common functionality via execute()
- fixed some issues regarding limit/offset in prepared statements
- fixed bug in _assignBindColumns() when using associative fetches
- support numeric and string keys in types array for prepared queries
- call trigger error if __call() is unable to find a method in any of the modules
- work around php5 bugs in the test suite";}i:25;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta4";s:3:"api";s:10:"2.0.0beta4";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-04-29";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:2802:"Warning: this release features numerous BC breaks to make the MDB2 API be as
similar as possible as the ext/pdo API! The next release is likely to also break
BC for the same reason. Check php.net/pdo for information on the pdo API.

- fixed bugs in MDB2_Extended::buildManipSQL() introduced in latest tweaks (bug #3725)
- mysqli has connection objects instead of resources
- fix mssql tableInfo() so flags are returned (bug #3691)
- fixed bug in handling of force_array when 2 or less columns are fetched in fetchAll()
- added map error message for sqlite multi-column unique constraints.
- added listUsers(), listViews(), listFunctions() to oracle manager
- added listFunctions() to pgsql manager
- updated listViews() in pgsql manager
- added __call() support for module handling
- mysql driver now uses mysqli implementations where feasible
- ensure that internal calls to query dont wrap the result
- for some reason mysqli didnt like SELECT LAST_INSERT_ID()
- fixed bug in table alteration when only an index was added
- updated pgsql API calls to 4.2.0 recommended names (bug #3904)
- moved logic to compareDefinitions from the Manager into the Datatype module
  to increase flexibility
- extended MDB2::isError() to be able to handle an array or codes
- added error handling into autoPrepare() and autoExecute()
- migrade all MDB2::isError calls that dont check for specific errors codes to PEAR::isError
- don't pass new_link to mysql_pconnect() (bug #3993)
- use MDB2::raiseError() instead of MDB2_Driver_Common::raiseError()
- do not disable result wrapping when doing internal calls to query() (bug #3997)
- _wrapResult() now ensures that the result class is an instance of MDB2_Result_Common
- unbundled the MDB2_Tools_Manager into a separate package PEAR::MDB2_Schema
- improved getTableFieldDefinition() and moved native type mapping to the
  datatype module mapNativeDatatype() method (mysql, sqlite, pgsql and ibase drivers)
- fixes for listTables() in sqlite and pgsql driver
- ensure that mysql drivers use the dummy_primary_key property
- severely reworked how data is fetched and buffered and freed in the iterator
- added mapNativeDatatype() to ibase driver
- getTypeDeclaration() => _getTypeDeclaration() in ibase driver
- cosmetic fixes and tweaks (replace(). fetchOne() ..)
- renamed 'seqname_col_name' option to 'seqcol_name'
- moved schema documentation, xml_reverse_engineering.php, MDB.dtd
  and MDB.xls to MDB_Schema package
- Mysqli: implicit sequence is named as table by default
- Mysqli: text types now map to clob first
- ensure that types are numerically keyed in setResultTypes()
- added caching to getColumnNames()
- added bindColumn() support
- use MDB2_Schema::factory()
- phpdoc fixes in regards to flipped fetchmode
- remove renegate mysql code in sqlite driver";}i:26;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta3";s:3:"api";s:10:"2.0.0beta3";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2005-03-06";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:7520:"Warning: this release features numerous BC breaks to make the MDB2 API be as
similar as possible as the ext/pdo API! The next release is likely to also break
BC for the same reason. Check php.net/pdo for information on the pdo API.

Oracle NULL in LOB fields is broken.
The fbsql and mssql drivers are likely to be broken as they are largely untested.

MDB2 static class:
- "xxx" out password on connect error in MDB2::connect()
- MDB2::isError now also optionally accepts and error code to check for
- added LOAD DATA (port from DB) and SET to MDB2::isManip()

All drivers:
- use __construct() (PHP4 BC hacks are provided)
- allow null values to be set for options
- ensure we are returning a reference in all relevant places

- allow errorInfo() to be called when no connection has been established yet
- use MDB2_ERROR_UNSUPPORTED instead of MDB2_ERROR_NOT_CAPABLE in common implementations
- readded MDB2_Error as the baseclass for all MDB2 error objects
- updated error mappings from DB

- added MDB2_Driver_Common::getDatabase();
- reworked dsn default handling
- added ability to "xxx" out password in getDSN()

- use _close() method in several places where they previously were not used
- removed redundant code in _close() that dealt with transaction closing already
  done in disconnect()
- if the dbsyntax is set in the dsn it will be set in the dbsyntax property
- only disconnect persistant connections if disconnect() has been explicitly
  called by the user
- instead of having a generic implemention of disconnect() we will rename
  _close() to disconnect() to overwrite the generic implementation
- added support for 'new_link' dsn option for all supported drivers (mysql, oci8, pgsql)

- transaction API moved over to PDO: removed autoCommit(), added beginTransaction()
  and refactored commit() (it doesn't start a new transaction automatically anymore)
- reworked handling of uncommited transaction for persistant connections when
  a given connection is no longer in use

- added 'disable_query' option to be able to disable the execution of all queries
 (this might be useful in conjuntion with a custom debug handler to be able to
 dump all queries into a file instead of executing them)
- removed affectedRows() method in favor of returning affectedRows() on query if relevant
- added generic implementation of query() and moved driver specific code into _doQuery()
- added _modifyQuery() to any driver that did not yet have it yet
- standaloneQuery() now also supports SELECT querys
- remove redundant call to commit() since setting autoCommit() already commits in MDB2::replace()
- refactored standaloneQuery(), query(), _doQuery(), _wrapResult(); the most important change are:
  result are only wrapped if it is explicitly requested
  standaloneQuery() now works just as query() does but with its own connection
- allowing limits of 0 in setLimit()

- explicitly specify colum name in sequence emulation queries
- added getBeforeId() and getAfterId()
- added new supported feature 'auto_increment'

- added default implementation for quoteCLOB() and quoteBLOB()
- reworked quote handling: moved all implementation details into the extension,
  made all quote methods private except for quote() itself, honor portability
  MDB2_PORTABILITY_EMPTY_TO_NULL in quote(), removed MDB2_TYPE_* constants
- reworked get*Declaration handling: moved all implementation details into the extension,
  made all quote methods private except for quote() itself
- placed convert methods after the portability conversions to ensure that the
  proper type is maintained after the conversion methods
- dont convert fetched null values in the Datatype module

- removed executeParams() and moved executeMultiple() from extended module

- updated tableInfo() code from DB

- made LIMIT handling more robust by taking some code from DB

All drivers result:
- performance tweak in fetchCol()
- added MDB2_FETCHMODE_OBJECT
- added MDB2_Driver_Result_Common::getRowCounter()
- added rownum handling to fetchRow()
- removed fetch() and resultIsNull()

All drivers prepared statements
- moved prepare/execute API towards PDO
- setParamsArray() can now handle non ordered arrays
- removed requirement for LOB inserts to pass the parameters as an array
- placeholders are now numbered starting from 0 (BC break in setParam() !)
- queries inside the prepared_queries property now start counting at 1 (performance tweak)
- refactored handling of filename LOB values (prefix with 'file://')
- removed _executePrepared(), drivers need to overwrite execute() for now on
- add support for oracle style named parameters and modified test suite accordingly

MySQL driver:
- improved handling of MDB2_PORTABILITY_LOWERCASE in all the reverse
  methods inside the mysql driver to work coherently
- fixed several issues in the listTablefields() method of manager drivers

MSSQL driver:
- added code in MDB2_Driver_mssql::connect() to better handle date values
  independant of ini and locale settings inside the server
- use comma, rather than colon, to delimit port in MDB2_driver_mssql::connect().
  Bug 2140. (danielc)
- unified mssql standalone query with sqlite, mysql and others (not tested on
  mssql yet, but since mssql automatically reuses connections per dsn the old
  way could gurantee anything different from happening)

PgSQL driver:
- use track_errors to capture error messages in MDB2_driver_pgsql::connect().
  Bug 2011. (danielc)
- add port to connect string when protocol is unix in MDB2_driver_pgsql::connect().
  Bug 1919. (danielc)
- accommodate changes made to PostgreSQL so "no such field" errors get properly
  indicated rather than being mislabeled as "no such table." (danielc)
- added "permission denied" to error regex in pgsql driver.
  Bug 2417. (stewart_linux-org-au)

OCI8 driver:
- fixed typo in MDB2_Driver_Manager_oci8::listTables() (fix for bug #2434)
- added emulate_database option (default true) to the Oracle driver that handles
  if the database_name should be used for connections of the username
- oci8 driver now uses native bind support for all types in prepare()/execute()

Interbase driver:
- completely revised ibase driver, now passing all tests under php5

Frontbase driver:
- fbsql: use correct error codes. Was using MySQL's codes by mistake.

MySQLi driver:
- added mysqli driver (passes all tests, but doesnt use native prepare yet)

DB wrapper
- fixed a large number of compatibility issues in the PEAR::DB wrapper

Iterator
- fixed several bugs and updated the interface to match the final php5 iterator API
- buffered result sets now implements seekable
- removed unnecessary returns
- throw pear error on rewind in unbuffered result set
- renamed size() to count() to match the upcoming Countable interface

Extended module:
- modified the signature of the auto*() methods to be compatible with DB (bug #3720)
- tweaked buildManipSQL() to not use loops (bug #3721)

MDB_Tools_Manager
- updated raiseError method in the Manager to be compatible with
  XML_Parser 1.1.x and return useful error message (fix bug #2055)
- major refactoring of MDB2_Manager resulting in several new methods being available
- fixed error in MDB2_Manager::_escapeSpecialCharacter() that would lead to
  incorrect handling of integer values (this needs to be explored in more detail)
- several typo fixes and minor logic errors (among others a fix for bug #2057)
- moved xml dumping in MDB2_Tools_Manager into separate Writer class
- fixed bugs in start value handling in create sequence (bug #3077)";}i:27;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta2";s:3:"api";s:10:"2.0.0beta2";}s:9:"stability";a:2:{s:7:"release";s:4:"beta";s:3:"api";s:4:"beta";}s:4:"date";s:10:"2004-04-25";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:2601:"The core of MDB2 is now fairly stable API-wise. The modules, especially the
manager and reverse module, might see some API refinement before the first
stable release.
- added listTables() and listTableFields() methods to MDB2_Driver_Manager_mssql
  and MDB2_Driver_Manager_oci8
- reversed parameter order of getValue(), type parameter is now optional and
  will then be autodetected (BC break!)
- renamed get*Value() to quote*() (BC break!)
- fixed LOB management in MDB2_Driver_ibase
- moved getOne, getRow, getCol, getAll back into the exteneded module (most
  users should be able to move to the queryOne, queryRow, queryCol and queryAll
  equivalent) (BC break!)
- added getAssoc to the extended module
- fixed bug in MDB2_Driver_Datatype_Common::implodeArray()
- added sequence_col_name option to make the column name inside sequence
  emulation tables configurable
- fixed a bug in the MDB2_Driver_oci8 and MDB2_Driver_ibase buffering emulation
  when using limit queries
- removed MDB2_PORTABILITY_NULL_TO_EMPTY in favor of MDB2_PORTABILITY_EMPTY_TO_NULL
  this means that DB and MDB2 work exactly the opposite now, but it seems more
  efficient to do things the way Oracle does since this is the RDBMS which
  creates the original issue to begin with (BC break!)
- fixed a typos in getAll, getAssoc and getCol
- test suite: moved set_time_limit() call to the setup script to be easier to customize
- renamed hasMore() to valid() due to changes in the PHP5 iterator API (BC break!)
- renamed toString() to __toString() in order to take advantage of new PHP5
  goodness and made it public
- MDB2_Driver_Datatype_Common::setResultTypes() can now handle missing elements
  inside type arrays: array(2 => 'boolean', 4 => 'timestamp')
- fixed potential warning due to manipulation query detection in the query*()
  and the get*() query+fetch methods
- added tests for fetchAll() and fetchCol()
- performance tweaks for fetchAll() and fetchCol()
- fixed MDB2_Driver_Manager_mysql::listTableIndexes()
- fixed MDB2_Driver_Common::debug()
- renamed MDB2::isResult() to MDB2::isResultCommon()
- added base result class MDB2_Result from which all result sets should be
  inherited and added MDB2::isResult() which checks if a given object extends from it
- added 'result_wrap_class' option and optional parameter to query() to enable
  wrapping of result classes into an arbitrary class
- added $result_class param to all drivers where it was missing from the
  query() and _executePrepared() methods
- applied several fixes to the PEAR::DB wrapper
- fixed a typo in MDB2_Driver_Reverse_pgsql::tableInfo()";}i:28;a:5:{s:7:"version";a:2:{s:7:"release";s:10:"2.0.0beta1";s:3:"api";s:10:"2.0.0beta1";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2004-03-12";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1280:"- fixed bug in MDB2::singleton
- fixed minor bugs in prepare/execute
- added PEAR::DB wrapper (not working yet)
- fixed several bugs in the ibase driver
- fixed several PHP5 related issues
- fixed bug in sequence creation on MySQL
- fixed issues with nextid() ondemand handling in conjunction with currId()
- added native currId() implementation for the Oracle driver
- fixed sqlite driver (passes all but the REPLACE test due to a conformance issue in sqlite itself)
- removed decimal_factor property to allow changing of decimal_places option
- using native escape string methods in sqlite and mysql driver
- fixed minor conformance issues in tableInfo() in the oci8 and mysql driver
- removed optimize option and added portability option instead (ported from DB)
- added quoteIdentifier() method (ported from DB)
- added STATUS document to make the status of the drivers more transparent
- fixed a few bugs in querysim driver
- fixed issue in mysql reverse engineering: ensuring the correct case is used when
  doing assoc fetches based on portability flag setting
- updated reverse engineering script to the new MDB2 API
- removed broken implementations of currId() in the mssql and fbsql driver
- fixed a few instances of MDB_Common to the new class name of MDB_Driver_Common";}i:29;a:5:{s:7:"version";a:2:{s:7:"release";s:11:"2.0.0alpha1";s:3:"api";s:11:"2.0.0alpha1";}s:9:"stability";a:2:{s:7:"release";s:5:"alpha";s:3:"api";s:5:"alpha";}s:4:"date";s:10:"2004-01-05";s:7:"license";a:2:{s:7:"attribs";a:1:{s:3:"uri";s:22:"http://www.example.com";}s:8:"_content";s:11:"BSD License";}s:5:"notes";s:1845:"This is the first alpha release of MDB2 2.0.

MDB2 2.x breaks backwards compatibility in many ways in order to simplify
the API for both users and drivers developers.

Please note that currently only the MySQL, the PostGreSQL and the Oracle driver
have been tested to pass the test suite.

Here follows a short list of the most important changes:
- all code that is not necessary for basic operation is now separateed
  into separate modules which can be loaded with the loadModule() method
- all datatype related methods have been moved to a dataype module with
  the notable exception of getValue() and the newly introduced getDeclaration()
- added extended module for highlevel methods
- all manager method are no longer available in the core class and or
  now only available in the manager module
- all reverse engineering methods have been taken from the manager class
  and are now available through the reverse module
- a new module has been added to allow the addition of methods with
  RDBMS specific functionality (like getting the last autoincrement ID)
- LOB handling has been greatly simplified
- several methods names have been shortend
- the fetch.+() methods do not free the result set anymore
- the Manager and the reverse_engineer_xml_schema have been moved into
  a Tools directory
- all parameters are now lowercased with underscores as separators
- all drivers now support all of the dsn options that PEAR DB supports
- several methods have been removed because they offered redundant functionality
- changed prepare API type is now passed to prepare and not to setParam*()
- results are now wrapped inside objects and all methods which operate
  on resultsets have been moved into respecitive classes
- there are two types of result object: buffered (default) and unbuffered
- totally rewrote buffering and limit emulation";}}}s:8:"filelist";a:39:{s:25:"docs/examples/example.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:25:"docs/examples/example.php";s:4:"role";s:3:"doc";s:6:"md5sum";s:32:"5a689ee5fa18f686905e6bd55bea11be";s:12:"installed_as";s:54:"/usr/share/doc/php-mdb2/MDB2/docs/examples/example.php";}s:30:"docs/examples/example_php5.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:30:"docs/examples/example_php5.php";s:4:"role";s:3:"doc";s:6:"md5sum";s:32:"a89ca12c63535e42b75c5c1177689747";s:12:"installed_as";s:59:"/usr/share/doc/php-mdb2/MDB2/docs/examples/example_php5.php";}s:37:"docs/examples/metapear_test_db.schema";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:37:"docs/examples/metapear_test_db.schema";s:4:"role";s:3:"doc";s:6:"md5sum";s:32:"74b2bb45de61eccbffed7d75d5268af9";s:12:"installed_as";s:66:"/usr/share/doc/php-mdb2/MDB2/docs/examples/metapear_test_db.schema";}s:17:"docs/CONTRIBUTORS";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:17:"docs/CONTRIBUTORS";s:4:"role";s:3:"doc";s:6:"md5sum";s:32:"a253b37e185622112acfef6c94b79aef";s:12:"installed_as";s:46:"/usr/share/doc/php-mdb2/MDB2/docs/CONTRIBUTORS";}s:19:"docs/datatypes.html";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:19:"docs/datatypes.html";s:4:"role";s:3:"doc";s:6:"md5sum";s:32:"fb6255492763a38f2ad95d86e7ccbbf1";s:12:"installed_as";s:48:"/usr/share/doc/php-mdb2/MDB2/docs/datatypes.html";}s:16:"docs/MAINTAINERS";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:16:"docs/MAINTAINERS";s:4:"role";s:3:"doc";s:6:"md5sum";s:32:"a70b17bcd8e56911f74a4dff61a3ff8d";s:12:"installed_as";s:45:"/usr/share/doc/php-mdb2/MDB2/docs/MAINTAINERS";}s:11:"docs/README";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:11:"docs/README";s:4:"role";s:3:"doc";s:6:"md5sum";s:32:"c7b68ea23aa2ae6d91913703a2246f15";s:12:"installed_as";s:40:"/usr/share/doc/php-mdb2/MDB2/docs/README";}s:11:"docs/STATUS";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:11:"docs/STATUS";s:4:"role";s:3:"doc";s:6:"md5sum";s:32:"9eca356459bd2c74976e2dc08114ccdd";s:12:"installed_as";s:40:"/usr/share/doc/php-mdb2/MDB2/docs/STATUS";}s:9:"docs/TODO";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:9:"docs/TODO";s:4:"role";s:3:"doc";s:6:"md5sum";s:32:"ec0c4383ddfd3af69d577344d0d5b4dd";s:12:"installed_as";s:38:"/usr/share/doc/php-mdb2/MDB2/docs/TODO";}s:31:"MDB2/Driver/Datatype/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:31:"MDB2/Driver/Datatype/Common.php";s:4:"role";s:3:"php";s:6:"md5sum";s:32:"76f4aef169e3249e89946b1a4ee1e72e";s:12:"installed_as";s:46:"/usr/share/php/MDB2/Driver/Datatype/Common.php";}s:31:"MDB2/Driver/Function/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:31:"MDB2/Driver/Function/Common.php";s:4:"role";s:3:"php";s:6:"md5sum";s:32:"06ac8297c5b84810e244ef3f296c9909";s:12:"installed_as";s:46:"/usr/share/php/MDB2/Driver/Function/Common.php";}s:30:"MDB2/Driver/Manager/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:30:"MDB2/Driver/Manager/Common.php";s:4:"role";s:3:"php";s:6:"md5sum";s:32:"1f2671765f855b4e42317584c5c5cefc";s:12:"installed_as";s:45:"/usr/share/php/MDB2/Driver/Manager/Common.php";}s:29:"MDB2/Driver/Native/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:29:"MDB2/Driver/Native/Common.php";s:4:"role";s:3:"php";s:6:"md5sum";s:32:"977e6c68269ab679f233bf72cfa46db6";s:12:"installed_as";s:44:"/usr/share/php/MDB2/Driver/Native/Common.php";}s:30:"MDB2/Driver/Reverse/Common.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:30:"MDB2/Driver/Reverse/Common.php";s:4:"role";s:3:"php";s:6:"md5sum";s:32:"7ede6c3c81506349871e68949ff4cbe9";s:12:"installed_as";s:45:"/usr/share/php/MDB2/Driver/Reverse/Common.php";}s:13:"MDB2/Date.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:13:"MDB2/Date.php";s:4:"role";s:3:"php";s:6:"md5sum";s:32:"9431ecf0ca9aa4be2278b5a67d56692f";s:12:"installed_as";s:28:"/usr/share/php/MDB2/Date.php";}s:17:"MDB2/Extended.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:17:"MDB2/Extended.php";s:4:"role";s:3:"php";s:6:"md5sum";s:32:"bb05a17304899664eeef90d4185d2c90";s:12:"installed_as";s:32:"/usr/share/php/MDB2/Extended.php";}s:17:"MDB2/Iterator.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:17:"MDB2/Iterator.php";s:4:"role";s:3:"php";s:6:"md5sum";s:32:"dff24e2d856068d6ae716289fc5fa602";s:12:"installed_as";s:32:"/usr/share/php/MDB2/Iterator.php";}s:12:"MDB2/LOB.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:12:"MDB2/LOB.php";s:4:"role";s:3:"php";s:6:"md5sum";s:32:"0995b814a2269ee98e56810ee7c56743";s:12:"installed_as";s:27:"/usr/share/php/MDB2/LOB.php";}s:26:"tests/Nonstandard/Base.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:26:"tests/Nonstandard/Base.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"495ce610af17e85504bcaa4948dd674b";s:12:"installed_as";s:52:"/usr/share/php/tests/MDB2/tests/Nonstandard/Base.php";}s:35:"tests/Nonstandard/SqlservHelper.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:35:"tests/Nonstandard/SqlservHelper.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"88180b869efe23dcc10dc335d1a86cc9";s:12:"installed_as";s:61:"/usr/share/php/tests/MDB2/tests/Nonstandard/SqlservHelper.php";}s:27:"tests/Standard/Abstract.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:27:"tests/Standard/Abstract.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"6154365fbc935bff18d09ce85631c591";s:12:"installed_as";s:53:"/usr/share/php/tests/MDB2/tests/Standard/Abstract.php";}s:26:"tests/Standard/ApiTest.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:26:"tests/Standard/ApiTest.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"4c1b01bcbff9f867fcc4334bfc1e5741";s:12:"installed_as";s:52:"/usr/share/php/tests/MDB2/tests/Standard/ApiTest.php";}s:27:"tests/Standard/BugsTest.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:27:"tests/Standard/BugsTest.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"867da09d597872d66b475319b63147f0";s:12:"installed_as";s:53:"/usr/share/php/tests/MDB2/tests/Standard/BugsTest.php";}s:31:"tests/Standard/DatatypeTest.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:31:"tests/Standard/DatatypeTest.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"4805340558ca79c65620450a716a33ba";s:12:"installed_as";s:57:"/usr/share/php/tests/MDB2/tests/Standard/DatatypeTest.php";}s:31:"tests/Standard/ExtendedTest.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:31:"tests/Standard/ExtendedTest.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"49b9e7b6b6734038e8d099571e1c75b8";s:12:"installed_as";s:57:"/usr/share/php/tests/MDB2/tests/Standard/ExtendedTest.php";}s:31:"tests/Standard/FunctionTest.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:31:"tests/Standard/FunctionTest.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"fca11883f6012a7b22bf37341b3ca8bb";s:12:"installed_as";s:57:"/usr/share/php/tests/MDB2/tests/Standard/FunctionTest.php";}s:32:"tests/Standard/InternalsTest.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:32:"tests/Standard/InternalsTest.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"124d2c68bfc8dc924f0a31201c98134e";s:12:"installed_as";s:58:"/usr/share/php/tests/MDB2/tests/Standard/InternalsTest.php";}s:30:"tests/Standard/ManagerTest.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:30:"tests/Standard/ManagerTest.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"55dd0b2ab097bed18f472116f5b55eae";s:12:"installed_as";s:56:"/usr/share/php/tests/MDB2/tests/Standard/ManagerTest.php";}s:30:"tests/Standard/ReverseTest.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:30:"tests/Standard/ReverseTest.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"7d65b9467fc024c78ea45698cf0bae0d";s:12:"installed_as";s:56:"/usr/share/php/tests/MDB2/tests/Standard/ReverseTest.php";}s:28:"tests/Standard/UsageTest.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:28:"tests/Standard/UsageTest.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"359888848e14308dc4d22fa4c292aa09";s:12:"installed_as";s:54:"/usr/share/php/tests/MDB2/tests/Standard/UsageTest.php";}s:18:"tests/AllTests.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:18:"tests/AllTests.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"a4ad7d4f5bb1caf918d6922674dd1c41";s:12:"installed_as";s:44:"/usr/share/php/tests/MDB2/tests/AllTests.php";}s:18:"tests/autoload.inc";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:18:"tests/autoload.inc";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"840ef7ca4ca65bcc32445527e001e4c8";s:12:"installed_as";s:44:"/usr/share/php/tests/MDB2/tests/autoload.inc";}s:15:"tests/Debug.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:15:"tests/Debug.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"8a1c23383cab0a3aa2c5e977c5cfdc49";s:12:"installed_as";s:41:"/usr/share/php/tests/MDB2/tests/Debug.php";}s:13:"tests/dsn.inc";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:13:"tests/dsn.inc";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"e9d8a45ae62be18000f51a08c5cdf143";s:12:"installed_as";s:39:"/usr/share/php/tests/MDB2/tests/dsn.inc";}s:19:"tests/functions.inc";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:19:"tests/functions.inc";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"dd740b466aff47209486c0a967cef86a";s:12:"installed_as";s:45:"/usr/share/php/tests/MDB2/tests/functions.inc";}s:23:"tests/import.schema.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:23:"tests/import.schema.php";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"64882e6a2b9bd1b459c0c52f34db396b";s:12:"installed_as";s:49:"/usr/share/php/tests/MDB2/tests/import.schema.php";}s:12:"tests/README";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:12:"tests/README";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"997685ec0ba37bd6a2db8e9ec728e61c";s:12:"installed_as";s:38:"/usr/share/php/tests/MDB2/tests/README";}s:16:"tests/schema.xml";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:16:"tests/schema.xml";s:4:"role";s:4:"test";s:6:"md5sum";s:32:"8f37058a24d6b0b343370452483595ea";s:12:"installed_as";s:42:"/usr/share/php/tests/MDB2/tests/schema.xml";}s:8:"MDB2.php";a:5:{s:14:"baseinstalldir";s:1:"/";s:4:"name";s:8:"MDB2.php";s:4:"role";s:3:"php";s:6:"md5sum";s:32:"e5bd768cca253a9ff668b3c0afe07396";s:12:"installed_as";s:23:"/usr/share/php/MDB2.php";}}s:12:"_lastversion";N;s:7:"dirtree";a:15:{s:42:"/usr/share/doc/php-mdb2/MDB2/docs/examples";b:1;s:33:"/usr/share/doc/php-mdb2/MDB2/docs";b:1;s:28:"/usr/share/doc/php-mdb2/MDB2";b:1;s:35:"/usr/share/php/MDB2/Driver/Datatype";b:1;s:26:"/usr/share/php/MDB2/Driver";b:1;s:19:"/usr/share/php/MDB2";b:1;s:35:"/usr/share/php/MDB2/Driver/Function";b:1;s:34:"/usr/share/php/MDB2/Driver/Manager";b:1;s:33:"/usr/share/php/MDB2/Driver/Native";b:1;s:34:"/usr/share/php/MDB2/Driver/Reverse";b:1;s:43:"/usr/share/php/tests/MDB2/tests/Nonstandard";b:1;s:31:"/usr/share/php/tests/MDB2/tests";b:1;s:25:"/usr/share/php/tests/MDB2";b:1;s:40:"/usr/share/php/tests/MDB2/tests/Standard";b:1;s:14:"/usr/share/php";b:1;}s:3:"old";a:7:{s:7:"version";s:7:"2.5.0b5";s:12:"release_date";s:10:"2012-10-29";s:13:"release_state";s:4:"beta";s:15:"release_license";s:11:"BSD License";s:13:"release_notes";s:1336:"- fixed bug #18494: _compareIntegerDefinition() ignores length change.
- fixed bug #16280: compareDefinition() turns NULL defaults into empty strings for NOT NULL columns.
- fixed bug #19677: Call to undefined function: MDB2_Driver_mysql::isError()

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)";s:12:"release_deps";a:3:{i:0;a:4:{s:4:"type";s:3:"php";s:3:"rel";s:2:"ge";s:7:"version";s:5:"5.2.0";s:8:"optional";s:2:"no";}i:1;a:6:{s:4:"type";s:3:"pkg";s:7:"channel";s:12:"pear.php.net";s:4:"name";s:4:"PEAR";s:3:"rel";s:2:"ge";s:7:"version";s:5:"1.9.1";s:8:"optional";s:2:"no";}i:2;a:6:{s:4:"type";s:3:"pkg";s:7:"channel";s:12:"pear.php.net";s:4:"name";s:4:"PEAR";s:3:"rel";s:2:"ge";s:7:"version";s:5:"1.3.6";s:8:"optional";s:2:"no";}}s:11:"maintainers";a:6:{i:0;a:5:{s:4:"name";s:17:"Lukas Kahwe Smith";s:5:"email";s:20:"smith@pooteeweet.org";s:6:"active";s:2:"no";s:6:"handle";s:6:"lsmith";s:4:"role";s:4:"lead";}i:1;a:5:{s:4:"name";s:16:"Lorenzo Alberton";s:5:"email";s:19:"l.alberton@quipo.it";s:6:"active";s:3:"yes";s:6:"handle";s:5:"quipo";s:4:"role";s:4:"lead";}i:2;a:5:{s:4:"name";s:16:"Daniel Convissor";s:5:"email";s:15:"danielc@php.net";s:6:"active";s:3:"yes";s:6:"handle";s:7:"danielc";s:4:"role";s:4:"lead";}i:3;a:5:{s:4:"name";s:11:"Paul Cooper";s:5:"email";s:14:"pgc@ucecom.com";s:6:"active";s:2:"no";s:6:"handle";s:3:"pgc";s:4:"role";s:11:"contributor";}i:4;a:5:{s:4:"name";s:14:"David Coallier";s:5:"email";s:17:"david@jaws.com.mx";s:6:"active";s:3:"yes";s:6:"handle";s:6:"davidc";s:4:"role";s:6:"helper";}i:5;a:5:{s:4:"name";s:14:"Ali Fazelzadeh";s:5:"email";s:16:"afz@dev-code.com";s:6:"active";s:3:"yes";s:6:"handle";s:3:"afz";s:4:"role";s:6:"helper";}}}s:10:"xsdversion";s:3:"2.0";s:13:"_lastmodified";i:1457892448;}