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 1kjoVA-0001d2-Pd for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Nov 2020 19:06:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kjoV9-0001pf-Os for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Nov 2020 19:06:19 +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 1kjoV9-0001pM-Ct for pgsql-hackers@lists.postgresql.org; Mon, 30 Nov 2020 19:06:19 +0000 Received: from mail-il1-x141.google.com ([2607:f8b0:4864:20::141]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kjoV6-0005z7-2H for pgsql-hackers@postgresql.org; Mon, 30 Nov 2020 19:06:18 +0000 Received: by mail-il1-x141.google.com with SMTP id y9so12392382ilb.0 for ; Mon, 30 Nov 2020 11:06:15 -0800 (PST) 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=JOnoOixd6RDAzE40cEomvjnNbFUtgFqtdemD3qhRsjs=; b=ET92H9pAqoMUV+ahZ5jDxAPAu5pJj7mnRbnuIVysYvOJ9IlXH3wZ/xIRqqDSxmPhhY VRHwfc0rWHHka5hJU8SrLWPHuC+7wAPtIKcF/d9AdyAoIHfQQjy7riYYU4liXmCp5Lkk AGCPawEzktCgBRldVWUJBAgvo0HC1Yms6oxaC2QfzjPkfo7ZhiouY3biWZeDYNs1KbmU 7QjYsSB/fILO/22SGbg0QAAzj4Q1Xz98/v/2j1bKxdjQQIVAV53UwGg7I8uUpt9qfxgH 3GJ2On1w8vsrYoZIZlkI48XqsF8/DkrUl90ALuw9E9mPD1Y1a53JztY+Ui/0nkoaD7yv f+EQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=JOnoOixd6RDAzE40cEomvjnNbFUtgFqtdemD3qhRsjs=; b=KpOQgZJlrHFvxksim2udODSVPSdhxf4L3nPBkF4xHJTTcvVeKaFDFLSGKAsaMTB6av bkjox7SDlxhNVn2xFE3YeR59htADSymZPvQZ4A3r8XyT1AiuzhKzAg1UziNvgrSEsOLq P4obZVRTpoGPIBdfcEhdEmfZrpHbL7ggzL0Seaa5Kd1ECdKVLTuH5m5xMb88Dnk4u5rg ho+1iRKfOhk/hzZSgaZuQJovI6p00/2yYmhAzUXbQBH2pGxyguL/ORZfCGP4RZZ+mE6z 1pNlMhD2RBkuOz7XjQTzjKG3zyeULnkLeEPbbkQ+BMZizxfZaToK1xORPoMdK1cfwMkk utkQ== X-Gm-Message-State: AOAM531jCQ8y2+96V93VnYiHBHTJUPWWBNuExHBcDo3BiAYUSrg+kGBt atBWXdWwxrffU3BDN+bzxnKqFw== X-Google-Smtp-Source: ABdhPJyEuV149RZ5Yz3Ct2lxFka3IdSNii0ZOEa1Np+vQhAhBtsdjKINIPQ0EGDQBJ/ikOvB92Nrdg== X-Received: by 2002:a92:3f14:: with SMTP id m20mr20777952ila.240.1606763174228; Mon, 30 Nov 2020 11:06:14 -0800 (PST) Received: from pryzbyj.telsasoft (charmander.telsasoft.com. [50.244.222.1]) by smtp.gmail.com with ESMTPSA id l6sm11841679ili.78.2020.11.30.11.06.13 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 30 Nov 2020 11:06:13 -0800 (PST) Received: by pryzbyj.telsasoft (Postfix, from userid 1000) id 3A3B580087C; Mon, 30 Nov 2020 13:06:12 -0600 (CST) Date: Mon, 30 Nov 2020 13:06:12 -0600 From: Justin Pryzby To: Anastasia Lubennikova Cc: Stephen Frost , Magnus Hagander , Tom Lane , Peter Eisentraut , Heikki Linnakangas , Ian Lawrence Barwick , PostgreSQL-development Subject: Re: [PATCH] remove deprecated v8.2 containment operators Message-ID: <20201130190611.GY24052@telsasoft.com> References: <20201027032511.GF9241@telsasoft.com> <155ecfd8-7ac6-1875-5090-d79a586a8847@enterprisedb.com> <235561.1605220100@sss.pgh.pa.us> <20201113150343.GT16415@tamriel.snowman.net> <20201116205516.GM14024@telsasoft.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii 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: Precedence: bulk On Mon, Nov 30, 2020 at 09:51:12PM +0300, Anastasia Lubennikova wrote: > On 16.11.2020 23:55, Justin Pryzby wrote: > > On Fri, Nov 13, 2020 at 10:03:43AM -0500, Stephen Frost wrote: > > > * Magnus Hagander (magnus@hagander.net) wrote: > > > > On Thu, Nov 12, 2020 at 11:28 PM Tom Lane wrote: > > > > > > The changes to the contrib modules appear to be incomplete in some ways. > > > > > > In cube, hstore, and seg, there are no changes to the extension > > > > > > scripts to remove the operators. All you're doing is changing the C > > > > > > code to no longer recognize the strategy, but that doesn't explain what > > > > > > will happen if the operator is still used. In intarray, by contrast, > > > > > > you're editing an existing extension script, but that should be done by > > > > > > an upgrade script instead. > > > > > In the contrib modules, I'm afraid what you gotta do is remove the > > > > > SQL operator definitions but leave the opclass code support in place. > > > > > That's because there's no guarantee that users will update the extension's > > > > > SQL version immediately, so a v14 build of the .so might still be used > > > > > with the old SQL definitions. It's not clear how much window we need > > > > > give for people to do that update, but I don't think "zero" is an > > > > > acceptable answer. > > > > Based on my experience from the field, the answer is "never". > > > > > > > > As in, most people have no idea they are even *supposed* to do such an > > > > upgrade, so they don't do it. Until we solve that problem, I think > > > > we're basically stuck with keeping them "forever". (and even if/when > > > > we do, "zero" is probably not going to cut it, no) > > > Yeah, this is a serious problem and one that we should figure out a way > > > to fix or at least improve on- maybe by having pg_upgrade say something > > > about extensions that could/should be upgraded..? > > I think what's needed are: > > > > 1) a way to *warn* users about deprecation. CREATE EXTENSION might give an > > elog(WARNING), but it's probably not enough. It only happens once, and if it's > > in pg_restore/pg_upgrade, it be wrapped by vendor upgrade scripts. It needs to > > be more like first function call in every session. Or more likely, put it in > > documentation for 10 years. > > > > 2) a way to *enforce* it, like making CREATE EXTENSION fail when run against an > > excessively old server, including by pg_restore/pg_upgrade (which ought to also > > handle it in --check). > > > > Are there any contrib for which (1) is done and we're anywhere near doing (2) ? > > Status update for a commitfest entry. > > The commitfest is nearing the end and this thread is "Waiting on Author". As I think this is waiting on me to provide a patch for the contrib/ modules with update script removing the SQL operators, and documentating their deprecation. Is that right ? -- Justin