amysql/async_pool

Types

AsyncPool = ref object
  conns: seq[Connection]
  busy: seq[bool]

Procs

proc newAsyncPool(host, user, password, database: string; num: int): Future[
    AsyncPool] {...}{.raises: [Exception, ValueError],
                 tags: [RootEffect, ReadIOEffect, TimeEffect, IOEffect].}
Create a new async pool of num connections.
proc newAsyncPool(uriStr: string | Uri; num: int): Future[AsyncPool]
Create a new async pool of num connections.
proc getFreeConnIdx(pool: AsyncPool): Future[int] {...}{.
    raises: [Exception, ValueError], tags: [RootEffect, TimeEffect].}
Wait for a free connection and return it.
proc getFreeConn(pool: AsyncPool; conIdx: int): Connection {...}{.raises: [],
    tags: [].}
proc returnConn(pool: AsyncPool; conIdx: int) {...}{.raises: [], tags: [].}
Make the connection as free after using it and getting results.
proc close(pool: AsyncPool): owned(Future[void]) {...}{.raises: [Exception],
    tags: [TimeEffect, RootEffect, ReadIOEffect].}
proc query(pool: AsyncPool; pstmt: SqlPrepared;
           params: openArray[static[SqlParam]]): Future[void]
proc rawExec(pool: AsyncPool; qs: string): Future[ResultSet[string]] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
proc rawQuery(pool: AsyncPool; qs: string; onlyFirst: bool = false): Future[
    ResultSet[string]] {...}{.raises: [Exception, ValueError], tags: [RootEffect,
    TimeEffect, ReadIOEffect, WriteIOEffect].}
proc query(pool: AsyncPool; pstmt: SqlPrepared;
           params: varargs[SqlParam, asParam]): Future[ResultSet[ResultValue]] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
proc selectDatabase(pool: AsyncPool; database: string): Future[ResponseOK] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect].}
proc exec(pool: AsyncPool; qs: SqlQuery; args: varargs[string, `$`]): Future[
    ResultSet[string]] {...}{.raises: [Exception, ValueError], tags: [RootEffect,
    TimeEffect, ReadIOEffect, WriteIOEffect].}
proc query(pool: AsyncPool; qs: SqlQuery; args: varargs[string, `$`];
           onlyFirst: static[bool] = false): Future[ResultSet[string]]
proc tryQuery(pool: AsyncPool; qs: SqlQuery; args: varargs[string, `$`]): Future[
    bool] {...}{.raises: [Exception, ValueError],
            tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
proc getRow(pool: AsyncPool; qs: SqlQuery; args: varargs[string, `$`]): Future[
    Row] {...}{.raises: [Exception, ValueError],
           tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
proc getAllRows(pool: AsyncPool; qs: SqlQuery; args: varargs[string, `$`]): Future[
    seq[Row]] {...}{.raises: [Exception, ValueError],
                tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
proc getValue(pool: AsyncPool; qs: SqlQuery; args: varargs[string, `$`]): Future[
    string] {...}{.raises: [Exception, ValueError],
              tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
proc tryInsertId(pool: AsyncPool; qs: SqlQuery; args: varargs[string, `$`]): Future[
    int64] {...}{.raises: [Exception, ValueError],
             tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
proc insertId(pool: AsyncPool; qs: SqlQuery; args: varargs[string, `$`]): Future[
    int64] {...}{.raises: [Exception, ValueError],
             tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
proc tryInsert(pool: AsyncPool; qs: SqlQuery; pkName: string;
               args: varargs[string, `$`]): Future[int64] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
proc insert(pool: AsyncPool; qs: SqlQuery; pkName: string;
            args: varargs[string, `$`]): Future[int64] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}