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.94.2) (envelope-from ) id 1tgOC2-00AFtu-GV for pgsql-hackers@arkaria.postgresql.org; Fri, 07 Feb 2025 13:14:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tgOC0-001QdS-St for pgsql-hackers@arkaria.postgresql.org; Fri, 07 Feb 2025 13:14:48 +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.94.2) (envelope-from ) id 1tgOC0-001QdK-72 for pgsql-hackers@lists.postgresql.org; Fri, 07 Feb 2025 13:14:48 +0000 Received: from mail-ua1-x92b.google.com ([2607:f8b0:4864:20::92b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tgOBx-003lzg-35 for pgsql-hackers@lists.postgresql.org; Fri, 07 Feb 2025 13:14:47 +0000 Received: by mail-ua1-x92b.google.com with SMTP id a1e0cc1a2514c-866faa61728so984460241.2 for ; Fri, 07 Feb 2025 05:14:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738934085; x=1739538885; 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=udgAvWnc6DDixABlQLFKt514yB7kRLJLG96Lh4oJ9NA=; b=m918MMOM1ZQt11/KC4Uh2gJMy4Zo2PKVM3OJR790F/scGVCQ3ky+aJEQ43z6v8CFpD PZtY7cwB48Y/tE1BA3ucG32lVHwkhRp3emyVGg8muWKVx7H1zvUAHFKlmtXYr1b6Hr9q z5qCKCwljN7L+QbJtyQoavdP0QabZCEmh5zwnfGifzfKnWGGNzKkH5EA9/TcWg1uu+2C iBRtgSLUTMSXt65SocpUaFjnugqgXVP20kMvnV7JmSR4BZL0dwSD8q0hah+PyQFqJXgb IHFm1aXrvaYy9u+TcVASLxx1q9Vt9rsmJ5mOn6kwT4qHuuh5JWNZA3FyW22Jwe65W6eT uAYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738934085; x=1739538885; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=udgAvWnc6DDixABlQLFKt514yB7kRLJLG96Lh4oJ9NA=; b=OSuZmSS4Dr8geqhbad3pBn1RXzOeHwxmb0IJDRzFvreOAmWH512QBaK1Id7liw5xWV fZ2vNpEnlEDdiTu/7bKlo3mj2oG/le6H5ZdBQYJmf66J2V1INA44bhJsmj+OK1eRypvW GJ3jh+mcXszO+MabWvan+cp/a3+X3QKT1OSgoSCxeP36J7+pfDntHgHle03WQ9pKGHeN xLl2NgWX0RBAerhhCY+iCYE2BLE67FcWyaYj0InSxX62HcUkha4yXEiQFvb0w8kxmKWZ shiZKwmXy7kJ2c97kImR75m6rXviT0xyzqdHEsPIsGQs0HvQFjF/xMC2ykheYSaUxy9C YWUw== X-Forwarded-Encrypted: i=1; AJvYcCVUktGakvpCdFp6cc8tglyL4aU12h27QGdx1xaZwExKYFng5xWzAIG2VaJyhOVFcV7XVj+4KDWp17IDY2At@lists.postgresql.org X-Gm-Message-State: AOJu0YxnRUYvw7NG/GBQLtZqIPrV4Y9azsrzK/kDhozvFeAqWXZUPwNt Nto8Bjxt0TvUKfy9aAj8sdN1LUvWTBfS+kU0xhuBRBzz+CQCdpgx8ldQ2Eo2bpb/aE8kQx2MjGu 4I2S/IUOQgPNLPh4NV1O6Cqz4Uq4= X-Gm-Gg: ASbGncv57EAD2c+cvntwymiT6sKFNR11OOH92/XdjYcuxmdWri+mKeqEFPH1pYwvx+6 Yi8p6JL9HYK3MinyJWUGubsXApuVd/TGopHxxY9sIIfNO+Xh/DGSqqv9ZaEbxFpqzGJSa1tDmrr H4IxsIZivzpC4+xec+aAC+dgXW1Sxt X-Google-Smtp-Source: AGHT+IE9vJDSZrrW+wapUjMri6InCv5E5YK9WrS+Z3EUCOtfIgjw0lnLDzWef292nCb6H41PMVdd0cbp0ud+IIdZdn4= X-Received: by 2002:a05:6122:2191:b0:518:91b3:5e37 with SMTP id 71dfb90a1353d-51f2e10befcmr2056697e0c.5.1738934085294; Fri, 07 Feb 2025 05:14:45 -0800 (PST) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> <20241120201313.t4wbhld4ktgielaf@erthalion.local> In-Reply-To: From: jian he Date: Fri, 7 Feb 2025 21:14:09 +0800 X-Gm-Features: AWEUYZn8dDzPLFJMUFqKjIV-QS-SIbssH7x74Eb5vb5ikSXlUl7G6xMevC33n3Q Message-ID: Subject: Re: Re: proposal: schema variables To: Pavel Stehule Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers 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 Fri, Feb 7, 2025 at 3:25=E2=80=AFPM Pavel Stehule wrote: > Hi The following review is based on v20250117. pg_dump order seems not right. CREATE FUNCTION public.test11(text) RETURNS text LANGUAGE sql AS $$select v4 $$; CREATE VARIABLE public.v4 AS text; first dump function then variable. restore would fail. we should first dump variables then function. probably placed it right after CREATE DOMAIN/CREATE TYPE drop table if exists t3; create variable v4 as text; let v4 =3D 'hello'; CREATE TABLE t3 (a timestamp, v4 text); INSERT INTO t3 SELECT i FROM generate_series('2020-01-01'::timestamp, '2020-12-31'::timestamp, '10 minute'::interval) s(i); ANALYZE t3; create or replace function test11(text) returns text as $$select v4 $$ language sql; CREATE STATISTICS s4 (ndistinct) ON test11(v4), test11(v4 || 'h') FROM t3; this "CREATE STATISTICS s4..." should error out? any objects built on top of functions that use variables should be marked as volatile. and we should also consider the implications of it.