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 1keczd-0006Q2-NZ for psycopg@arkaria.postgresql.org; Mon, 16 Nov 2020 11:48:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1keczc-0007V8-8k for psycopg@arkaria.postgresql.org; Mon, 16 Nov 2020 11:48:20 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1keczc-0007V1-1W for psycopg@lists.postgresql.org; Mon, 16 Nov 2020 11:48:20 +0000 Received: from mail-lj1-x234.google.com ([2a00:1450:4864:20::234]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kecza-00068l-IF for psycopg@postgresql.org; Mon, 16 Nov 2020 11:48:19 +0000 Received: by mail-lj1-x234.google.com with SMTP id r17so19753552ljg.5 for ; Mon, 16 Nov 2020 03:48:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=ON+180TzI5PlEpV76t0kLfXFhVr8xZB8aSri7JIb1cc=; b=vR/R5MWABMJwXNz0vYLecuM0o4iVpBJhJgqihFwN53qd2BWJEcfa0488zVmNfOj5vF A0VfrOzMsQkNJGYEFL8oeNSuJgsf9digKpwk+WU2v1zUhV7cQ3Pss9+NThfss5W6xKLh +I+fo3M1D0XIytF9a+f7LC0rmlIt+MzJj65UDNkDSakWZwI7AgbnQGmJ9JJQyyOB4B4x w0L0wOY8RUNI4r/r9lSHqNIEciQ3AW45MwXxFJ8d8ccjXefPTvaLpAS4DjYH2ac3sTrU 3OPCIYkl1lDolgPoZnJDCpAoj9Jxqe3kVskfpX3ShLokZ4G4TZtpdqc9OkCh2bksYGG2 LfqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=ON+180TzI5PlEpV76t0kLfXFhVr8xZB8aSri7JIb1cc=; b=WWRnkgS4/YlVD2biZasNhboyuehZXGtS1z0Yi368Jo12SlG6c6C4UdBC+TVQmmjI74 sGlDn3PT5mK5H69oSarkRoTz1/SNuMpJZXWtjbIrN1QoIq4gXJB3tY9U+Ysr9K8FYXAc zx5x8Dwl32ZAly0MnpF+osdNbafw+zOFSH6E5dN8KR2ugamOpzeZX4qfK6EOKe4cW+z4 mxSABC6gR8Fdw/xhHNNgqOlJrnYPB3/ViqH3SNJzwBeStMjAKCpopo8yyODYdD30TtlE o870z8bI+/0zSP32P4aVbqJCY+ra8VMQX9aw9ED5Jh8FSxIR+TIQb/hniyi5U4igqOST MJ8w== X-Gm-Message-State: AOAM531Xat5/w/eEpKr76uLyHRyIb4ED4ZSLMIhVQHRpqj7GBgtqfuXT N3g8S7t4W037Ze0EnH8zDy3jxP1F7+bzeqwysRXevaQxU4h5OQ== X-Google-Smtp-Source: ABdhPJytpYhb3QQHz99DojAoBvs96k2Epg6lr1i3NOEyaRXV9nGa2ohO0u20sVup9wpw1Gmi2+0+ku9c7jFFplPVwso= X-Received: by 2002:a05:651c:54f:: with SMTP id q15mr6205827ljp.186.1605527297151; Mon, 16 Nov 2020 03:48:17 -0800 (PST) MIME-Version: 1.0 From: Daniele Varrazzo Date: Mon, 16 Nov 2020 11:48:05 +0000 Message-ID: Subject: psycopg3 COPY support To: psycopg@postgresql.org Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk Hello, I have written an article describing the new COPY support available in psycopg3: it is a big improvement to what is available in psycopg2, allowing COPY from a stream of Python objects, async operations, binary copy. You can find it at https://www.psycopg.org/articles/2020/11/15/psycopg3-copy/ In the next few days I would like to write more about the new main features of psycopg3 and differences with psycopg2. In the meantime I am writing down a first draft of the documentation (https://www.psycopg.org/psycopg3/docs/)... and of course the code that remains to write. More information about the psycopg3 project is at https://www.psycopg.org/psycopg3/ Thank you very much! -- Daniele