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 1wAI0r-002EvF-2Z for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Apr 2026 01:47:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wAHzq-003nGH-30 for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Apr 2026 01:46:23 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wAHzq-003nG7-23 for pgsql-hackers@lists.postgresql.org; Wed, 08 Apr 2026 01:46:23 +0000 Received: from mail-yx1-xb12c.google.com ([2607:f8b0:4864:20::b12c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wAHzo-000000018Zb-2iy2 for pgsql-hackers@lists.postgresql.org; Wed, 08 Apr 2026 01:46:21 +0000 Received: by mail-yx1-xb12c.google.com with SMTP id 956f58d0204a3-64ee82e853cso4381184d50.3 for ; Tue, 07 Apr 2026 18:46:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775612779; cv=none; d=google.com; s=arc-20240605; b=IhnNrk+7XeDyfImU8URndUsNX7DhvKjUp4UOPUcYrPW5z6+tCH3rrf009BmXd0oqcR ncs7Utx/vP4YtabQWLKXFuD1MMTgKfqcSyN/MJMImev+urJ5LmOpoCWJSQgVxFCkmM6I YBUqmNfoJtz0yXUGuZPDnyoWU9c9AQwCIt9Y6tmTsGDmhgex3IFQStYu/gCgOUzLBiYc Ox6dsQuyoEzJebbLRBcRBlcqK7bUCZBBpk2ueF5kGR8G11GtRw3xlrRI88psJHR2aTAa f+eb0BGdIapuhTRSJr0dONpTckDkv0zxXcH344QJVogmfKurtdRi1g8qQdDxQbav/KHh mvzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:references:in-reply-to :mime-version:dkim-signature; bh=TONiLm8ri394jXiAhYAtHSabKkB7B+5a5qrIJBKC43c=; fh=BgXA3ro2BuiYrZEGbi/cOg7+N5H83yuk3Y0I12KMwxA=; b=emtkrnhjIdLRl0QbSakkL2dUC/sGw6yLIA95e7mO70pu0P428MzchgDssW1+6htGX/ E5wIObZooPZ6yMN+ctimrsJ1jJcsZJNLsVqdvhCRwMKLhRRWeUelr6N6a7wZasDazlXy 5scyvV+hdBu3IWDLtREaacH/Sx/7UmnD4BXCGPA9jg3vAiUwzzVu/50y28k7ebianJU4 VAyHitGawZgxVOh/cB0GWBEnauc3u1wQq5IC2t204npg/OwzJBrp6Ttd+IhL4z3YIA2n tZfhthqNI0i/hbX/YAYGDdUKPUSmxm9DbwLHkaH6nJ0s1OAqmvF3eTOwrqdlZs6S9z3r 8FyQ==; 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=20251104; t=1775612779; x=1776217579; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:references:in-reply-to :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=TONiLm8ri394jXiAhYAtHSabKkB7B+5a5qrIJBKC43c=; b=patCcpApQpP0YPepUkxPTHbb8myMaDBakFyqfiiOviE9JU02kyjrzsfFzUY15WZTgz JKlwYUTGzl/xd7P5a7fx2kexuqCtvByWin5w+5Hd0We5yHWhxtAjzWTRlNWRFQ8Dipp2 A+NEfZLF2K4FklxyokuZTjPYG/sI3QgE8/oqiyWe+dZbk2+hkiRjAES4HxPhFznmfUgE w8mnSxRCrvXSdnVJuw/+jzdje2BwWqILYuy/VgDukGp4Qp614A2lZopUst/aidAKNig/ cJ7LLXarW718M+eRkIJyksIuOAU+1QEmnCdpEAvN0j19EWXYYrKto3Qoug9QxwaxKHZr cxfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775612779; x=1776217579; h=cc:to:subject:message-id:date:from:references:in-reply-to :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=TONiLm8ri394jXiAhYAtHSabKkB7B+5a5qrIJBKC43c=; b=snPc9zz0UD0NHt9Mqcfgtvq0xhv46aiP5s+JhMpbeHvM//ldFdOWztvtkzB4npeb1E vvvR88Ml+3vh5NmuI/zk+2EGLyxL3L0MIxVAOgLQlckIJCl5L/hKWcGHst6ivTBaT078 O2sVpNfFPvWPntzK/3/r6nmMuBlTiw1Wl7HCkrm+qINjDLCloCzcKfbqGnDswKKj9FmZ oPosZFvF9M6nMoUH873nzkQS6WkivrbY9SCxzl0qV9ndVLy+izyKQpRVN6ta/GSrx9vI T0tpijgcNqyDvd1QLuSPrOPnz/5AMb5LYdMpWXnkXIoEHCDEr8W2cOz8uPbCfke8EpAh tvQg== X-Forwarded-Encrypted: i=1; AJvYcCUslPNvUKDBOxUtSjskgsEVWbDhQpL/EGI1GCrz07PQYW8TlGGSIqQ+5PAvhekbKjPoAX7Q2BfsLvl4ePwu@lists.postgresql.org X-Gm-Message-State: AOJu0Yzn9zxY94LzJmY8MWpoUt/CnquY97tmD5ZVQd7bD3Gs+ZjeP/Fc iy/KaukY72yL5ROu1vVxsHK0oRVlv7FIP+XFcoVbjL20vE8vyXH+4Rq1rdMexZtBcezvUiXn7g8 es1lOToWQgMqEB4cOh3ygoBF3ozg/yZI= X-Gm-Gg: AeBDievtLcNnKwQE0u3n99ltxx4FZvQ9xCt2O3JuysDU9LFn59nyNNkQeeQi3969BU6 p8AOxC9bK4oGT4bqu6Pshrd8oWe7nHApXIGul6+Bh0i+cUk4d2oKtkBdsxPuaDI9Fd80dtXJ57t WrbmTd3xpqgfrZD0uthKi3lj635v7MaaNxmcBkIxVsWrZGW/0qb9PDCTN9ytGPEj2J36Gm4/C9+ xXhdyIqUbKNsLFyU7vwUAW+QnXo3SU14AiBZPvoeX0VbP6i7mPqpD/00C/oXM3/zbq+dlhwtSZE 4PKrQOPi X-Received: by 2002:a53:ba89:0:b0:650:3952:3d3d with SMTP id 956f58d0204a3-65048828f7dmr14833623d50.44.1775612779310; Tue, 07 Apr 2026 18:46:19 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a05:7010:4e1c:b0:50c:3201:6ecc with HTTP; Tue, 7 Apr 2026 18:46:17 -0700 (PDT) In-Reply-To: <576EE368-AFB1-4375-BB77-A04CE92CC2A4@gmail.com> References: <6de20662-36fd-4e00-a0b0-75d1e9deb5c8@proxel.se> <9e3ad0f4-c4ef-436b-a5a1-28f600d76a61@proxel.se> <576EE368-AFB1-4375-BB77-A04CE92CC2A4@gmail.com> From: "David G. Johnston" Date: Tue, 7 Apr 2026 18:46:17 -0700 X-Gm-Features: AQROBzD8VZC-CXU-ATje2AKeK0EOqOlJGGYk9eNuBHZaopfxLJFJgYcBkMHvgjk Message-ID: Subject: Re: updates for handling optional argument in system functions To: Chao Li Cc: Mark Wong , Andreas Karlsson , "pgsql-hackers@lists.postgresql.org" Content-Type: multipart/alternative; boundary="000000000000f832b7064ee9107a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f832b7064ee9107a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tuesday, April 7, 2026, Chao Li wrote: > > We can clearly see ":expr {FUNCEXPR :funcid 1573 =E2=80=9C. > > With this patch, will that view break? How would users find all such > broken views? Maybe PostgreSQL already has some recommended way to handle > this kind of situation that I am not aware of? > pg_dump resolves oid=3D1573 and produces a textual SQL representation, whic= h is then executed during pg_restore. This happens manually, and also automatically by pg_upgrade. Since the text form hasn=E2=80=99t changed th= e view is still valid in v19. You would see the new oid if inspecting the rule after the upgrade. So yes, the public serialization format being SQL and thus mandatory new object creation during upgrade is the way PostgreSQL handles implementation detail isolation. David J. --000000000000f832b7064ee9107a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tuesday, April 7, 2026, Chao Li <li.evan.chao@gmail.com> wrote:

We can clearly see ":expr {FUNCEXPR :funcid 1573 =E2=80=9C.

With this patch, will that view break? How would users find all such broken= views? Maybe PostgreSQL already has some recommended way to handle this ki= nd of situation that I am not aware of?

pg_dump resolves oid=3D1573 and produces a= textual SQL representation, which is then executed during pg_restore.=C2= =A0 This happens manually, and also automatically by pg_upgrade.=C2=A0 Sinc= e the text form hasn=E2=80=99t changed the view is still valid in v19.=C2= =A0 You would see the new oid if inspecting the rule after the upgrade.

So yes, the public serialization format being SQL and= thus mandatory new object creation during upgrade is the way PostgreSQL ha= ndles implementation detail isolation.

David J.

--000000000000f832b7064ee9107a--