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.
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).
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.