name = $name; $this->sql = $sql; $this->execute = $execute; $this->deallocate = $deallocate; } public function __destruct() { ($this->deallocate)($this->name); } /** * @return string */ public function getQuery(): string { return $this->sql; } /** * @param mixed ...$params * * @return \Amp\Promise<\Amp\Postgres\Result> * * @throws \Amp\Postgres\FailureException If executing the statement fails. */ public function execute(...$params): Promise { return ($this->execute)($this->name, $params); } }