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 1w8rIS-000wvG-04 for pgsql-hackers@arkaria.postgresql.org; Sat, 04 Apr 2026 03:03:40 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w8rIQ-00FB7w-2g for pgsql-hackers@arkaria.postgresql.org; Sat, 04 Apr 2026 03:03:39 +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.96) (envelope-from ) id 1w8rIQ-00FB7m-1K for pgsql-hackers@lists.postgresql.org; Sat, 04 Apr 2026 03:03:38 +0000 Received: from mail-oi1-x234.google.com ([2607:f8b0:4864:20::234]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w8rIO-00000000SbA-421E for pgsql-hackers@lists.postgresql.org; Sat, 04 Apr 2026 03:03:37 +0000 Received: by mail-oi1-x234.google.com with SMTP id 5614622812f47-46f0fa0e398so761612b6e.1 for ; Fri, 03 Apr 2026 20:03:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775271816; cv=none; d=google.com; s=arc-20240605; b=Ykv5SIozPe25Z3dCegapwqBeuA28SiTSbi4Ni/BXOk+0jq+awtORApKf6YfOTnxF7w ywGQ634MSd9jSCMXwyotJ0yTUDPhurnFZLwRz/rSSKbJlaP/RSrjX7ADsLbULZKohisU QXtHxevnUXSkDwz4rDYLW0RTfcMnWXOLvnTlYG+h6B33+IuljPvSeiIWYQ4u2ZLoXtTJ IaWPAqI48XOQSzK19Q4dafK83qTAIQ914bF+NwiksOyicstyGKmjai0ZFJov7Y1uh/mr JoL44KxdE5kxMnKuvjS4N+QJDLYfXvumHKYM4pAh3Qluk/1IDQcOal04272Bk6txOnjH aNFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:references:in-reply-to :mime-version:dkim-signature; bh=x9H1L7aQwLceKd6Rs3yufcvXlF+MkejPMCZG/wWH/9E=; fh=C/oBORWnZEfBjJ6eeSCsFlzuIkbHLF/ce137WckmvZE=; b=E6dII5NoyumD0WPCcuj4nMvVVf1OIjMUU/6jqDhn6ag6JqTweFIk9OYOMw02wbXRLk DPtAaFy/2dLQAeQgSSBrBky1MwC/OHTEGAR2g2HG0GJXf82yc2bTLAQkyHBMda11ynAG E7thF9d6tO+bT4djBFBn/n7OhiSAJnBSlL6OGFSksUW+ZUXJKyElUpsNOOr7jXp2Vkdr gNms2fIDDuVFbL3YVt/Yw8XysgbUz86IluXbHrej6/6n6/orCT8UuIpH9Y+ZoxZXeqRL ZaxhOxhHMZ/EgO31kD5McJeP+pEDhrrO1K/DMhv7ZKpfA45QsHi1JKsa+07IO53b0/Am qeoQ==; 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=20251104; t=1775271816; x=1775876616; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:references:in-reply-to :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=x9H1L7aQwLceKd6Rs3yufcvXlF+MkejPMCZG/wWH/9E=; b=KMh0J5If1sytG8v2SRjrIkJy1uW5ZYVzNkOaW246nlcNpjCQhRgUCHbEBV8Mx6jyqd XnNexTPaCyCRdXx2X49k6IIWFKSW2eDixdds667pNs5vPJVijr1tZSqYSSOhXDhaj1GL Trzf1Ti4VC0Xp1TNAL/a+RXdI1w68saL0k39MOAvDNum8Dsj1IMemfTmXMcVG65XpSc3 VFKYyMGKKFjHI01qIOt8Beqq1MPam0fdk1ubNrREUvfv6AgRKkS5r04pY8f5XrfIxDeH /7tcqsPC7Z7i56bHZ4urL3pyZtQCy6iYaU3AVJM9g8Lxb8D/GDsbrOiy4p+zg81dl+38 dSWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775271816; x=1775876616; h=cc:to:subject:message-id:date:from:references:in-reply-to :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=x9H1L7aQwLceKd6Rs3yufcvXlF+MkejPMCZG/wWH/9E=; b=fRgOCiecFN1OYV0x8hie94DloZ0I8ui6vHXesCMRhTTGpnKU1M6UuYW7iSpmJ505DO +mfAeq3W9AMKaCDIqgKbL+wC1milRyqo58zvr54pJMnxafP8NaBITJuDboEHsRxR+xpR mUVa27m1wH1EN97yNiUyQUp9OorPgC1no1z+gFkn4m6SMM/th/2tuGSddvV/nHdcAPTD xQVHw74IpCSM0J0D643byj64edXoCO9xAEAZBUjYe4RHikZ+F8tuGyDudmIW+1BN6gVO Im1gnqpOL2YBT3zkzfDDWSBFJcG+P/ZTWvKS3AziSlb4nyxvuEdBwcemk3h5W/e4zNVt 1r4Q== X-Forwarded-Encrypted: i=1; AJvYcCWuhXdIsvta8jYLVdmPq5lLc6RWWOm49Z64kNouM5ZOF4LUPUMa5miM0Co5u1qetL9j41xmdt2XWHM0XbrU@lists.postgresql.org X-Gm-Message-State: AOJu0YxQahbKkHzOL3LdRrlYM9YsY3KCHnIAfdqHofOtC43XKa6DKZS2 L9K7SmI+/fEUrPj2c28t2s0bPE7FKAw3rsFQ1Sy8q+1vO9e5TnKanKP02ED8x1ulk7/4NGW0840 E+zdAAjqVvyQJJKRhPJGhKSyXYAJPL4k= X-Gm-Gg: ATEYQzyR9fVgT7NN1aJeUQuEwok9RP/oEnGgFiNaeTAoJ0hkFVMqy2wcBSkzusVkx6q O5Lv6ri53jHz9MpMLQzN9qXtvCB/GNA/LLnEvgjZwxO71f9taSxCkQowXcGEs3q32dlJkPBeSxe iW/zFPvn7wCR3tX1sjFw8MT+1EO3iD3viWjoK0ugDEOkogwEeCpEDAiKUmzTcyZqg0PtThx+ddH 4rPI5mDSZri96PRie3Eph0YQPIJZ4c0XzHlIGr16wUPrVPE/liNQiN01dRXXnlkwX9+MduLTZ3+ 6Rpu/C9b X-Received: by 2002:a05:6808:1807:b0:46a:d9fc:1423 with SMTP id 5614622812f47-46ef790a752mr2668681b6e.33.1775271816418; Fri, 03 Apr 2026 20:03:36 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a05:6802:1585:b0:628:927c:fc2e with HTTP; Fri, 3 Apr 2026 20:03:35 -0700 (PDT) In-Reply-To: References: From: "David G. Johnston" Date: Fri, 3 Apr 2026 20:03:35 -0700 X-Gm-Features: AQROBzD-A1gNaslrV7PPESU9xhehHxXxNalAAiTKD4wuCbh7txlNvxpiuo1qtOM Message-ID: Subject: Re: Docs: Distinguish table and index storage parameters in CREATE TABLE To: Robert Treat Cc: Andreas Karlsson , PostgreSQL Hackers Content-Type: multipart/alternative; boundary="000000000000ff5881064e99ad13" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ff5881064e99ad13 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Friday, April 3, 2026, Robert Treat wrote: > On Fri, Apr 3, 2026 at 3:35=E2=80=AFPM Andreas Karlsson wrote: > > On 4/3/26 9:27 PM, Andreas Karlsson wrote: > > > On 4/3/26 8:18 PM, David G. Johnston wrote: > > >> Per the discussion on -general [1] I propose that we stop using the > > >> generic label storage_parameter on the create table reference page a= nd > > >> instead set up proper labels for table and index variants. > > > > > It's sort of interesting that no one in the above discussion gave an > example like: > create table t (c int, constraint pk primary key (c) with (fillfactor > =3D 90)) with (fillfactor =3D 100); > and pointing out that where you put the parameter changes what it > effects, so I'm a little skeptical that this patch would help the > original discussion, but it certainly wouldn't hurt, so +1 from me. > Stretches my skills a bit but if the error message had been: (unrecognized index storage parameter =E2=80=9Cautovacuum_enabled=E2=80=9D) the syntax pl= acement issue may have been recognized working under the assumption the author knows their intent is to modify the table (and vice-versa). As a quick footgun prevention attempt (not a huge fan though): Note, specifying a primary key or unique constraint as the final component of create table makes assigning storage parameters to the wrong object more likely. (Added to the with clause section) David J. --000000000000ff5881064e99ad13 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Friday, April 3, 2026, Robert Treat <rob@xzilla.net> wrote:
On Fri, = Apr 3, 2026 at 3:35=E2=80=AFPM Andreas Karlsson <andreas@proxel.se> wrote:
> On 4/3/26 9:27 PM, Andreas Karlsson wrote:
> > On 4/3/26 8:18 PM, David G. Johnston wrote:
> >> Per the discussion on -general [1] I propose that we stop usi= ng the
> >> generic label storage_parameter on the create table reference= page and
> >> instead set up proper labels for table and index variants. > >

It's sort of interesting that no one in the above discussion gave an example like:
create table t (c int, constraint pk primary key (c) with (fillfactor
=3D 90)) with (fillfactor =3D 100);
and pointing out that where you put the parameter changes what it
effects, so I'm a little skeptical that this patch would help the
original discussion, but it certainly wouldn't hurt, so +1 from me.

Stretches my skills a bit but if the error= message had been: (unrecognized index storage parameter =E2=80=9Cautovacuu= m_enabled=E2=80=9D) the syntax placement issue may have been recognized wor= king under the assumption the author knows their intent is to modify the ta= ble (and vice-versa).

As a quick footgun preventio= n attempt (not a huge fan though):

Note, specifyin= g a primary key or unique constraint as the final component of create table= makes assigning storage parameters to the wrong object more likely.
<= div>(Added to the with clause section)

David J.

--000000000000ff5881064e99ad13--