facebook / facebook/hhvm

Persistent PDO resources might be wrong w.r.t. PDO::ATTR_STATEMENT_CLASS

Open
#5,202 1 comment 0 reactions 0 assignees View on GitHub
php5 incompatibility probably easy
Dominant language
C++
Stars
18.7k
Forks
3.1k
Avg merge
1h 47m
Merged PRs (30d)
2

Description

According to the PHP manual, persistent PDO resources don't support PDO_ATTR_STATEMENT_CLASS (http://php.net/manual/en/pdo.setattribute.php).

HHVM's implementation of PDO seems to want to agree with this behavior, since there's a check for an `is_persistent' in the implementation of setattribute; however, that flag is not actually ever set anywhere.

This shouldn't be too complicated to resolve:
1/ Make sure PHP5's behavior agrees with the doc; if not, we can probably just keep the behavior also.
2/ If so, check for persistence another way (or set `is_persistent').
3/ A bunch of cleanup is possible if we match this behavior; e.g., we can probably kill persistent saving/restoring of the actual PDOResource objects, we can move the clsname field out of PDOConnection and into PDOResource as a runtime data structure, etc.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.