They cover
- The basic behaviour
- When the method receives as argument a file which doesn't exist
- When the argument is an empty string
- When an empty file is loaded
- When a not-well formed html file is loaded
It also includes 2 auxilary files
- An empty html file
- A not well formed html file
inTransaction() nowadays casts the in_transaction result to boolean.
I'm not sure whether the INERROR state should result in true or false.
For now I went with the result that we actually get.
Postgres 9.1+ test fixes. Tests were failing due to the default
standard_conforming_strings GUC being changed to on. Also the
pg_escape_bytea test was encoding the data before estabilishing
a connection, thus falling back to the old escaping type which
isn't properly handled by the backend when using a default
configuration.
I haven't updated the NEWS file as it's just test fixes.
There is a lot of call such as:
pdo_pgsql_error(dbh, PGRES_FATAL_ERROR, "Copy command failed");
Where the 3rd paramater is a error message string where a sqlstate (5 chars)
is expected. This cause a segfault in copy_from.phpt and copy_to.phpt.
This is only a sanity check to avoid buffer overflow, but obviously this
calls need to be fixed (using NULL or a correct sqlstate).
I wasn't able to produce a file causing exactly the same crash.
However the first three seconds of the originally reported
file are pretty enough to repro bug #64830. That reduces its
size to 72k.
AT least in (inputDay is long, metonicCycle is int):
metonicCycle = (inputDay + 310) / 6940;
So large value give strange (negative) results or php hangs.
This is patch already applied in some linux distro.
WSAGetLastError() must be the very next call after a socket
function had an invalid return. Any function call inbetween
will clear the error information.