Commit Graph

327 Commits

Author SHA1 Message Date
Wez Furlong
c80b4c7440 Need to state NOT NULL here, as DB2 won't allow the UNIQUE constraint without it. 2005-07-07 14:09:58 +00:00
Wez Furlong
32663f7da7 make column names lower case 2005-07-07 13:59:34 +00:00
Wez Furlong
1095da42e0 extra paranoia about the attribute param 2005-07-07 13:56:09 +00:00
Wez Furlong
68caaadc6a Fix bug in bindColumn() for drivers that implement native prepared statements
and that use the PDO rewriter to handle non-native parameter syntax.
2005-07-07 12:45:40 +00:00
Wez Furlong
576ff830a9 pedantic WS 2005-07-07 12:44:44 +00:00
Wez Furlong
f4681fd86b It's not portable to expect any consistency between drivers in the return value
of an exec() when running DDL; revise test.
2005-07-07 12:42:52 +00:00
Dmitry Stogov
0eb0b781e0 Fixed memory leaks 2005-07-07 11:19:56 +00:00
Wez Furlong
30c916f21a rename pdo_test.php to pdo_test.inc, add it, and update tests. 2005-07-06 13:19:25 +00:00
Wez Furlong
277f9357f4 juggling to track down a problem with odbc 2005-07-06 13:16:40 +00:00
Wez Furlong
72a75a87ea last minute debug stuff sneaked in 2005-07-06 06:13:44 +00:00
Wez Furlong
14dbb2dfe9 Add tests that can be redirected to with new test harness feature. 2005-07-06 06:07:26 +00:00
Wez Furlong
d4a158260b Add PDO_FETCH_NAMED; closes PECL #4641 by providing a way to access columns
by name, even when multiple columns have the same name:

$sql = "SELECT 1 a, 2 a, 3 b, 4 c, 5 d, 6 c, 7 a";
echo "$sql\n";
print_r($db->query($sql)->fetchAll(PDO_FETCH_NAMED));

Array
(
    [0] => Array
        (
            [a] => Array
                (
                    [0] => 1
                    [1] => 2
                    [2] => 7
                )

            [b] => 3
            [c] => Array
                (
                    [0] => 4
                    [1] => 6
                )

            [d] => 5
        )
)

Also added two new attributes for use at prepare time;
PDO_ATTR_FETCH_TABLE_NAMES and PDO_ATTR_FETCH_CATALOG_NAMES instruct the driver
that the names of the columns that they return to PDO should include the table
and catalog names respectively.  Both attributes may be used together or
independently.  The catalog, table and column name components should be
separated by a . character.
2005-07-03 03:49:44 +00:00
Ilia Alshanetsky
6fd9e5a64f Fixed memory leak on PDO_FETCH_OBJ. 2005-07-02 17:19:58 +00:00
Edin Kadribasic
00855fcc34 Add sqlstates defined in PostgreSQL documentation.
Source: http://www.postgresql.org/docs/8.0/static/errcodes-appendix.html
2005-07-01 23:32:39 +00:00
Edin Kadribasic
5d65789877 Added class 55 sqlstates 2005-07-01 22:12:00 +00:00
foobar
fa6c536c26 fix tests when error_reporting is E_ALL 2005-06-28 23:33:42 +00:00
Ilia Alshanetsky
fb7c1f0561 Remove "custom" PDDRV sqlstate. 2005-06-27 14:52:46 +00:00
Ilia Alshanetsky
866283d43f Missing part of the previous patch. 2005-06-24 19:46:37 +00:00
Ilia Alshanetsky
e80a144fce Fixed PDO Mysql tests. 2005-06-24 19:10:41 +00:00
Marcus Boerger
5cf2c9dc45 - Add +ifdefs to still allow PHP 5.0 builds of PDO
# PDO is a PECL extension and at the moment is still meant to compile on
# both PHP 5.0 and PHP 5.1.
2005-06-23 00:19:16 +00:00
Dmitry Stogov
f47c78487b Improved PHP extension loading mechanism with support for module dependencies and conflicts 2005-06-17 09:39:23 +00:00
foobar
23ffaecc7d If the macro exists, use it, otherwise use the Makefile.frag 2005-06-14 13:09:23 +00:00
Wez Furlong
13ac7169af and the lesson is, test everything before you commit at 2am 2005-06-11 12:36:12 +00:00
Wez Furlong
f124c2086e couple of conceptual errors here 2005-06-11 02:50:20 +00:00
Wez Furlong
fcff6a079a "Fix" PECL #4411
SPL is not initialized before PDO, so inheriting from SPL's runtime exception class gives PDO a broken exception class.
We don't currently have a way to express this kind of "soft" dependency in the build system, so I'm disabling inheriting from the runtime exception for now.
2005-06-10 06:11:29 +00:00
Wez Furlong
49e7b3da4c Fix a dumb bug that would effecively ignore persistent connections and create a
new one each time.

