mirror of
https://github.com/danog/sql.git
synced 2024-12-02 09:28:00 +01:00
Remove dups; add some docs; update Pool
This commit is contained in:
parent
190e8c1329
commit
57d72761cb
@ -2,31 +2,20 @@
|
|||||||
|
|
||||||
namespace Amp\Sql;
|
namespace Amp\Sql;
|
||||||
|
|
||||||
|
use Amp\CancellationToken;
|
||||||
use Amp\Promise;
|
use Amp\Promise;
|
||||||
|
|
||||||
interface Connection extends Link {
|
interface Connection extends Link {
|
||||||
public function connect(): Promise;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return bool False if the connection has been closed.
|
* @param ConnectionConfig $config
|
||||||
|
* @param CancellationToken|null $token
|
||||||
|
*
|
||||||
|
* @return Promise<Connection>
|
||||||
*/
|
*/
|
||||||
public function isAlive(): bool;
|
public static function connect(ConnectionConfig $config, CancellationToken $token = null): Promise;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return int Timestamp of the last time this connection was used.
|
* @return int Timestamp of the last time this connection was used.
|
||||||
*/
|
*/
|
||||||
public function lastUsedAt(): int;
|
public function lastUsedAt(): int;
|
||||||
|
|
||||||
public function close();
|
|
||||||
|
|
||||||
public function query(string $query): Promise;
|
|
||||||
|
|
||||||
public function transaction(int $isolation = Transaction::COMMITTED): Promise;
|
|
||||||
|
|
||||||
public function prepare(string $query): Promise;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function execute(string $sql, array $params = []): Promise;
|
|
||||||
}
|
}
|
||||||
|
@ -8,22 +8,22 @@ interface Executor {
|
|||||||
/**
|
/**
|
||||||
* @param string $sql SQL query to execute.
|
* @param string $sql SQL query to execute.
|
||||||
*
|
*
|
||||||
* @return \Amp\Promise<\Amp\Sql\CommandResult|\Amp\Sql\ResultSet>
|
* @return Promise<CommandResult|ResultSet>
|
||||||
*
|
*
|
||||||
* @throws \Amp\Sql\FailureException If the operation fails due to unexpected condition.
|
* @throws FailureException If the operation fails due to unexpected condition.
|
||||||
* @throws \Amp\Sql\ConnectionException If the connection to the database is lost.
|
* @throws ConnectionException If the connection to the database is lost.
|
||||||
* @throws \Amp\Sql\QueryError If the operation fails due to an error in the query (such as a syntax error).
|
* @throws QueryError If the operation fails due to an error in the query (such as a syntax error).
|
||||||
*/
|
*/
|
||||||
public function query(string $sql): Promise;
|
public function query(string $sql): Promise;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $sql SQL query to prepare.
|
* @param string $sql SQL query to prepare.
|
||||||
*
|
*
|
||||||
* @return \Amp\Promise<\Amp\Mysql\Statement>
|
* @return Promise<Statement>
|
||||||
*
|
*
|
||||||
* @throws \Amp\Sql\FailureException If the operation fails due to unexpected condition.
|
* @throws FailureException If the operation fails due to unexpected condition.
|
||||||
* @throws \Amp\Sql\ConnectionException If the connection to the database is lost.
|
* @throws ConnectionException If the connection to the database is lost.
|
||||||
* @throws \Amp\Sql\QueryError If the operation fails due to an error in the query (such as a syntax error).
|
* @throws QueryError If the operation fails due to an error in the query (such as a syntax error).
|
||||||
*/
|
*/
|
||||||
public function prepare(string $sql): Promise;
|
public function prepare(string $sql): Promise;
|
||||||
|
|
||||||
@ -31,11 +31,11 @@ interface Executor {
|
|||||||
* @param string $sql SQL query to prepare and execute.
|
* @param string $sql SQL query to prepare and execute.
|
||||||
* @param mixed[] $params Query parameters.
|
* @param mixed[] $params Query parameters.
|
||||||
*
|
*
|
||||||
* @return \Amp\Promise<\Amp\Sql\CommandResult|\Amp\Sql\ResultSet>
|
* @return Promise<CommandResult|ResultSet>
|
||||||
*
|
*
|
||||||
* @throws \Amp\Sql\FailureException If the operation fails due to unexpected condition.
|
* @throws FailureException If the operation fails due to unexpected condition.
|
||||||
* @throws \Amp\Sql\ConnectionException If the connection to the database is lost.
|
* @throws ConnectionException If the connection to the database is lost.
|
||||||
* @throws \Amp\Sql\QueryError If the operation fails due to an error in the query (such as a syntax error).
|
* @throws QueryError If the operation fails due to an error in the query (such as a syntax error).
|
||||||
*/
|
*/
|
||||||
public function execute(string $sql, array $params = []): Promise;
|
public function execute(string $sql, array $params = []): Promise;
|
||||||
|
|
||||||
|
@ -8,7 +8,9 @@ interface Link extends Executor {
|
|||||||
/**
|
/**
|
||||||
* Starts a transaction on a single connection.
|
* Starts a transaction on a single connection.
|
||||||
*
|
*
|
||||||
* @return \Amp\Promise
|
* @param int $isolation Transaction isolation level.
|
||||||
|
*
|
||||||
|
* @return Promise<Transaction>
|
||||||
*/
|
*/
|
||||||
public function transaction(): Promise;
|
public function transaction(int $isolation = Transaction::ISOLATION_COMMITTED): Promise;
|
||||||
}
|
}
|
||||||
|
48
src/Pool.php
48
src/Pool.php
@ -4,37 +4,37 @@ namespace Amp\Sql;
|
|||||||
|
|
||||||
use Amp\Promise;
|
use Amp\Promise;
|
||||||
|
|
||||||
interface Pool extends Link
|
interface Pool extends Link {
|
||||||
{
|
|
||||||
const DEFAULT_MAX_CONNECTIONS = 100;
|
const DEFAULT_MAX_CONNECTIONS = 100;
|
||||||
const DEFAULT_IDLE_TIMEOUT = 60;
|
const DEFAULT_IDLE_TIMEOUT = 60;
|
||||||
|
|
||||||
public function getIdleTimeout(): int;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int $timeout The maximum number of seconds a connection may be idle before being closed and removed
|
* @return Promise<Link>
|
||||||
* from the pool.
|
|
||||||
*
|
|
||||||
* @throws \Error If the timeout is less than 1.
|
|
||||||
*/
|
|
||||||
public function setIdleTimeout(int $timeout);
|
|
||||||
|
|
||||||
public function getMaxConnections(): int;
|
|
||||||
|
|
||||||
public function getConnectionCount(): int;
|
|
||||||
|
|
||||||
public function getIdleConnectionCount(): int;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Extracts an idle connection from the pool. The connection is completely removed from the pool and cannot be
|
|
||||||
* put back into the pool. Useful for operations where connection state must be changed.
|
|
||||||
*
|
|
||||||
* @return \Amp\Promise<\Amp\Sql\Connection>
|
|
||||||
*/
|
*/
|
||||||
public function extractConnection(): Promise;
|
public function extractConnection(): Promise;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* @return int Total number of active connections in the pool.
|
||||||
*/
|
*/
|
||||||
public function transaction(int $isolation = Transaction::COMMITTED): Promise;
|
public function getConnectionCount(): int;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return int Total number of idle connections in the pool.
|
||||||
|
*/
|
||||||
|
public function getIdleConnectionCount(): int;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return int Maximum number of connections this pool will create.
|
||||||
|
*/
|
||||||
|
public function getMaxConnections(): int;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return int Number of seconds a connection may remain idle before it is automatically closed.
|
||||||
|
*/
|
||||||
|
public function getIdleTimeout(): int;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $timeout Number of seconds a connection may remain idle before it is automatically closed.
|
||||||
|
*/
|
||||||
|
public function setIdleTimeout(int $timeout);
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ interface Statement {
|
|||||||
/**
|
/**
|
||||||
* @param mixed[] $params
|
* @param mixed[] $params
|
||||||
*
|
*
|
||||||
* @return \Amp\Promise<\Amp\Sql\CommandResult>
|
* @return \Amp\Promise<CommandResult|ResultSet>
|
||||||
*/
|
*/
|
||||||
public function execute(array $params = []): Promise;
|
public function execute(array $params = []): Promise;
|
||||||
|
|
||||||
|
@ -5,10 +5,10 @@ namespace Amp\Sql;
|
|||||||
use Amp\Promise;
|
use Amp\Promise;
|
||||||
|
|
||||||
interface Transaction extends Executor, Operation {
|
interface Transaction extends Executor, Operation {
|
||||||
const UNCOMMITTED = 0;
|
const ISOLATION_UNCOMMITTED = 0;
|
||||||
const COMMITTED = 1;
|
const ISOLATION_COMMITTED = 1;
|
||||||
const REPEATABLE = 2;
|
const ISOLATION_REPEATABLE = 2;
|
||||||
const SERIALIZABLE = 4;
|
const ISOLATION_SERIALIZABLE = 4;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return int
|
* @return int
|
||||||
@ -47,7 +47,7 @@ interface Transaction extends Executor, Operation {
|
|||||||
*
|
*
|
||||||
* @throws \Amp\Sql\TransactionError If the transaction has been committed or rolled back.
|
* @throws \Amp\Sql\TransactionError If the transaction has been committed or rolled back.
|
||||||
*/
|
*/
|
||||||
public function savepoint(string $identifier): Promise;
|
public function createSavepoint(string $identifier): Promise;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Rolls back to the savepoint with the given identifier.
|
* Rolls back to the savepoint with the given identifier.
|
||||||
@ -69,5 +69,5 @@ interface Transaction extends Executor, Operation {
|
|||||||
*
|
*
|
||||||
* @throws \Amp\Sql\TransactionError If the transaction has been committed or rolled back.
|
* @throws \Amp\Sql\TransactionError If the transaction has been committed or rolled back.
|
||||||
*/
|
*/
|
||||||
public function release(string $identifier): Promise;
|
public function releaseSavepoint(string $identifier): Promise;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user