Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lMEh3-0003Ai-5w for pgsql-hackers@arkaria.postgresql.org; Tue, 16 Mar 2021 18:45:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lMEh2-0007Aj-3J for pgsql-hackers@arkaria.postgresql.org; Tue, 16 Mar 2021 18:45:24 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lMEh1-0007Ab-SY for pgsql-hackers@lists.postgresql.org; Tue, 16 Mar 2021 18:45:23 +0000 Received: from sss.pgh.pa.us ([66.207.139.130]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lMEgz-0004Ce-OK for pgsql-hackers@postgresql.org; Tue, 16 Mar 2021 18:45:22 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.15.2/8.15.2) with ESMTP id 12GIjDEa3387835; Tue, 16 Mar 2021 14:45:13 -0400 From: Tom Lane To: Robert Haas cc: Mark Dilger , Noah Misch , Peter Geoghegan , Thomas Munro , "Andrey M. Borodin" , Stephen Frost , Michael Paquier , Amul Sul , Dilip Kumar , Andres Freund , PostgreSQL-development Subject: Re: pg_amcheck contrib application In-reply-to: References: <9E76E46A-48B2-4869-BD0C-422204C1F767@enterprisedb.com> <20210313184612.GA3195145@rfd.leadboat.com> <930621E5-5D10-456D-8CE4-CF629A6C4669@enterprisedb.com> <20210313191841.GB3195145@rfd.leadboat.com> <3012106.1615827854@sss.pgh.pa.us> <3053552.1615834640@sss.pgh.pa.us> <20210316060913.GA3323238@rfd.leadboat.com> <7BCE9084-9381-471F-90F2-FAD99B7FE3DB@enterprisedb.com> <3254547.1615910855@sss.pgh.pa.us> <7CFAF7EF-4EA7-4CB6-B2C7-EC7F4512AE50@enterprisedb.com> <16B79A18-48F3-404D-8DC5-53528E85A7AC@enterprisedb.com> <3360174.1615916917@sss.pgh.pa.us> Comments: In-reply-to Robert Haas message dated "Tue, 16 Mar 2021 14:24:23 -0400" MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <3387833.1615920313.1@sss.pgh.pa.us> Date: Tue, 16 Mar 2021 14:45:13 -0400 Message-ID: <3387834.1615920313@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Robert Haas writes: > On Tue, Mar 16, 2021 at 1:48 PM Tom Lane wrote: >> No. What should be happening there is that some arrays in the column >> get larger alignment than they actually need, but that shouldn't cause >> a problem (and has not done so, AFAIK, in the decades that it's been >> like this). As you say, deforming the tuple is going to rely on the >> table's tupdesc for alignment; it can't know what is in the data. > OK, I don't understand this. attalign is 'd', which is already the > maximum possible, and even if it weren't, individual rows can't decide > to use a larger OR smaller alignment than expected without breaking > stuff. > In what context is it OK to just add extra alignment padding? It's *not* extra, according to pg_statistic's tuple descriptor. Both forming and deforming of pg_statistic tuples should honor that and locate stavaluesX values on d-aligned boundaries. It could be that a particular entry is of an array type that only requires i-alignment. But that doesn't break anything, it just means we inserted more padding than an omniscient implementation would do. (I suppose in some parallel universe there could be a machine where i-alignment is stricter than d-alignment, and then we'd have trouble.) regards, tom lane