Add a hook for persistent connections: it is called when the object goes out of
scope, and offers the driver an opportunity to release per-request scoped data
at the right time.

This hook is used by pdo_sqlite to unregister UDFs, which are dangerous to keep
registered between requests.
2005-06-10 05:47:55 +00:00
Wez Furlong
5c16028eb5 initialize type of function 2005-06-10 04:03:43 +00:00
Dmitry Stogov
cf5a6f81e3 Fixed zval_ptr_dtor(&return_value) on uninicialized zval 2005-06-08 19:51:56 +00:00
foobar
a20383ba06 - Unify the "configure --help" texts 2005-05-29 23:17:16 +00:00
Marcus Boerger
9b3929a7e9 - Need to make PDO::__construct() final to prevent SEGV it isn't called 1st 2005-05-26 18:36:18 +00:00
Marcus Boerger
2ac0540323 - Add test for deriving PDO 2005-05-24 14:26:22 +00:00
Marcus Boerger
88157ad284 - Add new tests for PDO_FETCH_INTO 2005-05-24 12:39:09 +00:00
Marcus Boerger
0eb7282f98 - fetchSingle() was renamed to fetchColumn() 2005-05-21 14:47:33 +00:00
Ilia Alshanetsky
fa0e534f83 Various compiler warning fixes. 2005-05-18 22:40:56 +00:00
Ilia Alshanetsky
def27b9959 As per PDO meeting on PHP|Tropics fetchSingle is being renamed to
fetchColumn and now supports specification of the column to retrieve.
2005-05-17 01:41:51 +00:00
Wez Furlong
e8cd91adee Allow it build with PHP 5.0.x and up again. 2005-05-14 20:06:54 +00:00
foobar
626253940e - Added PHP_INSTALL_HEADERS() macro
- Fixed several VPATH build issues
- Changed all awk calls to use $AWK
- Changed all mkdir calls to use "$php_shtool mkdir"
2005-05-07 02:51:53 +00:00
foobar
9070204b93 Only test stuff if PDO is enabled 2005-05-06 22:58:42 +00:00
Ilia Alshanetsky
3be50385ab Allocation checks around persistent allocs that can fail. 2005-04-28 00:25:25 +00:00
Ilia Alshanetsky
d30a9ee96d removed debug code. 2005-04-27 03:12:18 +00:00
Wez Furlong
7dd430ff28 fix bug #32795 2005-04-22 02:40:48 +00:00
Ilia Alshanetsky
378776dc33 missing header (re2c 0.9.4 built .c file) 2005-04-14 14:01:11 +00:00
Ilia Alshanetsky
e546162f2c Added missing header. 2005-04-14 14:00:39 +00:00
Antony Dovgal
e499a1c296 fix segfault & buffer overrun when there is no PDO drivers plugged in
(patch by su1d@phpclub.net)
2005-03-29 17:23:36 +00:00
Marcus Boerger
d27be11233 - Fix null handling found by thies 2005-03-24 12:32:06 +00:00
Marcus Boerger
2906d6570c - Add new test 2005-03-24 12:31:37 +00:00
Marcus Boerger
dce82da87d - Add function pdo_drivers() 2005-03-22 10:36:25 +00:00
Marcus Boerger
73a6a31053 - the driver's key name is not zero terminated, hence we need to either
estrNcpy() it or use the driver struct.
- table headers do not support single column mode so change to two cols
- there should be only one table header
2005-03-22 10:26:51 +00:00
Marcus Boerger
a66e14645c - Add new tests 2005-03-21 00:29:25 +00:00
Marcus Boerger
c9108bba25 - Simplify code (only implement handlers that are necessary)
- Fix handling of read only property 'queryString'
- Fix overloading
- Move class init code to their defining .c files for simplification
- Mark class PDORow as final until there's a need to inherit this and
  someone implements the handlers correct then.
