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 1mPDiz-0005CB-8E for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Sep 2021 00:52:01 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mPDiR-0000T8-4f for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Sep 2021 00:51:27 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mPDiQ-0000Su-N2 for pgsql-hackers@lists.postgresql.org; Sun, 12 Sep 2021 00:51:26 +0000 Received: from mail-io1-xd32.google.com ([2607:f8b0:4864:20::d32]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1mPDiM-0007M2-1n for pgsql-hackers@lists.postgresql.org; Sun, 12 Sep 2021 00:51:25 +0000 Received: by mail-io1-xd32.google.com with SMTP id n24so7298131ion.10 for ; Sat, 11 Sep 2021 17:51:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telsasoft-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=N3qc0ImrrB11EYi2CbgZCWAtfoPoGpIG1ALYTXWM3ZQ=; b=JDXbQycobwOH61eo6TwNJiiMrK/D90AJNXrDWrkNg3rVlYETwvj+aoMjBtn5+YPhqK WM805ABcPvtW3wtIxhx4gq6UNocuop6W2WenYy7mlL7f6vIfJW9NdabDBfa/9eMMC4/n 7qPM9IAJSYbwjtw5m/FqEDBcWP9mH5r/XUySYFqs6LxzU3m1lLy+LYBi5JTX5ROBGO4A PV9XWQ8AaPg16LabKDv9yqZJAynKQ9j+nmXpL5qr3mN/md0H8QPm5JGelyNfE0lj+Hwj XWyAUOzzw77l7+wgaZ/PRWd6BXrmxuyKIcEfmWP8JuQt8ZVoAa0W6dCZBsTJdBYRWaTL oHoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=N3qc0ImrrB11EYi2CbgZCWAtfoPoGpIG1ALYTXWM3ZQ=; b=T3bo3njJivc2eIIk8B1suIgQ8wU+VCDksdG+a0fN0GMLWFGPdRGZg865h+yJOfEcp2 RfmuVBVYKAoqwEJhFMrr+jwHCMLgx+UhsKO7/52PAeEm2BmuriCVDMwznsS3jNegOE8Y XEaNexGunJYQMsDKWCMrM+/lfnS1mDt8iyooJ+GrCdLTCpusVyo/N5/lvoDNMG02MPaG 3VaVYU8K0FyUgE/R23oWAX6z+pieoNftT2L1dFL5bT9Kh9V4mfAtmDcu7atfLotIVcnQ YKtt57rh9fxMPQ55qGanommrfhQqA6nyL4sQahHwOd8M4y6vOaKqi6Q2ufSn2DF+AbkE vcnw== X-Gm-Message-State: AOAM530y9s/aAnMJBUtKEnEeegkjR7ukqT6tUoCEWo9X749a985bHXGI nb80I08oIhvMBXwbB6m85mjHhA== X-Google-Smtp-Source: ABdhPJz2vgjd608ffZlIT7Fk75tOltd1AOaB/FDT5dG1ot+jSlZQoY2F5kKsh8b+5+ry9MswRTAWfg== X-Received: by 2002:a05:6602:1503:: with SMTP id g3mr3482726iow.25.1631407879275; Sat, 11 Sep 2021 17:51:19 -0700 (PDT) Received: from pryzbyj.telsasoft (charmander.telsasoft.com. [50.244.222.1]) by smtp.gmail.com with ESMTPSA id a21sm1724919iot.43.2021.09.11.17.51.17 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 11 Sep 2021 17:51:18 -0700 (PDT) Received: by pryzbyj.telsasoft (Postfix, from userid 1000) id D5CE8800C0B; Sat, 11 Sep 2021 19:51:16 -0500 (CDT) Date: Sat, 11 Sep 2021 19:51:16 -0500 From: Justin Pryzby To: Jacob Champion Cc: tgl@sss.pgh.pa.us, peter.eisentraut@enterprisedb.com, pgsql-hackers@lists.postgresql.org, buschmann@nidsa.net, andrew@dunslane.net, noah@leadboat.com, tomas.vondra@2ndquadrant.com, bruce@momjian.us, andres@anarazel.de Subject: Re: pg_upgrade test for binary compatibility of core data types Message-ID: <20210912005116.GF26465@telsasoft.com> References: <20210112041352.GY1849@telsasoft.com> <20210112171559.GO4320@momjian.us> <20210112172753.GC1849@telsasoft.com> <20210112175356.GP4320@momjian.us> <66753439-83ae-7be5-6e41-9537a6041a39@dunslane.net> <1575064.1615060903@sss.pgh.pa.us> <20210430183348.GQ27406@telsasoft.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="54u2kuW9sGWg/X+X" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --54u2kuW9sGWg/X+X Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, Jul 16, 2021 at 06:02:18PM +0000, Jacob Champion wrote: > On Fri, 2021-04-30 at 13:33 -0500, Justin Pryzby wrote: > > On Sat, Mar 06, 2021 at 03:01:43PM -0500, Tom Lane wrote: > > > v4-0001 mostly teaches test.sh about specific changes that have to be > > > made to historic versions of the regression database to allow them > > > to be reloaded into current servers. As already discussed, this is > > > really duplicative of knowledge that's been embedded into the buildfarm > > > client over time. It'd be better if we could refactor that so that > > > the buildfarm shares a common database of these actions with test.sh. > > > And said database ought to be in our git tree, so committers could > > > fix problems without having to get Andrew involved every time. > > > I think this could be represented as a psql script, at least in > > > versions that have psql \if (but that came in in v10, so maybe > > > we're there already). > > > > I started this. I don't know if it's compatible with the buildfarm client, but > > I think any issues maybe can be avoided by using "IF EXISTS". > > Here are the differences I see on a first pass (without putting too > much thought into how significant the differences are). Buildfarm code > I'm comparing against is at [1]. > > - Both versions drop @#@ and array_cat_accum, but the buildfarm > additionally replaces them with a new operator and aggregate, > respectively. > > - The buildfarm's dropping of table OIDs is probably more resilient, > since it loops over pg_class looking for relhasoids. These are all "translated" from test.sh, so follow its logic. Maybe it should be improved, but that's separate from this patch - which is already doing a few unrelated things. > - The buildfarm adjusts pg_proc for the location of regress.so; I see > there's a commented placeholder for this at the end of the psql script > but it's not yet implemented. I didn't understand why this was done here, but it turns out it has to be done *after* calling pg_dump. So it has to stay where it is. > - Some version ranges are different between the two. For example, > abstime_/reltime_/tinterval_tbl are dropped by the buildfarm if the old > version is < 9.3, while the psql script drops them for old versions <= > 10. This was an error. Thanks. > - The buildfarm drops the public.=> operator for much older versions of > Postgres. I assume we don't need that here. > As an aside, I think the "fromv10" naming scheme for the "old version > <= 10" condition is unintuitive. If the old version is e.g. 9.6, we're > not upgrading "from 10". I renamed the version vars - feel free to suggest something better. I'll solicit suggestions what else to do to progresss these. @Andrew: did you have any comment on this part ? |Subject: buildfarm xversion diff |Forking https://www.postgresql.org/message-id/20210328231433.GI15100@telsasoft.com | |I gave suggestion how to reduce the "lines of diff" metric almost to nothing, |allowing a very small "fudge factor", and which I think makes this a pretty |good metric rather than a passable one. -- Justin --54u2kuW9sGWg/X+X Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v5-0001-WIP-pg_upgrade-test.sh-changes-needed-to-allow-te.patch"