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 1wDZvP-00384l-1W for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Apr 2026 03:31:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wDZvO-007pd1-0H for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Apr 2026 03:31:22 +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 1wDZvN-007pct-2T for pgsql-hackers@lists.postgresql.org; Fri, 17 Apr 2026 03:31:21 +0000 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wDZvL-00000001ZGS-1CJv for pgsql-hackers@lists.postgresql.org; Fri, 17 Apr 2026 03:31:21 +0000 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-35e563b0ee7so117227a91.1 for ; Thu, 16 Apr 2026 20:31:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776396677; cv=none; d=google.com; s=arc-20240605; b=iYkfZnactElFD2N/KxjZ4LNNMotEsD/LVNU4CJOdwYraue3tI6zgZNSGwUaGWAUF4g M/zqG/U1AsPt8Hu4kRd5BvNQsb9K4MuH14aNGCQOyiXtAz4iAEDQR9Wo1fy0kmAOUMnq 0lelzYN6BgZGllLZu9Q+Hs9Dd1qQtBQZkNaANWLXGMN/yq3grxjZZ3IpVJl2ExLs8tRZ 8QZeYvziEjizKVvTI9UdQU74q9JKozkZcEiS3/jCxZq1Up5VEiq8TkVGFTs3CZmmqSEm ogOro7C3Pr+fdVpXJEaeH6sxxzCN0svp+J07u41u2RRz/9tuGOlgcgIBli3CFXWFBqab LEaQ== 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:in-reply-to:references :mime-version:dkim-signature; bh=v2ZW9zN6fMbMLpNWHha+n9jQqhPCeGky3HdNUDRfwbI=; fh=pQw9Pdr2sL85LMV0vnqRX+X4mLaMaqrLijHcXqfCl3c=; b=ZpBetEujmCR4W+anGR9SQiAEmgeVobK5RFULODiDXQ3b6JySCVrAlcoa6bxLdQ4FCs +bpnaMuMflbnAKjp/AAq/55O18LgDCYRI6hCtbfffC6aq95McHMeqUsd8pxZJZqs8l9G TA75vtd4nQnigCtI929VpIGIwsKeAbSan012LE9fdBuVOayrqDIw0EMPZft76tIADTZS vk95NAEVVxMAnUNPVUyFQOIckSuh/CB1xM0XcqRhXTwELUWq5LvtANf7VuM5JsKc13Aq sCLhR9q6yO5RTHxMOucuUwwo5qQnkq7hvPzZmLSldMXi9M1/wTo+RBsMZzBwcnRmFMrR QkeA==; 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=1776396677; x=1777001477; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=v2ZW9zN6fMbMLpNWHha+n9jQqhPCeGky3HdNUDRfwbI=; b=Nun2kVZYbKqph9pmYb9E8CsQz76/IvykcShlVmmg6n5cmkWV3f6Cq+whHFDTR9laLe 2lObv7/5s0bzp//zPZCKC0+BdQwblC62YPRK41oI33H+aFRC7ja1D3bZu/LPSiuEuUiV Df22447855cLLbmRLTfSsadTph4hB2sqYOXNwxEN9nSQH2vSSH47vsvl3TTtm/2qet7o jQnV/Vvqf1grM6cicAy6gKIS95gEk9ndXT+7TspK/x5od8KQ6eRLTs8Umli+OF35mtVX 82YvnOuxNAQc7GXepOjSKOeGKsgThmd7nRce1tTz+WPN8XSsGkd4UiGF7TD7ARefjqtD 9/lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776396677; x=1777001477; h=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=v2ZW9zN6fMbMLpNWHha+n9jQqhPCeGky3HdNUDRfwbI=; b=qmkiUeNrqicEaM8jDSBsFV1Oy+mrhwzHIrLbscbBLNZSyZx7NrVzg8hqBhDtkHgfpE vhzG35sup/XxUnpFr+saxoUwDu8YTiwG1ql6nmQ3GqN1+8Gf2UhHKeVN6jUEMDpBBsMI /bGYVxpE67F7QmSeCtl3Di6PhDojMtWoaT0GeJMOpLZv4QKSxTm9anwkO+GYjYLXf6fp CNES2wq+A8kktspmAumYx/7BqW1u6+TIUe8UsnJNIFemViU90pAdBuQnxpMKxnDQhDxa XeDeue9TjDoec6g/R06qBjCBHKiqUjRHEqAg5ATdibI+/13jJKnk9pEl9lw4CK1peeLP qGXg== X-Forwarded-Encrypted: i=1; AFNElJ+YPRS6HYh27bpPcLTeQ0XKeSqIFXW0WxlAGtRrL45l1DSyiiBazWQAsWbwONg59wlKYeKG8q2dekCIP3GJ@lists.postgresql.org X-Gm-Message-State: AOJu0Yzx6Q43wRm/DTiaC7Md/gp3xsLgsB14bP3pRaC9OkuAS8kgDyYZ kYfKY8G6eten5VzXgtR7H2q7ev1lpv0yEzr1OmbuQCRJKngxE0HrJEXr/nYU05kmHkfdb60gq// hW3agPFNb2RxLs9IcubydMZ0M+vbB4Bs= X-Gm-Gg: AeBDieviwR9WQyPSjiKvvxtHdTNipCYdquYJmDOsxgnAmt20wkEyTxmt+rhPfkh2YHr 4E24ptaJBZh+XmRpGbQKIyIlohn8oBX3f8vH5hGkFgvqx0Rytxpx7tbSbu86m748EwrBfjItU3o gReJqbDWG+QfM2xyfFSkvFAzOofb/Ol2UrfYR1CpxjgmiKDgSo3x4B0OuQSFlJHZkbUZdHt9XJ2 7mClAPXixuusZBnx6hQ79GvFC6/AKOwhIHh8BJ5K4lnD54njzpK1KPgmUlnPfVqVSjNPzspN75x ZGNgj2XB3cCfMdJHeSx8kiwfXa2a9FTYz2YOf79zztCC3d1Zfh2FQZWBZsNCT37JMICJzcerus4 = X-Received: by 2002:a17:90b:380c:b0:35f:bc9f:e1b6 with SMTP id 98e67ed59e1d1-3613ffce9b0mr909941a91.1.1776396676687; Thu, 16 Apr 2026 20:31:16 -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 12:30:59 +0900 X-Gm-Features: AQROBzC9RefncEeJfK7E_STBVjt8bxGlq9s_GFfomua4fow-707ywQooJajB0KM Message-ID: Subject: Re: Reject invalid databases in pg_get_database_ddl() To: Hu Xunqi Cc: Euler Taveira , Lakshmi N , "pgsql-hackers@lists.postgresql.org" , Andrew Dunstan Content-Type: multipart/mixed; boundary="000000000000e5015e064f9f9433" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e5015e064f9f9433 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Fri, Apr 17, 2026 at 11:49=E2=80=AFAM Hu Xunqi wr= ote: > On Fri, Apr 17, 2026 at 10:16=E2=80=AFAM Amit Langote wrote: > + /* > + * Reject invalid databases: datconnlimit =3D -2 would be emitted= as > + * CONNECTION LIMIT =3D -2, which cannot be executed. > + */ > > This comment looks a bit too centered on datconnlimit=3D-2, but the real = issue is that an invalid pg_database row should not be deparsed into DDL. S= o, maybe rephrase like: > > /* > * Reject invalid databases. Deparsing a pg_database row in invalid state > * 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. --=20 Thanks, Amit Langote --000000000000e5015e064f9f9433 Content-Type: application/octet-stream; name="v4-0001-Reject-invalid-databases-in-pg_get_database_ddl.patch" Content-Disposition: attachment; filename="v4-0001-Reject-invalid-databases-in-pg_get_database_ddl.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo2cl0x60 RnJvbSAzZDg4OTkwOTNhMGYwN2UwMjM3MTFjOTZjNDc0MWQ2ZmI0MGVjYmE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbWl0IExhbmdvdGUgPGFtaXRsYW5AcG9zdGdyZXNxbC5vcmc+ CkRhdGU6IEZyaSwgMTcgQXByIDIwMjYgMTI6MjY6MjIgKzA5MDAKU3ViamVjdDogW1BBVENIIHY0 XSBSZWplY3QgaW52YWxpZCBkYXRhYmFzZXMgaW4gcGdfZ2V0X2RhdGFiYXNlX2RkbCgpCgpBbiBp bnZhbGlkIGRhdGFiYXNlIGhhcyBkYXRjb25ubGltaXQgc2V0IHRvIC0yLiAgcGdfZ2V0X2RhdGFi YXNlX2RkbCgpCmVtaXRzIHRoaXMgdmVyYmF0aW0gYXMgQ09OTkVDVElPTiBMSU1JVCA9IC0yLCB3 aGljaCBBTFRFUiBEQVRBQkFTRQpyZWplY3RzLiAgRXJyb3Igb3V0IGVhcmx5IGluc3RlYWQuCgpS ZXBvcnRlZC1ieTogTGFrc2htaSBOIDxsYWtzaG1pbi5qaHNAZ21haWwuY29tPgpBdXRob3I6IExh a3NobWkgTiA8bGFrc2htaW4uamhzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFtaXQgTGFuZ290 ZSA8YW1pdGxhbmdvdGUwOUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBFdWxlciBUYXZlaXJhIDxl dWxlckBldWxlcnRvLmNvbT4KUmV2aWV3ZWQtYnk6IEh1IFh1bnFpIDxodXh1bnFpLjA4QGdtYWls LmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQSszaV9NOG0xazJnRmNoK3RV MEptQVFoOUZSVitwRnJmVFhEckpvK0JxbXdzVG1PaGdAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvZGRsdXRpbHMuYyB8IDEwICsrKysrKysrKysKIDEgZmlsZSBjaGFu Z2VkLCAxMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2RkbHV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGRsdXRpbHMuYwppbmRleCBjNGY5 Zjg2YzQzZS4uZDgzY2RhMzM0MmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9k ZGx1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kZGx1dGlscy5jCkBAIC04ODcs NiArODg3LDE2IEBAIHBnX2dldF9kYXRhYmFzZV9kZGxfaW50ZXJuYWwoT2lkIGRiaWQsIGJvb2wg cHJldHR5LAogCWRiZm9ybSA9IChGb3JtX3BnX2RhdGFiYXNlKSBHRVRTVFJVQ1QodHVwbGUpOwog CWRibmFtZSA9IHBzdHJkdXAoTmFtZVN0cihkYmZvcm0tPmRhdG5hbWUpKTsKIAorCS8qCisJICog UmVqZWN0IGludmFsaWQgZGF0YWJhc2VzLiBEZXBhcnNpbmcgYSBwZ19kYXRhYmFzZSByb3cgaW4g aW52YWxpZCBzdGF0ZQorCSAqIGNhbiBwcm9kdWNlIFNRTCB0aGF0IGlzIG5vdCBleGVjdXRhYmxl LCBzdWNoIGFzIENPTk5FQ1RJT04gTElNSVQgPSAtMi4KKwkgKi8KKwlpZiAoZGF0YWJhc2VfaXNf aW52YWxpZF9mb3JtKGRiZm9ybSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJS Q09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJIGVycm1zZygiY2Fu bm90IGdlbmVyYXRlIERETCBmb3IgaW52YWxpZCBkYXRhYmFzZSBcIiVzXCIiLAorCQkJCQkJZGJu YW1lKSkpOworCiAJLyoKIAkgKiBXZSBkb24ndCBzdXBwb3J0IGdlbmVyYXRpbmcgRERMIGZvciBz eXN0ZW0gZGF0YWJhc2VzLiAgVGhlIHByaW1hcnkKIAkgKiByZWFzb24gZm9yIHRoaXMgaXMgdGhh dCB1c2VycyBzaG91bGRuJ3QgYmUgcmVjcmVhdGluZyB0aGVtLgotLSAKMi40Ny4zCgo= --000000000000e5015e064f9f9433--