2005-03-21 00:29:06 +00:00
Marcus Boerger
360fbc09b7 - Interface name was changed 2005-03-19 10:55:35 +00:00
Marcus Boerger
7b2bee1d5b - Fix warnings by doing it the Zend way 2005-03-19 10:51:42 +00:00
Wez Furlong
5248f59d1a show list of PDO drivers in phpinfo.
Highlight a possible problem area; iterator leaks when used in foreach(),
at least with sqlite2 driver.
2005-03-12 01:16:59 +00:00
Wez Furlong
d88b4c734f build pdo statically on win32, so sqlite2 driver will build.
Alternatively, we could build sqlite as a shared ext, but that has more
of an impact to people upgrading.
2005-03-12 01:15:37 +00:00
Marcus Boerger
92af2b6194 - Update tests 2005-03-10 17:55:36 +00:00
Magnus M��tt�
72276d013a Add NOT NULL to create so the tests work with Firebird too. 2005-03-10 02:37:20 +00:00
Wez Furlong
5984f7f3e1 prep for release 2005-03-09 18:14:49 +00:00
Wez Furlong
f7ebff804d "thou shalt not throw exceptions except in really exceptional circumstances."
The only allowed places to throw them directly are from within the PDO class
constructors or when dealing with transaction level attributes, where
"hard-failure" is a feature.

All other errors should use the PDO error handling mechanism and respect the
users selected error mode.
2005-03-09 05:50:03 +00:00
Wez Furlong
de1d8b91f0 prep package file for release.
fix my favourite typo.
fix compile warnings
2005-03-09 05:03:58 +00:00
Dan Scott
e90582a990 Add test for PDOStatement::getColumnMeta().
Note that PDO_ODBC test fails as it is currently unimplemented.
2005-03-09 00:20:07 +00:00
Dan Scott
83dfcbf3f6 Add simple tests for insert through PDO::prepare/PDOStatement::execute.
Tests both question mark placeholders and named parameters.
2005-03-08 18:12:22 +00:00
Dan Scott
570976d236 Add a test for PDOStatement::columnCount(). 2005-03-08 17:39:41 +00:00
Marcus Boerger
bbccc37f84 - Add new tests 2005-03-07 22:43:27 +00:00
Marcus Boerger
efb3529b7f - Add new tests 2005-03-07 22:36:12 +00:00
Marcus Boerger
9c08e3ccae - Update signature 2005-03-07 22:27:29 +00:00
Dan Scott
48a6151051 Test PDO::beginTransaction and PDO::rollBack. 2005-03-05 21:03:12 +00:00
Marcus Boerger
f76f510185 - Add tests
- Fix testname
- Drop unnecessary include line (was wrong anyway)
2005-03-04 01:29:27 +00:00
Marcus Boerger
a4521139da - Reserve some bits for flags 2005-02-28 22:37:13 +00:00
Marcus Boerger
6ce9bcc31e - Need to drop ce until engine gets fixed 2005-02-28 19:23:56 +00:00
Marcus Boerger
eb330a95f6 - Fix warning 2005-02-28 18:44:14 +00:00
Marcus Boerger
d072f6de54 - Changing handler table definitively results in SEGVs 2005-02-28 18:40:02 +00:00
Joe Orton
bc1c0c2e12 Fix type mismatch. 2005-02-28 13:30:50 +00:00
Marcus Boerger
fdc3fce335 - Fix missapplied logic inversion 2005-02-28 01:08:07 +00:00
Marcus Boerger
fef7cb4e29 - Disable direct serializing for PHP 5.0 2005-02-27 22:58:08 +00:00
Marcus Boerger
6b18b88b2c - Allow default fetch mode to contain fetch flags 2005-02-27 22:48:14 +00:00
Marcus Boerger
03a4a8c11d - Add some fetch column related capailities
- Add direct (classtype based) unserializing capabilities
2005-02-27 22:32:11 +00:00
Wez Furlong
2c5b2fc105 Alan: moved your fields away, but reserved you a pointer.
Changed PDO::lastInsertId() to have following proto:

	string PDO::lastInsertId([string name])

