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.96) (envelope-from ) id 1vl5Ca-006lQh-2n for pgsql-hackers@arkaria.postgresql.org; Wed, 28 Jan 2026 13:03:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vl5CZ-001UjH-2l for pgsql-hackers@arkaria.postgresql.org; Wed, 28 Jan 2026 13:03:20 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vl5CZ-001Uj9-1h for pgsql-hackers@lists.postgresql.org; Wed, 28 Jan 2026 13:03:19 +0000 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vl5CX-00000000sc6-1g1O for pgsql-hackers@lists.postgresql.org; Wed, 28 Jan 2026 13:03:19 +0000 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-b883c8dfb00so1449834266b.1 for ; Wed, 28 Jan 2026 05:03:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769605396; cv=none; d=google.com; s=arc-20240605; b=Y3/2bMk+dnUKYLKnOXaTiyNdsrPklCdaYkqRBZ/192DGkcRaa5Cdtm8vkk/9nLBHR+ KmcPurGtlzE2a6gn1cFnfc2xqbzb5OLz0IOmIYy2b1xwTPhrFHELcXtIhXUvY9m2diOE dU5e7uRj5kycXSLCljtfuGLOvsv1n06zx8ruVK6zqh8FirOKsng+HstCce+FuaiZgkHw X1mkY72Jcn22f4aBC3OTlJeaMC9321kLQKxzeNU72uixo3Mk83cBRPiHDDQOo6htGzYx 5iJWnxYPWSIUIQfFhcSjsXMQ+wqtonDgpmPzy+MzKYv9CYou/J+eaI0K0jt7oTcSBurU wKXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=+KQu9NMv9LXRjT5fov6jCKc0dSnNGQ9pFuyHZh3Fp/c=; fh=DrU++f+QZAEUSRmExfTpPZBQowkRUHSGUEFQ3OyIpOw=; b=cx5iJZLrN8QpL70Ru9+K07QxSsHZBgETHnEphk7e38XM8aXzCdW5OQAjwnZTPwp8B6 3LwwJmrzRSa8jVdZZTin8M7JDPGYhe15TxnSH/jxSOHp6Ra6EqqtSdXz6nr2vdVP85ta xW/Tv8Ks4qIqW8vCGWeu49oEINJdIsImUO+LcFBmkgeQihuwfkzGpOUohxHNi3BEQtsE 0ugX1WgHUuxUcy7vphTz4kwMPcK/ghezYd79KsVzhXS3l8uMN0hcwCQiE8tgcsrvhQu0 eMlsHvh2jECVMr1V4eZMlfwwlKmnudGWki1fhXRpHccvVHJHkVYtH5D1/GBXY8k+ASC8 Rn6w==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769605396; x=1770210196; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=+KQu9NMv9LXRjT5fov6jCKc0dSnNGQ9pFuyHZh3Fp/c=; b=nLF4AcnMDlOZ9PBKz2Ni99qHk3hJVqiU5tXPOwXxN2pB6xvc8beG+V3f3qjYnr2dK7 CZpcUrGQVTXE8E0/71Fyu8z5WzRzPZJItoeKDMXRSunvqruSPw4/WyLLtuS5fcXHiW/S E5Ng4M2P9EG9avmIJoDL8YmmsFBNxaS43Jz5navIT+4y/YK+evlr7drjVgj8DfC/DxL1 7sZanPMTnPBCKxKzWjUiiR2l4PmhNeRlXbSuX+lnY5uH7oMNvQCecKAKJdebvl1ir2nE jvikzSblUiUKHDnLfcrGO6MGqse3/0suEn0qkBsm8Qn43Pc18PjQ0I3SBDirY+07UT2U n+7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769605396; x=1770210196; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+KQu9NMv9LXRjT5fov6jCKc0dSnNGQ9pFuyHZh3Fp/c=; b=fA+AONX+aU4w3LWt82CPEXJs0JqCyRTAe6PqvQgtyv7+Er1OtH2rVCjt05Do7QJ5Th lVuMv+7Wf9J7Y8HoWDeHBhf5LXjh30jOKZ2CW2wPCWlSshR3Do8evukiaNxeqluzXO3r Ws2MfYehgImubO42OwwflkI/PfuD2DfeW7VM4wTDvq+7MltNJ46elt/6WHEVyrleu45Y lF/kX/Pq1yfdWitBy2AeAz+6vhNumxALvh9hh57FrXWGoWDbb6yY0+V8O2VQMqpeHk1r sCDHDiiYvY6M3tvo60EdH0nupd5l//3CW4RPZn8RXQLct54TYJ1zc8FhQWwxCKYGG2bB DhZQ== X-Forwarded-Encrypted: i=1; AJvYcCUtcn8QXDBjqd1hgz4CirRUXh/tfnt0oJ7RFV5sjimxoUUnYTAtNOEO7VKwSjgo6VlRn4+dMzoTUFJdq/o1@lists.postgresql.org X-Gm-Message-State: AOJu0YxX8flN04bpCz3jEGggMeEPGDY9QLJsR8rsDfVIhEaYXP4PcqSj t3iUZfnFlMCzHZ1zCs+1YtMf8OIZqh6XeLhyCFpzXNYOR70sCTQrZN0WYPPhrNObz9py4EuEtLn l4Lc8GzBC/b62r6iwjFClcrF9k0iOyTg= X-Gm-Gg: AZuq6aK0AKMdvg9TVvUaIVWY+aDNS0RCMGht6Asl0Nm0S9DdxLcWQN6jN3eoWjaswLs Af+NzNujEAWiUL1i9FseN6wfwvtsFADneaOeax+PiuXJO0UxpL7yeB19cVzeadetXT87etdXo4y A8OivvihJjiv5kBwJJFkY/nQhXw9LMUDuG8qG2gv2SuFQUByza8xKAv99A8NtjdqzGkLIJs8/1h 5GgsFmKVdLarLgp0jYxktLxvavJtJS+HpJXMrGhAfCUhPpekywLzjvburyFxyg/0YV9gCvYpLeC 0eYs99UXtmKbch24HM+ChGqKpKQ= X-Received: by 2002:a17:906:c145:b0:b88:5b21:b162 with SMTP id a640c23a62f3a-b8dab1c3ddcmr471836766b.28.1769605396222; Wed, 28 Jan 2026 05:03:16 -0800 (PST) MIME-Version: 1.0 References: <731ADE6F-01C5-4996-BAEE-5851DFC3F502@gmail.com> <3c8e7b02-2152-495a-a0b6-e37cf9286a70@app.fastmail.com> In-Reply-To: <3c8e7b02-2152-495a-a0b6-e37cf9286a70@app.fastmail.com> From: Robert Haas Date: Wed, 28 Jan 2026 08:03:02 -0500 X-Gm-Features: AZwV_QgY38W4DxUjk43whuHR_BihQ8p12uaINxEIyWxSMhP2yDC_JHwo-cM4TIg Message-ID: Subject: Re: pg_waldump: support decoding of WAL inside tarfile To: Euler Taveira Cc: Amul Sul , Chao Li , Jakub Wartak , PostgreSQL Hackers Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Tue, Jan 27, 2026 at 10:02=E2=80=AFPM Euler Taveira = wrote: > + * archive_waldump.c > + * A generic facility for reading WAL data from tar archives via arc= hive > + * streamer. > > The other tools (pg_basebackup and pg_verifybackup) that also use astream= er API > named this similar file as astreamer_SOMETHING.c. It seems a good idea to > follow the same pattern, no? Maybe astreamer_tar_archive.c or > astreamer_archive.c. There shouldn't be anything specific to tar files in here, and astreamer_archive would be meaningless, since the "a" in "astreamer" stands for archive. What this file is is an archive streamer specific to pg_waldump, hence the name. > Can it enforce a specific order? tar follows an arbitrary order in which = the > files is returned by the filesystem. You've been debating a solution to b= uffer > the WAL contents using memory or spilled files. If it always create the t= ar in > an alphabetical order, you can reduce the scope of this patch. (Didn't lo= ok > what challenges are expected to use a sorted list to generate the tar fil= e.) It's posible to create a tar file in a specific order by specifying command-line arguments to tar in the order you want the tar file to be built. But I think the real thing here is that this limitation is lifted by the following patch. Whether it's worth splitting it apart into two patches this way is debatable. As I have pointed out in my previous reviews, the split hasn't been done very cleanly. --=20 Robert Haas EDB: http://www.enterprisedb.com