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 1sGgNB-00FtcN-UV for pgsql-hackers@arkaria.postgresql.org; Mon, 10 Jun 2024 14:51:50 +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 1sGgNA-00CwVi-5k for pgsql-hackers@arkaria.postgresql.org; Mon, 10 Jun 2024 14:51:49 +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 1sGgN9-00CwVa-N2 for pgsql-hackers@lists.postgresql.org; Mon, 10 Jun 2024 14:51:48 +0000 Received: from mail-qv1-xf33.google.com ([2607:f8b0:4864:20::f33]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sGgN7-000dzV-RF for pgsql-hackers@postgresql.org; Mon, 10 Jun 2024 14:51:47 +0000 Received: by mail-qv1-xf33.google.com with SMTP id 6a1803df08f44-6b081c675e7so4158026d6.1 for ; Mon, 10 Jun 2024 07:51:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dunslane-net.20230601.gappssmtp.com; s=20230601; t=1718031104; x=1718635904; darn=postgresql.org; h=content-transfer-encoding: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=fzoMcAx/jEH1+xcafgjjaxIqdxrDTZk3lcYdpg7TR7w=; b=RevzJ6kKp6Sy/97yqgvPOtZn4Qh7Aql2hCIPBEXUBdGzqU45CGnpwtYTxiKUUsPz62 Foebojafzpi9TzfDQ1RWnAnNaohYC4y7Zm9CN3VfQ/hkEarSO+HDccIbVhzrWlsWLnXH oBwDs75ukdwPnOzO8877K1GXqFMEp0kipW9bdQuD6fpoL8sTSHrTcgoX2U4mJ2GSfVDb CItMq8Vl4wbTj3gu76f27AZBxPBWeSNp09u5h5GVYcHn61aufTsVq59Cgrqpe3SUiGHT glnBss6NRU0pqomWpSvqk6+fuPmzy632D9qLURtZcJfBYQushCCeQcnk+gvH+1be7hv8 1wnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718031104; x=1718635904; h=content-transfer-encoding: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=fzoMcAx/jEH1+xcafgjjaxIqdxrDTZk3lcYdpg7TR7w=; b=TO2g1xbEUb2bjJdQ80nBSlIVOUwdFRyMfEo6HJ4AH4ELHSXWUEy1RI6R6IYF9tu1bx FHoz3iSZrzkGZtwXMyxIGQe/Zc5tvtV3oLHrY/4DkIvJnL+eXSUUUlZ21syoplAtz3ob AK2dOHctR9cabX7T26xgbplISVd8GSCdMZH9zpS258fklZJ5rb7bUhAaqE4e8BlT/16h W6XuPL2f+yGy3rmVG8IxmlTyIPu+FC7CNGuxOeyQVlPaZ1s/6JXYAb03+3MQ7sKaBVOP vah0753wnB4uyCzP8EYF+cTdufLg0RgtwOD42f5D7OK4ASvXooQz6eVX2hfmYdiXcloy hSgw== X-Gm-Message-State: AOJu0Ywhky3ApInQG4R4SsV7F97iWbU9H2YfRggE0MnVyTE0b53zt18S A6IQTec2YnFARGYE3bF5cTRmmK+w+zxuY5UaF/2gq/iUJH9ruvrYxNTRtF9vlNS8HmxNtfk7YAK y X-Google-Smtp-Source: AGHT+IH5JEGIJxiz30f9hX0J4rGmNDl8ZBU6bT9yDJHSJ2yrYWZxGcvmCcAsscGcG0ibTKdICs09lQ== X-Received: by 2002:a05:6214:3b87:b0:6ad:5c79:b0e7 with SMTP id 6a1803df08f44-6b059cfa8camr91875726d6.40.1718031103888; Mon, 10 Jun 2024 07:51:43 -0700 (PDT) Received: from ?IPV6:2605:a601:9180:9800::2bb? ([2605:a601:9180:9800::2bb]) by smtp.googlemail.com with ESMTPSA id 6a1803df08f44-6b080f4d85fsm8003676d6.137.2024.06.10.07.51.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 10 Jun 2024 07:51:43 -0700 (PDT) Message-ID: <8dcc13eb-d5a4-4af4-a00e-4470872aa853@dunslane.net> Date: Mon, 10 Jun 2024 10:51:42 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Non-text mode for pg_dumpall To: Nathan Bossart Cc: PostgreSQL-development References: 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 AAHNJEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PsLAmwQTAQgARQIbAwIX gAIZAQULCQgHAgMiAgEGFQoJCAsCBBYCAwECHgcWIQTkPlhGHfx8v0RpFaWZ+n/LWfw7gQUC ZFlxxwUJGVGAbgAKCRCZ+n/LWfw7gXikB/9ZdcUy6CTBFIIuL/bVsc1eLEW/gJBjJBF6HxNY xgEkAgXAp4Lg4A5U+QB9GouFr7+GYxF0BU4hzoGhNPUWltxnHdMWP8nC/38LAqgMi8L/bbsm HW5YPBdWYaAZAPJQVfOAgjTbRUb26KSprpyrrJKW0ZmrZfjhNPcQ72jpWzoPLQqx2X6B0fru 1jq+cBh8lb6r1mJTim1T3JIn+F/v5VpdQS+EL8xqsHkfzKjIPsW3CIXpkypSk6saA55Rkkbl 26AW8ftPVB0Q6Lnn6FLt9CP0MGNixBQ55yq8r1K+nCBvCCjvQjM8RDm0UUum0WNl+ifQgTLO E8TWEnwVtkBf+3QWzsBNBE7KWFkBCADRnOM0FCzsYW6jtncg+dWIagjUZpvaClmqn/sJluLa Q3v1VXMQJzYs3eC1gh386W+XBwLRpDj3jzH81lX+p73Re3d3oJW7X+ffsxuzu5ZVdMUkqBYo nkAbKxr6gyJ12F/+JkUVzLcoTN+d/7YsQvUVi7NaKH8mJgjz112O4fUe3p9wfAaFa0RXHc5S GPzRTYRRlv/XZBIho4J2tkZOnteZJZ+GbxQVlINt6fd8P6al3MWOvpP/ExJPguEfjOsO6Njy xjo3WfpD4lHMOR/Oc3/8mScEF84rF2jXbsFgelWnbPWAvXY+pD0dXOFRkagGmC/viwBDqq5b 5tk76kKmUbZxABEBAAHCwHwEGAEIACYCGwwWIQTkPlhGHfx8v0RpFaWZ+n/LWfw7gQUCZFlx 5wUJGVGAjgAKCRCZ+n/LWfw7gf+iB/4g8CPY5jihf5r/8EsoIGe2H+dpVmpPF8YGBzTIvCz/ fQoOq8AX/pE76QEuFnFZWfjw+wgBXgCVmkox2Eflkk6z4ND3pcwGZ6CfCxTQCDk/dij+2DQ4 6bmDCy/sBgcbz9mTpoLC11HLoPae6YN9nBNQRZDcEFEu54OaVOqlIdbA6m+POIBCXZdHOFc0 WoDTgxHRzC1jgQNidyd6tKqcsVJs0dzF0oKTmFFmUAqTdJO12LBuNA1rlqrR3EtpYk8B/wtS 5dIMD7Q8hwQpL+4C6GNpb6ZKnPkLi47pDOLhz2qBrqN+rqUEsT3YnExYpzj5yOBi+FlmV1Hw 49QYe1sn2ZPs In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 2024-06-10 Mo 10:14, Nathan Bossart wrote: > On Mon, Jun 10, 2024 at 08:58:49AM -0400, Andrew Dunstan wrote: >> Tom and Nathan opined recently that providing for non-text mode for >> pg_dumpall would be a Good Thing (TM). Not having it has been a >> long-standing complaint, so I've decided to give it a go. > Thank you! > >> I think we would need to restrict it to directory mode, at least to begin >> with. I would have a toc.dat with a different magic block (say "PGGLO" >> instead of "PGDMP") containing the global entries (roles, tablespaces, >> databases). Then for each database there would be a subdirectory (named for >> its toc entry) with a standard directory mode dump for that database. These >> could be generated in parallel (possibly by pg_dumpall calling pg_dump for >> each database). pg_restore on detecting a global type toc.data would restore >> the globals and then each of the databases (again possibly in parallel). > I'm curious why we couldn't also support the "custom" format. We could, but the housekeeping would be a bit harder. We'd need to keep pointers to the offsets of the per-database TOCs (I don't want to have a single per-cluster TOC). And we can't produce it in parallel, so I'd rather start with something we can produce in parallel. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com