this allows arbitrary unique identitifers to be returned from the driver.

The optional name parameter is for databases that require additional contextual
information to be able to return the correct identifier.  None currently use
it, but pgsql will be on the list of drivers that do.
2005-02-26 17:27:51 +00:00
Wez Furlong
31239f2130 *cough* 2005-02-26 16:03:55 +00:00
Wez Furlong
09fee0bf21 and the generated file 2005-02-26 15:45:43 +00:00
Wez Furlong
b4ad599df2 fix for PECL #3545 2005-02-26 15:44:38 +00:00
Wez Furlong
8be87fbab0 fix broken line endings 2005-02-26 15:35:41 +00:00
Marcus Boerger
f982890a58 - Missed during last committs somehow 2005-02-24 00:14:50 +00:00
Marcus Boerger
b786b93b7a - Delay ctor call so that it can overwrite everything and the data can
already be accessed from the ctor.
2005-02-23 23:28:30 +00:00
Marcus Boerger
40d180a87d - Reorganize ctor_args handling (fixes some bugs) 2005-02-23 00:52:46 +00:00
Marcus Boerger
effe989d91 - Show that PDOStatement implements Traversable 2005-02-23 00:52:14 +00:00
Marcus Boerger
77cf78caa1 - Make ctor args optional 2005-02-23 00:29:44 +00:00
Marcus Boerger
994006abd4 - Need to also revert operator 2005-02-22 21:22:23 +00:00
Marcus Boerger
d235a2bf4a - Put this back in (forgot to revert) 2005-02-22 20:59:52 +00:00
Marcus Boerger
cb9658feef - Revert signature of PDO:prepare()
old: proto object PDO::prepare(string statment [, array driver_options [, string classname ]])
  now: proto object PDO::prepare(string statment [, array options])
  param 'classname' and and 'ctor_args' are now set through options
  using index PDO_ATTR_STATEMENT_CLASS
- Change all deriver_options parameters to 'options' to reflect the fact
  that they may contain statement as well as driver specific flags
2005-02-22 20:25:56 +00:00
Marcus Boerger
3c743e3a98 - Allow to derive PDOStatement
- Verify fetch modes
- Add last fetch mode PDO_FETCH_FUNC (only valid inside fetchAll()) that
  allows to completley customize the way data is treated on the fly
2005-02-22 19:27:34 +00:00
Marcus Boerger
18985accc4 - Call dtor 2005-02-22 11:37:53 +00:00
Marcus Boerger
ab8f1f316b - Add new test 2005-02-21 18:55:51 +00:00
Marcus Boerger
fc2276c955 - Change tests to use ' instead of " for string values becuase that is
working for more SQL dialects.
2005-02-20 19:25:17 +00:00
Marcus Boerger
94c286f2ef - Attempt at an unified test suite 2005-02-20 17:56:19 +00:00
Marcus Boerger
d56ce00b85 - Add fetch flag PDO_FETCH_CLASSTYPE 2005-02-20 16:12:57 +00:00
Marcus Boerger
3239a56526 - Only call the ctor once 2005-02-20 15:28:09 +00:00
Marcus Boerger
dcf89ff197 - Bump API 2005-02-20 15:07:29 +00:00
Marcus Boerger
5a2620349e - Fix memleak and optimize PDO_FETCH_CLASS 2005-02-20 14:31:44 +00:00
Marcus Boerger
883ee83478 - Call ctor after initializing the props like regular db exts do 2005-02-20 13:42:03 +00:00
Marcus Boerger
07a8ea220f - Need to specify class_entry in PDO_FETCH_CLASS mode 2005-02-20 13:33:45 +00:00