1
0
mirror of https://github.com/php/php-src.git synced 2026-04-21 23:18:13 +02:00
Commit Graph

49 Commits

Author SHA1 Message Date
Sammy Kaye Powers dac6c639bb Update copyright headers to 2017 2017-01-04 11:23:42 -06:00
Matteo Beccati 4003595d60 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Clean up FR #72633
2016-08-04 09:30:48 +02:00
Matteo Beccati d3a8e107ac Clean up FR #72633 2016-08-04 09:28:58 +02:00
Pablo Santiago Sánchez 90c6cbd09b - lastInsertId using Postgres Lastval() function 2016-08-02 14:34:30 +02:00
root 12628e9a46 Implemented FR #72633 Postgres PDO lastInsertId() should work without specifying a sequence 2016-07-27 23:00:12 +02:00
Lior Kaplan ed35de784f Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Happy new year (Update copyright to 2016)
2016-01-01 19:48:25 +02:00
Lior Kaplan 49493a2dcf Happy new year (Update copyright to 2016) 2016-01-01 19:21:47 +02:00
Nikita Popov 4694e1c020 Remove PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT
Use the generic ATTR_EMULATE_PREPARES instead.
2015-04-24 18:08:18 +02:00
Anatol Belski 0c6753bf6b optimize structs 2015-04-15 17:57:25 +02:00
Xinchen Hui fc33f52d8c bump year 2015-01-15 23:27:30 +08:00
Xinchen Hui 0579e8278d bump year 2015-01-15 23:26:37 +08:00
Anatol Belski bdeb220f48 first shot remove TSRMLS_* things 2014-12-13 23:06:14 +01:00
Johannes Schlüter d0cb715373 s/PHP 5/PHP 7/ 2014-09-19 18:33:14 +02:00
Anatol Belski c3e3c98ec6 master renames phase 1 2014-08-25 19:24:55 +02:00
Anatol Belski 4ed156d4df ported from pdo - pgsql, odbc, mysql, firebirt, dblib 2014-08-19 19:02:07 +02:00
Xinchen Hui 49df66be01 Made a little clean up 2014-05-15 22:33:13 +08:00
Matteo Beccati e378348a31 Added new PDO::PGSQL_ATTR_DISABLE_PREPARES that uses PQexecParams
Faster than prepared statements when queries are run once. Slightly
slower than PDO::ATTR_EMULATE_PREPARES but without the potential
security implications of embedding parameters in the query itself.
2014-03-11 23:10:48 +01:00
Matteo Beccati d72621ab9e Deprecated PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT 2014-03-11 23:10:48 +01:00
Matteo Beccati b1ffea3ccc Drop PDO support for extremely old libpq versions
configure will now fail if any of the following function is missing:
* PQprepare
* PQexecParams
* PQescapeStringConn
* PQescapeByteaConn
2014-03-11 23:10:47 +01:00
Xinchen Hui c081ce628f Bump year 2014-01-03 11:08:10 +08:00
Matteo Beccati baabd11929 Refactored custom PDO_pgsql methods to trigger errors/exceptions
BC Break: the custom methods were previously just return false on
failure. Now they throw an exception with a proper error message.
An hopefully welcome improvement, but some application might be
depending on the old behaviour. FWIW the PDO::pgsqlCopy* methods
are not documented, even though they are available since 5.3.x.
2013-06-05 01:58:37 +02:00
Xinchen Hui a666285bc2 Happy New Year 2013-01-01 16:37:09 +08:00
Felipe Pena 8775a37559 - Year++ 2012-01-01 13:15:04 +00:00
Felipe Pena 0203cc3d44 - Year++ 2011-01-01 02:17:06 +00:00
Ilia Alshanetsky 6ed1819bf4 Added inTransaction() method to PDO, with specialized support for Postgres 2010-06-10 12:11:19 +00:00
Sebastian Bergmann 9ba1e81665 sed -i "s#1997-2009#1997-2010#g" **/*.c **/*.h **/*.php 2010-01-03 09:23:27 +00:00
Matteo Beccati fa67c860e0 - Properly fixed bug #49985 (pdo_pgsql prepare() re-use previous aborted transaction).
# Removed usage of the memory address when generating prepared statemend names
# as uniqueness can't be enforced. Used a statment counter instead.
2009-11-04 19:32:27 +00:00
Matteo Beccati 9ee8dd90a3 - Fixed bug #48764 (PDO_pgsql::query always uses implicit prepared statements if v3 proto available)
# original patch by Mark Kirkwood
2009-10-07 17:40:16 +00:00
Matteo Beccati 3fb4089ba7 MFH
- Fixed bug #48188
2009-05-12 22:18:15 +00:00
Matteo Beccati 6e22ab5e3e MFH:
- Changed PDO_PGSQL configure script to require libpq 7.4
- Cleaned up usage of HAVE_PQ* defines
- Fixed compiler warnings
- Removed custom implementation of PQunescapeByte
# Rationale:
# - PDO_PGSQL couldn't even compile when using libpq 7.3
# - PostgreSQL 7.3 is unsupported since a long time
# - Got consensus from pgsql devs on freenode
2009-04-30 12:38:43 +00:00
Sebastian Bergmann 08659c2dcd MFH: Bump copyright year, 3 of 3. 2008-12-31 11:15:49 +00:00
Sebastian Bergmann d1dded8751 MFH: Bump copyright year, 2 of 2. 2007-12-31 07:17:19 +00:00
Sebastian Bergmann 4223aa4d5e MFH: Bump year. 2007-01-01 09:36:18 +00:00
foobar 5bd93221a8 bump year and license version 2006-01-01 12:51:34 +00:00
Ilia Alshanetsky c2ed71a879 Retry on failed prepare resulting from duplicate statement name. 2005-12-17 17:59:05 +00:00
Wez Furlong 131033352d Added PDO::pgsqlLOBCreate(), PDO::pgsqlLOBOpen() and PDO::pgsqlLOBUnlink(). 2005-11-29 02:11:39 +00:00
Wez Furlong 70331c361e Addresses #35338.
Postgres client API is pretty poor, so we have zero idea about the actual
parameter types in a statement.

We now defer the preparation of a statement until the first call to execute is
made.  At that point, we have the parameters defined by the calling script, so
we can use the typing specified there when we perform the prepare.

For PDO_PARAM_LOB parameters, we set the binary formatting flag.

We can't just set this flag for all parameters, because its meaning is not
"string data, counted length" but "data is in native format".  If this flag is
set for a numeric column and we send the number 1 formatted as a string, then
we will get an "insufficient data left in message" error message, because the
library was expecting sizeof(int4) bytes but only saw 1 byte for "1".

This is infuriating because we have no way to determine the datatypes for
parameters, and the type we explicitly set has to match the type in the
database.  The only choice we're left with is telling postgres to deduce the
type; we still have no idea what type was deduced.
2005-11-25 03:35:04 +00:00
Wez Furlong 79f3cb9856 Add PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT attribute, which, when set
to true, forces the driver to use PDO's own emulated prepared statement
support.

Why would you want that, considering that native prepared statements are
supposed to be the best thing ever?

"Often postgresql will have to plan the query without knowing the parameters -
and it will choose a bad plan.  In some cases it will plan based on the first
parameters you send. "

Ugh.  So now we have a way to let you decide that you know better than the
pgsql query planner.
2005-07-20 02:37:57 +00:00
Wez Furlong 529d8177fe Add early support for native prepared statements in pgsql.
Note that some tests now fail; if we can't resolve this in time for the beta,
the prepare code should be disabled (I'll add a flag for this later today).
2005-07-08 15:27:34 +00:00
Edin Kadribasic 7ef1a91508 Fold PQresultErrorField() into a macro 2005-07-01 22:30:55 +00:00
Ilia Alshanetsky 57aa3b984b Removed define checks that break the build. 2005-05-17 20:08:53 +00:00
Wez Furlong 4f778ca31d patch by Christopher Kings-Lynne, slightly modified 2005-05-13 18:09:03 +00:00
Edin Kadribasic 22ff90f7ba Adjust for the new get_col api 2005-02-06 22:48:35 +00:00
Edin Kadribasic bf77a39349 Decode pgsql LOB objects (bytea type) on fetch 2005-02-05 22:55:23 +00:00
Edin Kadribasic d8aa131ca0 Store pgsql_type, intval and boolav per column 2005-01-23 10:57:11 +00:00
Wez Furlong ef0de01b62 Take a blind stab at implementing scrollable cursors for pgsql.
We allocate a unique cursor name for each statement, so that we
don't interfere with other open statement handles on the same dbh.

Note, however, that we force a new transaction for each open scrollable cursor
(postgres requires cursors to be used inside a transaction).  This is okay,
except for the case where a scrollable cursor is opened, an update is made and
the cursor is closed; closing the cursor commits the transaction that was begun
when it was opened.

It might well be better to avoid the transaction in PDO and force the user to
be aware of the requirements of cursors and explicitly initiate the transaction
themselves.

This is all untested code; it compiles and looks like it will work, but I
encourage someone with a real postgres setup to actually sit down and try to
use it.
2005-01-13 01:59:39 +00:00
Ilia Alshanetsky f8d045619a Last insert id (oids) support. 2004-05-20 18:00:24 +00:00
Ilia Alshanetsky 38eb52b8a7 Make doer() work.
Make error reporting system work.
2004-05-20 17:43:56 +00:00
Edin Kadribasic 9d6c259988 PostgreSQL PDO driver. 2004-05-20 02:27:49 +00:00