Fix prepare for PooledStatement
This commit is contained in:
parent
dcbc634543
commit
ed9d2b1002
@ -72,7 +72,7 @@ abstract class AbstractPool implements Pool
|
||||
|
||||
$this->connections = $connections = new \SplObjectStorage;
|
||||
$this->idle = $idle = new \SplQueue;
|
||||
$this->prepare = coroutine($this->callableFromInstanceMethod("doPrepare"));
|
||||
$this->prepare = coroutine($this->callableFromInstanceMethod("createStatement"));
|
||||
|
||||
$idleTimeout = &$this->idleTimeout;
|
||||
|
||||
@ -338,6 +338,13 @@ abstract class AbstractPool implements Pool
|
||||
public function prepare(string $sql): Promise
|
||||
{
|
||||
return call(function () use ($sql) {
|
||||
$statement = yield from $this->createStatement($sql);
|
||||
return new PooledStatement($this, $statement, $this->prepare);
|
||||
});
|
||||
}
|
||||
|
||||
private function createStatement(string $sql): \Generator
|
||||
{
|
||||
$connection = yield from $this->pop();
|
||||
\assert($connection instanceof Link);
|
||||
|
||||
@ -358,8 +365,7 @@ abstract class AbstractPool implements Pool
|
||||
$this->push($connection);
|
||||
});
|
||||
|
||||
return new PooledStatement($this, $statement, $this->prepare);
|
||||
});
|
||||
return $statement;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user