Create a connection pool.

    Can be used either with an ``async with`` block:

    Identical to ``asyncpg.create_pool`` except that both the pool and connection have the *_b varients of
    ``execute``, ``fetch``, ``fetchval``, ``fetchrow`` etc

    Arguments are exactly the same as ``asyncpg.create_pool``.

def create_pool_b(
    dsn=None,
    *,
    min_size=10,
    max_size=10,
    max_queries=50000,
    max_inactive_connection_lifetime=300.0,
    setup=None,
    init=None,
    loop=None,
    connection_class=BuildPgConnection,
    **connect_kwargs,
):
    """
    Create a connection pool.

    Can be used either with an ``async with`` block:

    Identical to ``asyncpg.create_pool`` except that both the pool and connection have the *_b varients of
    ``execute``, ``fetch``, ``fetchval``, ``fetchrow`` etc

    Arguments are exactly the same as ``asyncpg.create_pool``.
    """
    return BuildPgPool(
        dsn,
        connection_class=connection_class,
        min_size=min_size,
        max_size=max_size,
        max_queries=max_queries,
        loop=loop,
        setup=setup,
        init=init,
        max_inactive_connection_lifetime=max_inactive_connection_lifetime,
        **connect_kwargs,
    )