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 1vgSZu-00DIWj-03 for pgsql-hackers@arkaria.postgresql.org; Thu, 15 Jan 2026 19:00:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vgSZt-000LTF-0E for pgsql-hackers@arkaria.postgresql.org; Thu, 15 Jan 2026 19:00:17 +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 1vgSZs-000LT7-2K for pgsql-hackers@lists.postgresql.org; Thu, 15 Jan 2026 19:00:17 +0000 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vgSZq-000fkZ-2W for pgsql-hackers@lists.postgresql.org; Thu, 15 Jan 2026 19:00:16 +0000 Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-64d30dc4ed7so2541368a12.0 for ; Thu, 15 Jan 2026 11:00:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1768503613; cv=none; d=google.com; s=arc-20240605; b=gEBn9OfjZ6yWm/r2wr1J40AANVGGVXKwM93d+fhBMlf8Oz3guK1uOUlSM+2/LT3/It lJ9D+9LmobimF4JQjFib37YSsIrSFg3GWMkcxUr9tk24vUlfzJVHJSSw+Sko4OaIjXiX C81F+OokCOmaRrbXnuHwX9SE5ms0ro+BREuUxvyCXm6QmVJQCIzqnv5Aj47e/iHrIaRs vn5X8PM+kN3+UHQy7CZxjQwiySfNJ7EvDgeDoxeahKl+woicoB4Cr+uMg3TpIgF4bd6y yhxFY+st6R/nIDmVxYa9sNZ22UtWPi9NQcpXLHaHgyDfKX5Eez1E7EIJ6XpCO+bRIraG lqdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=G0HTh5Hec8hMHs4ZSAL/OBEDRWkm9cCrMU69RQGLwiQ=; fh=AchIXEIf6JdZKr7uBf8k38Vlx2QmBJaG7Z173gt0x9Y=; b=IEp/yPnFWDtQdPL8uCcMQl/04cdRbPRQMl2tkTIgr4kDhIQQjyYfeJSJ8ciV1jcmlO Je5t+yAsHP/Wbaq0DKalJcMIgtgkchZFnnM8R1CJ8V+EbssGKLcY249pCxJSlgNzWsoy 3Xeiv3SzvwQBRcLzDhJVk6mnFNi1vJdrlKSx2idYauY2aSs8riS7seGv/5MO2Gly/N4f m5pa/IZt9fyqrpzU25Mz2VF1WD/R0Xdv5wn5XH0QjW0k3EMnl+OncECA3Mr+lxJjxT6Q ChbKUgiwpUeVgg9NNFJU1xiM1GRbGuGKh+j6AZZVfo20Jmppa6c8ZbPWPplZJ3I7VT+9 3HEw==; 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=20230601; t=1768503613; x=1769108413; 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=G0HTh5Hec8hMHs4ZSAL/OBEDRWkm9cCrMU69RQGLwiQ=; b=FcdqSIdmqeBBhNoGGOhbKT6dSrbpuNe2UhEAwUdtFr1Pbqie+BVDjBSbmjz9XyuVvc TKaiVFip8fsiJKQuILuN+fMOhunOuS72cTAdXrnvMWe1/p8SMQ3EKWlOarJflyvGmSv0 7tG3wfKAb0DTTe+UTniblSTVOTuddAJ8yk1hVf43s5sy/xD3iQ7LsiaySEN/tteWYajN fiJAh3hM9QT6YzQZ0G5MpS/Ij1WGOt7NNC2Hto2WRxjHyDWZWqGghXx3OCNkK6s8J0D0 mLxqYur41ONdCms/Rb8PHLBXZwbwnuhTnqMsXDMtK3Q2AZrp6HtkMLgDgsdG6IlB1aPM idfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768503613; x=1769108413; 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=G0HTh5Hec8hMHs4ZSAL/OBEDRWkm9cCrMU69RQGLwiQ=; b=nh45lFO9HhMKfb8NIm5+uxUv5e9a7M7sVsqpeiFF+5isEv3Xdow8XmuLTbFoyQlIyC pyMM/RkzI5Rlh6rpr/8qn5FD/yoDpSZWWFALaLfLDIl+HTGCJRwmv2cj5dE2ueGvVW26 mFT3+7SQKbpRHasKT+FjaNU/Mx0TMYuUCHkN13ea/Xobx5sF1zUAcGnRN27+JqL0zJgv XgvucHhnBN3cWBZbzL/TBZsPTQRtUlswsOpyQwg4wgpBc5vDBKY4djdOiQh87ZGcdgcW jBPBSJKoflrd9nJtwyAtL+b9BQ2JhIN9oSG2buHOyBEdHUK0/rxZLvFBvi2e+Y2LnU52 1MQA== X-Forwarded-Encrypted: i=1; AJvYcCVvx0Z+H0Xr5gdhrbiS8eLEJk59J7DnkTiT5Gm4IKQ8PEDYzkwyaVxmo5+9Uz6hkodWWtqWW377Zee8xT6O@lists.postgresql.org X-Gm-Message-State: AOJu0YzpDfpCQ4Cd8IgCB5JWm4y4c901+Ej4dqmFxG0+R/0aeDfuFMNR wPPCxpMdLeHs+6JNeWaiO3Z0IqGGG48PUrEyDsVh+/PI/AY1wmkTbVUaPOHnGBTglZyu8KGq3pc YuP7uds+4wDvwRfs0/9H2t22T+P8XEvs= X-Gm-Gg: AY/fxX6+BxzWAU7gAhVUm76p3tD5BqOTuM+IoiY8MCwfiH7FmKZ7FwAX6qb5G2USnM1 XB1oHMnmHgL/STtrYHTZeU/L6OLypT9ntIhstbEgJfUH/i9Oa0CJKcoKix2Jl3ZAWdZcxzv2rlW E7sAJ1I0QoDT3hV2BtNBbVDDmcdxoJi7Y9pRWfsF8KirVXco8XEQsi8qk7y/JiSA/Aw+y4koUEm 8WOHTNDEHlh/zwHt905dHtoS7KYBKv1a9CAYAaf3PBuYSG1eIava7ygWm12DGgGETqItO7eBa0P HqOcuU4dauqY+VBmABS5R60R6oM= X-Received: by 2002:a17:907:9814:b0:b86:f271:10bb with SMTP id a640c23a62f3a-b8792e312e8mr57642066b.24.1768503612978; Thu, 15 Jan 2026 11:00:12 -0800 (PST) MIME-Version: 1.0 References: <2155281.1767900170@sss.pgh.pa.us> <431484.1768433414@sss.pgh.pa.us> In-Reply-To: From: Robert Haas Date: Thu, 15 Jan 2026 14:00:00 -0500 X-Gm-Features: AZwV_QjgOI7mLcpRujYW-qnSZPVOfASiTXPogILZ1KSECpEbCg5xPsc93eE4LAo Message-ID: Subject: Re: Proposal to allow setting cursor options on Portals To: Dave Cramer Cc: Tom Lane , Jelte Fennema-Nio , Jacob Champion , 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 15, 2026 at 5:33=E2=80=AFAM Dave Cramer = wrote: > I would argue in the case of "cursor with hold" this should have been in = the original protocol. > This is not an added feature this just enables an existing feature in the= server. This is not unlike widening the cancel key. > Something like encryption would be a feature that I could see using the e= xtension mechanism I agree that encryption is a better fit for the extension mechanism. But I don't really agree that this isn't a new feature. Exposing existing functionality in new ways counts as a new feature in my book. >> Having said that, I share Robert's distaste for "silent" protocol >> bumps that change the behavior without any negotiation. > > My understanding reading his message he was in favour of it Well, my feelings are mixed on that point, honestly. If the server needs to know whether the client supports something, you pretty much have to have a protocol negotiation of some kind, whether that's a version bump or an extension. Otherwise, the server simply has no way to find out what the client supports. In the opposite direction, it's more fuzzy: the client can see the server version number, and so can draw some conclusions on that basis. We have used this for protocol changes in the past. However, something like changing the cancel key or adding cursor with hold affects a lot more clients than adding CopyBoth that is only triggered by a very specific command in a special mode. And it's not that theoretically appealing to conflate the *protocol* version number with the *server* version number. Sometimes things that are not theoretically appealing are nonetheless pragmatically appealing. But it is not really clear to me whether this is one of those cases, and it sounds like Tom and Jacob think it isn't. I could probably be persuaded either way on the best thing to do here in a vacuum, but I'm strongly disinclined to argue against two committers who have a firm position on the topic already. I think what I like least about this proposal is the feeling that we're about to embark on a long slippery slope of changing the protocol a little bit in every new PG version. The cancel key thing is a small change, look here's another. If we just keep doing that, we'll end up with either a lot of minor version bumps or a lot of extensions. I don't foresee a good outcome either way. This is a widely used, widely adopted protocol. The idea that we can just start tweaking it a little bit every year and have nothing bad happened seems wild, regardless of how we do the tweaking. > As for proxies or "middleboxes" I will concede that not advertising that = we are going to change that message is a non-starter Yeah. --=20 Robert Haas EDB: http://www.enterprisedb.com