If this is set to 1, then any data that is referenced by the
dbh, including whatever structure your driver allocates,
MUST be allocated persistently. This is easy to
achieve; rather than using the usual emalloc() simply
use pemalloc() and pass the value of this flag as the
last parameter. Failure to use the appropriate kind of memory can lead
to serious memory faults, resulting (in the best case) a hard crash, and
in the worst case, an exploitable memory problem.

If, for whatever reason, your driver is not suitable to run persistently,
you MUST check this flag in your
SKEL_handle_factory() and raise an appropriate error.

You should check this value in your SKEL_handle_doer()
and SKEL_stmt_execute() functions; if it evaluates to
true, you must attempt to commit the query now. Most database
implementations offer an auto-commit mode that handles this automatically.

If your database client library API operates by fetching data into a
caller-supplied buffer, you should set this flag to 1 during your
SKEL_handle_factory(). When set, PDO will call your
SKEL_stmt_describer() earlier than it would
otherwise. This early call allows you to determine those buffer sizes
and issue appropriate calls to the database client library.

If your database client library API simply returns pointers to its own
internal buffers for you to copy after each fetch call, you should leave
this value set to 0.

If your driver doesn't support native prepared statements
(supports_placeholders is set to
PDO_PLACEHOLDER_NONE), you must set
this value to the maximum length that can be taken up by a single
character when it is quoted by your
SKEL_handle_quoter() function. This value is used to
calculate the amount of buffer space required when PDO executes the
statement.

This holds the value of the DSN that was passed into the PDO
constructor. If your driver implementation needed to modify the DSN for
whatever reason, it should update this member during
SKEL_handle_factory(). Modifying this member should
be avoided. If you do change it, you must ensure that
data_source_len is also correct.

Whenever an error occurs during a call to one of your driver methods,
you should set this member to the SQLSTATE code that best describes the
error and return an error. In this HOW-TO, the suggested practice is to
call SKEL_handle_error() when an error is detected,
and have it set the error code.

Your driver should set this during
SKEL_handle_factory(); the value should reflect how
the database returns the names of the columns in result sets. If the
name matches the case that was used in the query, set it to
PDO_CASE_NATURAL (this is actually the default).
If the column names are always returned in upper case, set it to
PDO_CASE_UPPER. If the column names are always
returned in lower case, set it to PDO_CASE_LOWER.
The value you set is used to determine if PDO should perform case
folding when the user sets the PDO_ATTR_CASE
attribute.