Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nH2sT-0008Vx-11 for psycopg@arkaria.postgresql.org; Mon, 07 Feb 2022 12:12:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nH2sR-0003Tk-Kr for psycopg@arkaria.postgresql.org; Mon, 07 Feb 2022 12:12:15 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nH2sR-0003TJ-7k for psycopg@lists.postgresql.org; Mon, 07 Feb 2022 12:12:15 +0000 Received: from mail-ua1-x930.google.com ([2607:f8b0:4864:20::930]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nH2sN-0001VJ-QU for psycopg@postgresql.org; Mon, 07 Feb 2022 12:12:13 +0000 Received: by mail-ua1-x930.google.com with SMTP id e17so22351089uad.9 for ; Mon, 07 Feb 2022 04:12:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=Z+2o3vVw53hsQmvjjCtn2WxOEAPFZ427Bq6bHyV6HwA=; b=bfJVV3nJcDFF0vrWeRn9TCghfp1SLu+Rou4u/c7jPc1CdkkkZDpDrg2+dLnSEOkjlW 7bfFbEXN5y656GEC0Xf50/UrmoIUsNH2vNUCFK4ap3cO9ptuBgdzx5Y7jIdkr+oy/0vi 4+7saxPP6e8+v22heagXMHzS/mSw/3lwDgYKgCvtxxeBXJuxgCiLE9cmCMJEIUH+mm0n vw9dyjpfyq8+zldwKPjWny1bQSfW3caNHhcW1FlWl8UCJV31itjqOOQhyZ4r3Efbu+ls 0WA/vnGKw5bPR65T7MD6z5YZJ3rtZat68S+ZLGblQKFd7GurdYl2ST0mOPxII+Y5mpSL ur5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Z+2o3vVw53hsQmvjjCtn2WxOEAPFZ427Bq6bHyV6HwA=; b=T/OCrgkBcTeT21226bZ5wE4EpCAnEuUPajXp6imfFluKztjGU4gmhBBNeqykmU8riT bmTIWpouVpvOPmqv2T3LmvtG9sVoPdd2CXvOd639OoE4fUcGLVgg7daF9zcXNVRDjukO nMfTp8Yv7w3M1saK6Ic0gTViSofXLQsVVhJrTdkI0l871rR/ScKzKV09l1FcqTL2QXKT J7ze7ydqPmqZvHObdcr67XQcFH+qMWn+J/4h48YkaYL2Og3dwAyMqYfXZ0M3lgrF5cpP FlMFgVzaR3UuSUnFV4wRQnJAngvgM8bgzcrrFtl94yyyRkOR4qQNIJ1VUi743RSWunci v4UA== X-Gm-Message-State: AOAM5328RgTMAN2kEjZ56MSZzRkA+9XzCMmTBXviDxSzXRqO6/y5Igs2 5Tl9MDX34lIEQmCeBnMpZ+x7IYtxz97VGLRfxFbktytL2NU= X-Google-Smtp-Source: ABdhPJzQXctDcItIKRJAY7KeQZ5UrQ6llBJn+EMfwyZ58TyYrxzW1NfxUSWafjntCkoMMbjDO6HqozRmjhk82EiJ2Xc= X-Received: by 2002:a67:e41a:: with SMTP id d26mr4547379vsf.46.1644235930489; Mon, 07 Feb 2022 04:12:10 -0800 (PST) MIME-Version: 1.0 From: Daniele Varrazzo Date: Mon, 7 Feb 2022 13:11:59 +0100 Message-ID: Subject: psycopg-pool 3.1 released To: Psycopg Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hello, we have released the version 3.1 of the psycopg-pool package. The main new feature is the introduction of the NullConnectionPool: a pool subclass exposing the same interface of the superclass but actually not storing connections in its state. This is useful to make the pool/no-pool decision a configuration choice, rather than a code choice, and allows to write applications that may or may not use the pool (e.g. because in certain setups they can be deployed behind PgBouncer). More details about the feature are available in the documentation at: https://www.psycopg.org/psycopg3/docs/advanced/pool.html#null-connection-pools Another addition is the 'open()' method and the related 'open' parameter in the constructor, which now allow to instantiate a closed pool and to open it later, when more convenient. This is especially useful in order to perform blocking async code at open time, which is not a problem at the moment (the constructor only starts background tasks, it doesn't perform blocking operations itself) but it might become in future evolutions or integrations. Thank you very much to Denis Laxade for the conversation, design, implementation of the feature and for helping to prepare the code for async frameworks other than asyncio (Anyio, Trio...) Please note that the pool package is released separately, and with independent version numbering, from the main psycopg 3 package (to phrase in nicely, "psycopg is a mechanism, the pool is a policy"): the pool 3.1 is compatible with the currently released psycopg 3.0.x package and should be maintained compatible with the versions to come. Thank you very much -- Daniele