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 1vFAxA-008hId-7F for pgsql-hackers@arkaria.postgresql.org; Sat, 01 Nov 2025 12:43:31 +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 1vFAx7-004xyN-BK for pgsql-hackers@arkaria.postgresql.org; Sat, 01 Nov 2025 12:43:28 +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 1vFAx6-004xyF-Uk for pgsql-hackers@lists.postgresql.org; Sat, 01 Nov 2025 12:43:28 +0000 Received: from mail-vs1-xe31.google.com ([2607:f8b0:4864:20::e31]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vFAx3-004tVb-2b for pgsql-hackers@lists.postgresql.org; Sat, 01 Nov 2025 12:43:26 +0000 Received: by mail-vs1-xe31.google.com with SMTP id ada2fe7eead31-5dbcc814b80so103376137.3 for ; Sat, 01 Nov 2025 05:43:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762001005; x=1762605805; 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=0Totab23x/kJRzov7WdsZGzQ5zwyeBy7xKGTD3F+1vc=; b=Yq3b9DVMdT5NB1iHkysN/IxDoc9jR1XkkcbXwdTWFhFvYlHoMIZbNcBH6r7uSVwsMO XdaWlFAQMwDAQvZ+p56rEVI4UnNcpmLrMeONkHrovIcr8S7JxrJoNYsVvxXpmwKhSfhK erQDjRZAm+vjEaok7p+cMxqO+FNtQrCwgGLeVJ+l6lc9hbvM0+INrPd++g8rzn5Y0piy X2iwDC+8p3tmIRnOhr617Z4nBp59yuiRvXMlFCyZAL59kKACWiNJnzx6L/KJGna9nP5L FzQOqHgkNah92QY22KrciKT9W8hu2hKQhiMXnn8VANfWzUDwAmhMvQUbxfZCOMrka0GX EpYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762001005; x=1762605805; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0Totab23x/kJRzov7WdsZGzQ5zwyeBy7xKGTD3F+1vc=; b=m1ONqRgh20bhgFStTrdNcMj1lsITqPCtczQaXPBCn4c2AmpYHRY8T3ljhGLbZ0CdEW QjNzKYsBf7z7wSLv/IcSHxJvPAVmfmJGsJLSSgaJ42mIRSpRgVXKZD20iQIrCIhz0dOK 4NWNrVWreR78amdmPZQajpKGK8snuxWHcY1qtEYwfV2ki+C6PvuXxVBHQC86YDKxZGmL oecE02J2pji/M6ZevjPEu7Uh1P5+9FM2szvjL/1O7rGGqpEwPLuPEKaSp+r7zuv96fNk oI9BvSz6LrA13aggnND1MGNKPER0QQ9IetpgaXCMYu5egJzJmMTirUUlABZMDcKFbJs7 6VGw== X-Gm-Message-State: AOJu0YyY9JwKmlyAhQwX/lQFy1/zUO8xCIQ2EF1/qKr8BBYKTKLRL2C3 ygWXcTjc00fBoANN6zxHOSkdwBOtEIvAyRucxobRV5pBr7iGOcY3ZKw4AKLUVHjsujfS4Hs+wuC NEe6W9ebn8XSFoJOHbe3QY1V8KjfU6Lk= X-Gm-Gg: ASbGncsbFNmBiZIPW5C7Ms2P/Go0emh+l1GAo6Hdmp3kNKIyc+2BVSvy1oZWTEsW42V lyyLE8eQzjZpors/Q8xpHvTwsYUykhjvXfeYZiqFwWwtYR4MGxxEs+4PBjhn8R8Ii/74zbVom8F RNpVCkq/xCXodszrT+TRrHomtrqSnXGAH5OkPWDbtZ8XuhtYMrcLefUmjtqz6w0RIPP2OVBHoqU 2Q/Gvd7ncAMX+J4FeCfALD4G4skpGOcVRfaQtGZZmbfIzDSZerrlC+udPZ/X6qnKpLWEPuqKyws 3eZT1hSxhytLkompIgeAiL+ivjGDtpdbn60COZPSllQXo3FJjsr13rBSK36BvbNXm1HsLcNM7LU lfzhRU3dZVtu9CIXn/4ToH0/7e7Inu5hd5QVPBOYrY3LJ12XFAGlg9x9zDlVqZbXQ/8E117c1y8 tXxvXF5FjQxmfM X-Google-Smtp-Source: AGHT+IHacpl6JJKRQPG/n7H7ih4p0IIvrn5rsFIeZu6d/uqT0E1V9FhV3L9qJ+xo7kL2kiAHLLpWB2d1zcoMp8iR4Gg= X-Received: by 2002:a05:6102:38ce:b0:5db:ca19:f02f with SMTP id ada2fe7eead31-5dbca19f99bmr227201137.9.1762001004785; Sat, 01 Nov 2025 05:43:24 -0700 (PDT) MIME-Version: 1.0 References: <202507262156.sb455angijk6@alvherre.pgsql> <202510301734.pj4uds3mqxx4@alvherre.pgsql> In-Reply-To: <202510301734.pj4uds3mqxx4@alvherre.pgsql> From: jian he Date: Sat, 1 Nov 2025 20:42:47 +0800 X-Gm-Features: AWmQ_bmywd9yZ-pyKvzEXB8drG1IqBPDyh1MzOEdEaX6p4Fn26eWMJZtw12k5v0 Message-ID: Subject: Re: Adding REPACK [concurrently] To: Alvaro Herrera Cc: Pg Hackers , Antonin Houska , Mihail Nikalayeu , Robert Treat 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 Fri, Oct 31, 2025 at 7:17=E2=80=AFAM Alvaro Herrera wrote: > > Hello, > > Here's a new installment of this series, v25, including the CONCURRENTLY > part, which required some conflict fixes on top of the much-changed > v24-0001 patch. > hi. if (params.options & CLUOPT_ANALYZE) ereport(ERROR, errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cannot %s multiple tables", "REPACK (ANALYZE)")); for this error case, adding a simple test case would be better? + /* Do an analyze, if requested */ + if (params->options & CLUOPT_ANALYZE) + { + VacuumParams vac_params =3D {0}; + + vac_params.options |=3D VACOPT_ANALYZE; + if (params->options & CLUOPT_VERBOSE) + vac_params.options |=3D VACOPT_VERBOSE; + analyze_rel(RelationGetRelid(rel), NULL, vac_params, + stmt->relation->va_cols, true, NULL); + } Looking at the comments in struct VacuumParams, some fields have nonzero de= fault values =E2=80=94 for example, log_vacuum_min_duration. Do we need to explicitly set these fields to their default values? (see ExecVacuum) repack.sgml can also add a See Also similar to analyze.sgml, vacuum.sgml doc/src/sgml/ref/repack.sgml synopsis section missing syntax: REPACK USING INDEX I am wondering, can we also support REPACK opt_utility_option_list USING INDEX MATERIALIZED VIEW: create materialized view a_________ as select * from t2; repack (verbose); INFO: repacking "public.a_________" in physical order INFO: "public.a_________": found 0 removable, 10 nonremovable row versions in 1 pages DETAIL: 0 dead row versions cannot be removed yet. CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s. cluster (verbose); won't touch materialized view a_________ but materialized views don't have bloat, nothing can be removed. So here we are waste cycles to repack materialized view?