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 1wDaj1-0039JS-1o for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Apr 2026 04:22:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wDaj0-00887v-2i for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Apr 2026 04:22:38 +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 1wDaj0-00887n-1o for pgsql-hackers@lists.postgresql.org; Fri, 17 Apr 2026 04:22:38 +0000 Received: from mail-pg1-x52c.google.com ([2607:f8b0:4864:20::52c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wDaiy-00000001Pw9-2GVp for pgsql-hackers@lists.postgresql.org; Fri, 17 Apr 2026 04:22:37 +0000 Received: by mail-pg1-x52c.google.com with SMTP id 41be03b00d2f7-c70e27e2b74so83436a12.0 for ; Thu, 16 Apr 2026 21:22:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776399756; cv=none; d=google.com; s=arc-20240605; b=BEu+Cz+VenyzaW+lCyjQeFMa1XWBlsR0RKw67V0wxZwTusxA5NTPRz+OkbOrs216cw 7y//oo/Tn7VUNpZEXz9DMjeWpFiB/vQrCemc2ZqHvBrqj3shb85At65AXwP5gP9QQoNw kWfstiQvTwoNWxR7CjXHZBC5MiWGS9wLG1O3zP/VhYC0L7TkzEzbmgjNCvG6VWOdInlp aCVDPl5BNPLbfGVzBQ5mcj2mR4QCwNeWxXt+A1qf0lzfEL6O4KKuhTyHqWhgzPQc8B74 qkcYmp6zqQlNfeFukLkp4nBLnrdsoaFhAIEJLzo292Utcu5K92T31aKyjkAchQ4hgU8m xJ7A== 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=/BORauAmq/Bkb/reEk27hEs9fbndE9U9K/VKowNBQ30=; fh=93I5AeXBlpTMcfwZNMZjhBO2ydM2QQgJOPu51KrSA84=; b=fPeIvjNniH2lk7bGg+fpRxXyh5+dYVHXtbAkcNOSb5mmWjwPzDxy9Z3uJWV8A2YQtu E/z+hEbeCH079+JDc9PkNkcyGmht9xOR2Y0yRmXnFGekSkyLLF+RfjV+g2aV9s2YwVVL DZrVQ0LzLO/3R9uywrMgg8xp4ObMBCTh9iLJ9DpK3y/H7Mpou6AlPMx+SYCnSShyyIav 5oKuJP/NAn/tB+whx7BocIiMtWkdUXIYCLP6JdPi2jYnDJQRuSGHmT4OEULsq5oSI54N Gvd5xXojd56z1wYawlmshzlkMZmuMDZ9ToLJWpEMChWardjMiPesK7d+ZlYGgt+ELGb0 B6Rw==; 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=1776399756; x=1777004556; 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=/BORauAmq/Bkb/reEk27hEs9fbndE9U9K/VKowNBQ30=; b=DEVNaOU2bRKBhlj8p70qHxKtaVXzDhwZPTaPA4LDtIu7Y+yrIwlPpwG9XEE4pID2by irHuMdupT3WMfI7QC8UuMp6AemfdgWiaFDBzVSIuuDt5XWimtEU72hcGU43ndm/Oj81V voe/asJuTn7gsN+L/2zoSrCznGIhCnFaJrK1uy6a2paqO9p+QQmoQPPJU+8kb/iEqVrO fxkwyo7jKduV156cbRC6zLv1zH7z5M2SO6mr2swGe2dBnw7FiD58Jk2jxd4qZAGkzD5y FENI4Rvn9eeRysp9IBGP+cA2OyKgS+2HuVpb+ohkbTp2kWaPVK4l/KjToZMnU9DwCwIy suXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776399756; x=1777004556; 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=/BORauAmq/Bkb/reEk27hEs9fbndE9U9K/VKowNBQ30=; b=Qw22yrfuKxRPLDXAY0+zN6INfOcu7E20Bu4STMDQJPl9XUIaEcOBR2YYOqyCeglj0w m+dxknmXKPCfmwDW76lZG0ScvOtLWPFue8hHbWf12ryTD8Z8l4pJO0BbO0xBANsXXIZL wsU9I3QcxCoyeYw/6kE3lVcnGrEJy+CBFzbMN1QVu0hRv22p4nZhLu09N9SBJUnnczv/ gff1yljJf4mWz0IWbXOgEkFZWZJB+ylOfiiP0j2lmR54jaVkgLIgj8/0eSXh5MsyWVkx pgCuMZuJ4mm+x1oowFxQxNylCd7JHUvgJkVQkwsFIUyAL96QaMojx4AUO5zEXZa7PtZQ Wb8g== X-Forwarded-Encrypted: i=1; AFNElJ+8ogeRuXd5mGp4TGfaE80U2jJMLttvGTxiBj258UFqw4m4yACF7VrsF3SgMOAUJqbcQDa9MAJGDk49oKGv@lists.postgresql.org X-Gm-Message-State: AOJu0YwiZla2i05e69S4Ad9LVPyEDp6xTUk1CWCiWU/nRq0lJWlI33e9 UI5YjZlZPNpayMPLPNNAZ7HO9jo+RdZLiRLiFadRAr1SXvUzo0w8j+3+1Acr15lkQIINH0T0mz5 z7GGDQT0y79VCKV65L78G3wlxinnaK5M= X-Gm-Gg: AeBDieskJ0LY0LEZpp7ouhO6mDq1JL5FkvwKj60tAPa+Z6repEpBItA7Hd90/rjH4JL W1Mb/TA1rOF9w311aGvmyErWY64GFn6Z2tUEUIh62R9eU47KYDu8aOJ9DrYxFKEVJ3U6F+JRP8C WIXhmWmAVxos8s8AnwVAr4ejQD+985Dihh55e0uzNXfa4qlo6b0NQGf2MmQ52qgC8Ttc2YmFwYX 2rixDyB68UyLq46k2nbm8OmCkLyVkWpMR8E4FzGDcOID9hdFXbgEBBMyjejNqrnuHBBUdVdzVwQ 8YPv402jBF4jFOSC9nehsfU9wutzZrrE/tpip8w6D0TgNeLEsHQQ+yTSn1b40SX/NXEnQcANCY4 DpxfC5jGgAQ== X-Received: by 2002:a05:6a20:e210:b0:398:7ffe:472f with SMTP id adf61e73a8af0-3a08d67da3emr1305227637.2.1776399755885; Thu, 16 Apr 2026 21:22:35 -0700 (PDT) MIME-Version: 1.0 References: <976a432b-9221-4825-8e8f-41f4375737fe@app.fastmail.com> In-Reply-To: From: Amit Langote Date: Fri, 17 Apr 2026 13:22:19 +0900 X-Gm-Features: AQROBzBx2jvxb5S5ANSx999oQJJLjvWGCchXUznOzCAl4H_ir1yFSZdrb4R9vik Message-ID: Subject: Re: Reject invalid databases in pg_get_database_ddl() To: Lakshmi N Cc: Hu Xunqi , Euler Taveira , "pgsql-hackers@lists.postgresql.org" , Andrew Dunstan 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, Apr 17, 2026 at 1:21=E2=80=AFPM Lakshmi N = wrote: > On Thu, Apr 16, 2026 at 8:31=E2=80=AFPM Amit Langote wrote: >> On Fri, Apr 17, 2026 at 11:49=E2=80=AFAM Hu Xunqi = wrote: >> > On Fri, Apr 17, 2026 at 10:16=E2=80=AFAM Amit Langote wrote: >> > + /* >> > + * Reject invalid databases: datconnlimit =3D -2 would be emit= ted as >> > + * CONNECTION LIMIT =3D -2, which cannot be executed. >> > + */ >> > >> > This comment looks a bit too centered on datconnlimit=3D-2, but the re= al issue is that an invalid pg_database row should not be deparsed into DDL= . So, maybe rephrase like: >> > >> > /* >> > * Reject invalid databases. Deparsing a pg_database row in invalid sta= te >> > * can produce SQL that is not executable, such as CONNECTION LIMIT =3D= -2. >> > */ >> >> I was trying to be precise about datconnlimit =3D -2 being the thing >> that produces invalid SQL. But your version covers that with the "such >> as CONNECTION LIMIT =3D -2" example, and it's closer to the original, >> which was on the right track, just needed to be more precise. Let's go >> with it. > > This looks good to me. Thank you for reviewing and making the changes! Pushed. --=20 Thanks, Amit Langote