Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uqDoA-001kQV-ST for pgsql-hackers@arkaria.postgresql.org; Sun, 24 Aug 2025 16:43:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uqDo8-0037SQ-9A for pgsql-hackers@arkaria.postgresql.org; Sun, 24 Aug 2025 16:43:04 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uqDo7-0037SI-Nt for pgsql-hackers@lists.postgresql.org; Sun, 24 Aug 2025 16:43:04 +0000 Received: from mail-qt1-x82e.google.com ([2607:f8b0:4864:20::82e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uqDo4-001Wfl-1g for pgsql-hackers@lists.postgresql.org; Sun, 24 Aug 2025 16:43:02 +0000 Received: by mail-qt1-x82e.google.com with SMTP id d75a77b69052e-4b2b859ab0dso14290561cf.1 for ; Sun, 24 Aug 2025 09:43:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dunslane-net.20230601.gappssmtp.com; s=20230601; t=1756053779; x=1756658579; darn=lists.postgresql.org; h=in-reply-to:autocrypt:content-language:from:references:cc:to :subject:user-agent:mime-version:date:message-id:from:to:cc:subject :date:message-id:reply-to; bh=wbEXfO80vtNm9ZbLpmasAbvpCepkNu+8N5/R6Y3NPpU=; b=ufuvBc4I+7gjjE6zyLmG8KlhlWsbE3VDiOAJuyWLlRmToXRtQwGJG7mpCEPjFagQHS lLqyoJdWaqBe6HohBx5QY1XWnjb+8lXQt1Jxr729mEFStM9RzeW2lfRRS/U/Sc19vZdw pfEbZg+oMgU3y0ru37ux2nnHMEkUf0Y/BUnCdVuRO74+/EQmrHjJWhZK6qOI/8/y7HXf 3S0yIJypZeqsizaF/XIHK6Iw7qXFB6bDwZQ/47VQ1QxdbO89lwrFh40qwPDCN5GcBy/3 dMqsvqOFdULg9DM3dRUgwUnROLE26dMkRIg8s1n/Z5RD39AlYikSaewXIn7HObuiT1f3 4YbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756053779; x=1756658579; h=in-reply-to:autocrypt:content-language:from:references:cc:to :subject:user-agent:mime-version:date:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=wbEXfO80vtNm9ZbLpmasAbvpCepkNu+8N5/R6Y3NPpU=; b=IH4M/sJGS9k4WS0XjgYGPtixvo2PA8jNNNSVZQbdXXoDjGrsZnSUAHwL3qLWyMoTJ1 x7F4W+yjUrIU5QuMv6do3g1RoLzUPNC8tu4eaNP7bUy1s7bma0xeUBaFox6SJTBvt4MX j3fO8llMazduuEeHvjIYHAVDsvrM9WJF43I7onVGmdN2/uVrsLnCZBfQflcr5/2BLTzn eIm+pgbc+0D04LAClwFHFdIRbmLMhpBMi06wbcM3KwSb3kMWK/Yb6d/2VPXhR79eqO/o OmFXnDjFNoVoXfOgBKkMUnRKHhrhgO2MI/HkQvBsuvhNxwPg53/ht/akNFIQTxZPO+jN N71w== X-Forwarded-Encrypted: i=1; AJvYcCUjHZSzSa4/IHyC/zMMA+gBQH2CivpPdWCUnoRrgpbTGqknqNtD89jw2z4UsHmwdin+JLbdEwpSY1vgunAM@lists.postgresql.org X-Gm-Message-State: AOJu0YzVnu2Lk72XA/6y6S5DN0Utd8aUonfRsplHapMzoykQWSa4xFX5 4eDnxI4yZXqOj50fQbXn7s5ozvLldaboLsnfRX4BiK0bqUBXCDD1A/w8iGwMV3A0Vn4= X-Gm-Gg: ASbGncvoycljJdc1iEidpieRiN9Lu3kqB7hBGRBghzr6WRhRcS6zr1ML09xlYPhxYfF xYJebnVa5oh/rzWWceXc7IUbIIvYx+tj7E6bJfr0X0Lqd2nvGCYgbUH4cEjgzE26v7aD7n0iJKo NA2/hKC1sA3rhZq2o7FzG/z5EKicM0jlJ0RYj7J6jRMPbXEaJ2wHv1Ri7Vyij+bwj2OZMfTqSEM 4sSt4LUViFhUhbA+EFncxbBi8Wi4/tJSeiJiayN+H/yBeA/B7ow6ybOxh04l5t3RV/v6vg5XFE8 pFYizeQc1Kkz/Lm3AoEpo2llnvzfb3C23xgmuMGbd694KP83OqaI3b1GwudaIR2WYYMF6wgxJS3 sFAF12Ky4ViFps5o/F26hTOWLVCGxcg== X-Google-Smtp-Source: AGHT+IErJt2mdeVt0sHQPEO5fsDtCJEn4L7mhFsVtNw++yk4E2QPnpiV8Ta1yjy/vpWrVNXdpwyEBA== X-Received: by 2002:a05:622a:1f0a:b0:4b2:8ac5:25a4 with SMTP id d75a77b69052e-4b2aab74019mr115429721cf.77.1756053779354; Sun, 24 Aug 2025 09:42:59 -0700 (PDT) Received: from ?IPV6:2605:a601:a6b0:500::1cb? ([2605:a601:a6b0:500::1cb]) by smtp.googlemail.com with ESMTPSA id d75a77b69052e-4b2b8c61851sm35269781cf.2.2025.08.24.09.42.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 24 Aug 2025 09:42:58 -0700 (PDT) Content-Type: multipart/alternative; boundary="------------n4Nodexf6F7aMIz9Q6BsqFjU" Message-ID: <82eb35b8-7f07-493b-b689-0934919e1dc3@dunslane.net> Date: Sun, 24 Aug 2025 12:42:56 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Non-text mode for pg_dumpall To: Noah Misch Cc: Tom Lane , Mahendra Singh Thalor , =?UTF-8?Q?=C3=81lvaro_Herrera?= , jian he , Srinath Reddy , pgsql-hackers@lists.postgresql.org References: <3f22a8bb-29e8-40cc-97a1-309181da2c13@dunslane.net> <20250722005339.ca.nmisch@google.com> <20250725162141.6f.nmisch@google.com> <2225040.1753477169@sss.pgh.pa.us> <20250727235628.e2.nmisch@google.com> <8f2ad50b-ebb7-4adc-997e-25e0ad96ff34@dunslane.net> <2bed001a-462c-42da-9a6b-3c7884502932@dunslane.net> <20250824010811.4d.nmisch@google.com> From: Andrew Dunstan Content-Language: en-US Autocrypt: addr=andrew@dunslane.net; keydata= xsBNBE7KWFkBCAClridxur2AIc7eW2AR7izbfp3EnNefie2HbLF0izW5Ik5UjX2HBXBx4syI gY6b0ugohXrr274+baoAlvSbq6cAoQuEVrk5IZFzt20b1Xkx65FwGSEj526yiKLocqkJceSq Xr9xcA5SGY+FZv441chh5SU92v4q6z+6LPpoHOh97ptAVXZYNTtU0LevyvD5lja0TzbvJm6C eFXitJfnm1pLEr0DGJCR/iUOl/N62Kh4855zZC7NHIjQHPOvV5Stz/l5ilDhvGVk+xkXFPys SjZoUr1rXhYLpiyi5sR0X9FHXT0KnGuz1F5ERO7ZTLSSQ6fJwPj6gOk9K+vvoKvoeql5ABEB AAHNJEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PsLAlwQTAQgAQQIbAwIX gAIZAQULCQgHAwUVCgkICwUWAgMBAAIeBRYhBOQ+WEYd/Hy/RGkVpZn6f8tZ/DuBBQJoGNGd BQkdEO8nAAoJEJn6f8tZ/DuBq74H/jkTR4Zi3stbw+xC7v2u3QozssK7MYPL2AsVfh7OealS h182fiWXpfvmmAB7WUHbhk9GC2RAOnHI/2d2jgKaMLAHsGYOT0YopTVIwRY43fCw/mK67yxc wmDcX+zyKfLaivNbf5A7QPLNwda98bEAMSJ8Sn652Uc6cA8t3uKGsVzbRBQOoYzjgvBCfSrE 9ql3PDNg0l4BfAqabd2f70ZUm9VAMEPrgv/v2xI7M2XiL4g5BVmqLCOwxLM8RMCotCuoweUr VO43DeBCIDwLxotMJKvGWDjBzQYlU1NPUAtNcz/gN9ITUe1VUGjyvGj4u1lxBOcQQUw7l1+T 5moZ4iZxXzvOwE0ETspYWQEIANGc4zQULOxhbqO2dyD51YhqCNRmm9oKWaqf+wmW4tpDe/VV cxAnNizd4LWCHfzpb5cHAtGkOPePMfzWVf6nvdF7d3eglbtf59+zG7O7llV0xSSoFiieQBsr GvqDInXYX/4mRRXMtyhM353/tixC9RWLs1oofyYmCPPXXY7h9R7en3B8BoVrRFcdzlIY/NFN hFGW/9dkEiGjgna2Rk6e15kln4ZvFBWUg23p93w/pqXcxY6+k/8TEk+C4R+M6w7o2PLGOjdZ +kPiUcw5H85zf/yZJwQXzisXaNduwWB6Vads9YC9dj6kPR1c4VGRqAaYL++LAEOqrlvm2Tvq QqZRtnEAEQEAAcLAfAQYAQgAJgIbDBYhBOQ+WEYd/Hy/RGkVpZn6f8tZ/DuBBQJoGNI2BQkd EODdAAoJEJn6f8tZ/DuBfw0IAKTsfD40teP/pp+bsLLMSxPXUYrrprTj7WFB5v61p6dkpSr/ qXmMlyahdxQFaPmfVgVirB1Vk/kHiWNnnGjfUV9nB2Zg9LI0Xb9/ts3LsUiRWXzG3tkMY6XL vsVOxW4XFRND9l2q+WW93aZ1DZl+fqWfYgMvsusFRhmGFOKTRfKPta2Pkv+AhA24N4+PrR5p bU4k2MO8PAGiK8eaYKGFG1bHKuAvoDoF7WXJ3FHxuWqLnKEt4dfOLm5pAe3zq1Lt6q8azT9i QWGpSAK5vQUWQHBHpiDjdPeqKZ6HiAXIIKfSmb+jrvXBqoP+D6/K7rUjG2aXiRtTIAXms9sm VRu7cmw= In-Reply-To: <20250824010811.4d.nmisch@google.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------n4Nodexf6F7aMIz9Q6BsqFjU Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 2025-08-23 Sa 9:08 PM, Noah Misch wrote: > On Wed, Jul 30, 2025 at 02:51:59PM -0400, Andrew Dunstan wrote: >> OK, now that's reverted we should discuss how to proceed. I had two thoughts >> - we could use invent a JSON format for the globals, or we could just use >> the existing archive format. I think the archive format is pretty flexible, >> and should be able to accommodate this. The downside is it's not humanly >> readable. The upside is that we don't need to do anything special either to >> write it or parse it. > I would first try to use the existing archiver API, because that makes it > harder to miss bugs. Any tension between that API and pg_dumpall is likely to > have corresponding tension on the pg_restore side. Resolving that tension > will reveal much of the project's scope that remained hidden during the v18 > attempt. Perhaps more important than that, using the archiver API means > future pg_dump and pg_restore options are more likely to cooperate properly > with $SUBJECT. In other words, I want it to be hard to add pg_dump/pg_restore > features that malfunction only for $SUBJECT archives. The strength of the > archiver architecture shows in how rarely new features need format-specific > logic and how rarely format-specific bugs get reported. We've had little or > no trouble with e.g. bugs that appear in -Fd but not in -Fc. Yeah, that's what we're going to try. cheers andrew -- Andrew Dunstan EDB:https://www.enterprisedb.com --------------n4Nodexf6F7aMIz9Q6BsqFjU Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit


On 2025-08-23 Sa 9:08 PM, Noah Misch wrote:
On Wed, Jul 30, 2025 at 02:51:59PM -0400, Andrew Dunstan wrote:
OK, now that's reverted we should discuss how to proceed. I had two thoughts
- we could use invent a JSON format for the globals, or we could just use
the existing archive format. I think the archive format is pretty flexible,
and should be able to accommodate this. The downside is it's not humanly
readable. The upside is that we don't need to do anything special either to
write it or parse it.
I would first try to use the existing archiver API, because that makes it
harder to miss bugs.  Any tension between that API and pg_dumpall is likely to
have corresponding tension on the pg_restore side.  Resolving that tension
will reveal much of the project's scope that remained hidden during the v18
attempt.  Perhaps more important than that, using the archiver API means
future pg_dump and pg_restore options are more likely to cooperate properly
with $SUBJECT.  In other words, I want it to be hard to add pg_dump/pg_restore
features that malfunction only for $SUBJECT archives.  The strength of the
archiver architecture shows in how rarely new features need format-specific
logic and how rarely format-specific bugs get reported.  We've had little or
no trouble with e.g. bugs that appear in -Fd but not in -Fc.


Yeah, that's what we're going to try.


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com
--------------n4Nodexf6F7aMIz9Q6BsqFjU--