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 1vdvGi-006h5U-2q for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Jan 2026 19:02:01 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vdvGd-003nZI-2y for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Jan 2026 19:01:56 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vdvGd-003nZA-1v for pgsql-hackers@lists.postgresql.org; Thu, 08 Jan 2026 19:01:56 +0000 Received: from mail-ej1-x62e.google.com ([2a00:1450:4864:20::62e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vdvGb-005KgY-0i for pgsql-hackers@lists.postgresql.org; Thu, 08 Jan 2026 19:01:55 +0000 Received: by mail-ej1-x62e.google.com with SMTP id a640c23a62f3a-b734fcbf1e3so693846966b.3 for ; Thu, 08 Jan 2026 11:01:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767898910; x=1768503710; 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=gQaMOSowcRdtpXOApW7M5vTQIPGd4EUF9PHJh65av1Y=; b=lHL7xoOT8axKfDXbKquaUYH+A5qEmKdSZS9FOcL24+xaihSLrM6C7uswHP1FRrqyqL CI2nCD2rsu/q77zpM01nwjSiXRt5WFz1zroOeRGH3hNDeH6w5xjYB6FV7rKY78aUoCMF ibwVkenDNC4ePOK3127lBZUDrnYeLqZw6ajOn7DR5e9TODD1rISIMWEmmv0ei+UtYDUw ChM7yViYJ6r65jYK4tYBDQy2XuzBGxpXOSwK34E3iom4f5H/uIORuqLsAhL8acmWuZxK sra7BLEjOTW2ZltuOZPox8p9ZtrmY3GxzJGYat3VTI3Zm0rTmZeXEm2ouCiVgu0bBZ6U yLWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767898910; x=1768503710; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=gQaMOSowcRdtpXOApW7M5vTQIPGd4EUF9PHJh65av1Y=; b=n8J/V+cHJun6NyqhTvHoPG3nug9yMoIGH5hBZBkV1wcfrQWd5m52jyaYOcFRPS9bL1 XpSK6TsdiId812nJfu0Qm4oqYTbD4oCuu8HURFazgwgNUE1E/XOmzo5G/egas/2DWsc8 kXZ4SK3zubmTrj7L9eJKKcGhkac62p/AlThdKVWU8q5MggJmKSRNm5/Yd5KjjvFUXG6c kJZSp2gjdoNqKeb4ezELkLBgANUmh01hH2h8CFj50dPyRdmvK8+l/bFOQlfSE99xOCka K8zDANn8BPQA621w5CA4uEyfX+vt0ygE0UYx+i0TTu0a8aoPHCYKvc7Rscc41YttvSPM h1pQ== X-Forwarded-Encrypted: i=1; AJvYcCWzwXwUWHVOwpT4VxQzE11dAxftHmqh5d5bgu8iRrdnVgDbc4CfyzBbFzX3TgGQ8YjybpJ37dSk04LsPaNO@lists.postgresql.org X-Gm-Message-State: AOJu0YyB29gCYAwKyEcKnGuq3uKOe3tltC/GtOFMJNCH4MPALx6he7Az FIUP3JFJHb85q0hVWglz2ej3C+9ZF0EC3703uHpMKtVOsEXZBD5hMCaab7EjLuGiuT0AN2eiksJ 1xDp3qYPcCVHU9Lr7pGYAoWhoDUh4FE8= X-Gm-Gg: AY/fxX7TZzPNBt8OYqR7ObPW5m8sThUEiJ4WzY8avixNHoLvCH+kTGjwV2bcFGXUaTq 4suycYL2Y7Kw/rBOt9t6mVKGqHIBwMwuzjnt7oXI0exGj1iAMPOWp0d6TExG4Qfs/We7d1qdMzY rQJsM3tFzFy/BpcZMw7k/NQCmeEZkt5mnTYg9d5ZJruYN9Pwem4f/zpQfqSfU4JN7JbGsatSdgT 6mOPSfOpJXQwqtcTsycXtp0BnV3nS9+jsWZikcHXvlHDv+dhhmc57ztljNlbieBQ7Q0FDg+F3+1 7+z31sfJV+kpyb9X+ouaaWLcnnc= X-Google-Smtp-Source: AGHT+IEzCWayV9WwRPwOjFwzKaAsvuW+uAk6H+XlyyKp45k39smKSWwc2VtAVEBOFCVopSYfC3bRu/ZrK16rhp9Le+A= X-Received: by 2002:a17:907:7b89:b0:b6d:6c1a:31ae with SMTP id a640c23a62f3a-b8444fd453amr703937566b.49.1767898910268; Thu, 08 Jan 2026 11:01:50 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Robert Haas Date: Thu, 8 Jan 2026 14:01:38 -0500 X-Gm-Features: AQt7F2qQBWN1uQq6_8uvwNCalCqTPGeUKjQQx0pmfAkWH5NczHdW4KeP464ec8Q Message-ID: Subject: Re: Proposal to allow setting cursor options on Portals To: Jelte Fennema-Nio Cc: Jacob Champion , Dave Cramer , PostgreSQL Hackers , Heikki Linnakangas 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 Thu, Jan 8, 2026 at 4:46=E2=80=AFAM Jelte Fennema-Nio wrote: > tl;dr I give up, let's do protocol extensions for everything. I've > updated my GoAway patch do so[1]. > > I don't think I can convince you that slightly more forceful push > forward that I'm suggesting is worth the gained simplicity (both for > us, users and client authors). And I'm starting to get pretty sick of > discussing the same points over and over again, without making any > progress. So instead of continuing to do so, I'll just agree to > disagree with you. That sounds like the right approach to me. Note that I have also previously expressed my disagreement with the idea of bumping the protocol version regularly. I'm not entirely comfortable with the idea of using protocol extensions for everything, because I really imagined that they would be used for larger features that made a cluster of related changes rather than solitary changes, and that there wouldn't be many of them. If we have lots of them and use them for solitary changes like GoAway, we will eventually end up with a very long list of protocol extensions. I agree with you that this is not great. On the other hand, I also do not think the alternative of bumping the protocol version every year is viable. And even if I did, working in this community means that you sometimes have to defer to a consensus with which you do not personally agree in the interest of getting stuff done. I find that when 2 or 3 people all disagree with the same decision that I've made, it is usually a sign that I am wrong, regardless of how sure I am that I am not wrong. > If in 5 years, when we have 15 protocol extensions with completely > distinct support across clients and proxies instead, and no-one knows > what features they can rely on in practice. While we could have had 5 > new protocol versions. I'll just think (and probably tell you) "I told > you so". But you might just be right, and that won't happen, or even > if it does it will somehow be trivial to compare all the compatibility > matrices. IMHO, one thing upon which this greatly depends is the degree to which all the changes are interdependent. If we end up with an extension for a GoAway message, an extension for column encryption, and an extension for trace IDs, I don't see why the compatibility matrix should be a huge issue. Like, yes, some 3rd-party implementations will support all of those and some will support only some of them, but that's sort of the point. Our own code should work with any combination -- I hope -- because the code should live in pretty separate places. If we end up with extensions for column encryption, column use-of-binary format, and column encoding, well then it's probably going to be quite a mess to keep our stuff working with all combinations. In that case, we need to either bump the version and mandate that you have to support all of them, or have extremely good testing frameworks, or maybe decide not to add all those features. --=20 Robert Haas EDB: http://www.enterprisedb.com