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 1wDYkU-0036UT-2b for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Apr 2026 02:16:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wDYkT-007aM1-2t for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Apr 2026 02:16:01 +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 1wDYkT-007aLt-1r for pgsql-hackers@lists.postgresql.org; Fri, 17 Apr 2026 02:16:01 +0000 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wDYkR-00000001XOr-0uu2 for pgsql-hackers@lists.postgresql.org; Fri, 17 Apr 2026 02:16:01 +0000 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-35da9c0c007so227337a91.2 for ; Thu, 16 Apr 2026 19:15:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776392157; cv=none; d=google.com; s=arc-20240605; b=UxCmtAzbKYkeoANG9f+Wu4YNtTeE/iARpJuWTA71+Kd+YSo8Vbna3SDrNQLKlGztFA VfpvcGgmdO2S11rZx2eDkMDOu0REzOsJ3zdvs34WKZx8uwDxxswbEPgsL3ERyBVGEV53 OMMeK+6MrsU5AKQweTlI3vdodUbq5eijT2r7wc1lVPipVMveD0BL4tK8307rFV4QnNOL F5IeMdqT1cDXC0Ov4bplQJezS44A09dB0LjFi/LSGewVZgkkiKJu3puU34HjVNCyJRzK 8E91iJUIbt5vqM7MKJCb9XU6hybVE/kwmPEb+VUJgaZvqoLJMXiindAShzpMlg1tWcS/ 2D9A== 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=WUuLhYEJzuhYGs6z4VsVpuSfYeePPm5/vu7zVCPE5MQ=; fh=jmSiUNGxCaLGlPyl3v4U6ic2mzQ/hrw+L9qGMAcSNY8=; b=aFBeUikGbBiDzpYbmF4XsCiqDULhg7n3MaNy6EcyDNW/ZgOy39pSbzO87So+TXx0nz XK9ScaD44HRI7OJJ0VzJug+2I3b4VlY7XSlfQid4ochdld05nA47EyX7qF5ir9IJt0H9 uIQRPXXjRGgD5B3yFgecp0C4wvupDNE/dtUg/pGCFFVQ44MuAWALmN5iTyFVqh6UwHOG 2KOg+fk8Hf3hVkI7GpAG2LAVNYHg2lTWyLfOsmhicQIis+h+jcjnjp1OpzdOl1/QgmVY 3WfPYtHOWDFJRiOwGSfrYJ7TzTvHdbf6jaE8KBCPwfjRsDe/mlV4LDzGGK4KGxSm5Qip BbiQ==; 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=1776392157; x=1776996957; 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=WUuLhYEJzuhYGs6z4VsVpuSfYeePPm5/vu7zVCPE5MQ=; b=AH0f9jZibgCGCURs+M2fGp8EfElBq21x+K7V5GRl4qNTSwF7Y+bVn8pOHpkaGsLzXj VKbpFWrqOi1JCKUHhbeUJY4Y9g/cI7mN/U2ofQiapsjlLr0Ac2epOIEinNp+X3g5lotQ 6W1uRQkxUAs5jZ3cfmRdQH15ZKxFenn5UOYFL0RRoWYN5qN60HjaHbmRh/dkGp7L8mEb cC7mtHfD4zYl522OxjlCABSXRp0YmjbaVs8JxNHcuOliftHiCcOTNADauhdOg0/HyEHW fb4qE+JekijtSwaSsRilAhoEjXOO4Jiz4HtdEOhPHxc1gNNOui9WVEUIf9TPo7WHl6uz rhKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776392157; x=1776996957; 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=WUuLhYEJzuhYGs6z4VsVpuSfYeePPm5/vu7zVCPE5MQ=; b=o6g8/HOB7QsxRUX97ivUB899sIBNSLbiCtc3xUPH//yx1iZWMHEVjTGr1CScMkuLGH 5WXDjgkDoNwK9Pb8EjW9Kk/YV3WTiR/c0horqETY+hQ1Ysf5uXvZlZJy5RWFmBxvYNOL 3rWw5Lz+pphlHR/5EgYzN3kPemFEyv1ikSS2ZBk8QXZezDrgtLojvW+KwN9r3x4lUMqB 6oRror04P1OAX2O1xmw1Q2z65qxNlgnL6/HseqeL93TDhbeyCD0LASdEY1YHmIktl7dA FDwcdvjkbZFTgEwJ2KkKfyGgFHudnw+HNpBIxo6rzqPPfoXD1KYlyskigZkpiGaSxDhJ ZCxg== X-Forwarded-Encrypted: i=1; AFNElJ+oDdVzCHIeTUzlgjN0GwU8Y8AP0AdqGNdHTJhcKarXMYeiMdB1BGSit+dVyJKE1qgm+AlpF6MjrOaY6gKz@lists.postgresql.org X-Gm-Message-State: AOJu0YxR3zEeU5T/90Q5PXz9D46BS0YJbYQksMbIahMUBIQ9M/CI1KsD C3pI8J1IeYtSRgFY0hNhKUsC0P/nPd13+i1ajwsTUS1ANlLKIS5gV/C3jBPMJj8VIif51BVFRqn s9P9UIXjk5S8UnHmlnK1PYk2j/5q11HY= X-Gm-Gg: AeBDies8WH18TrbiTOaeIpwX6OiE2f/SokBxJTtl24t/xQWUweAWrpwirzz/krugOx6 Nw8EqU2SwOtL5o1aIJyRRU71EA93hO5WIMSO5yv5EDArlptezql8PU4DUH3oVMFLAYKPXW00h5I lfb+w6fwN7Q5aOaJWZbv/Y8fE8fUNjv3ygrw+ODCiIvan0gqy8ACUYSvlsXhUEj6m+d1g0ZxJXo /Ys6UD3Y/z/LfHVF7NfvwtfXp6OWDMzeyhV4BDZZjmc40ist6rL7qHAiYU5HfJK4drZNT3jv1ge 9+NPOgYIXM43cwmzDkJF6dKrvzknYs6WU0X5u1M95z86Ui/HQ37oGPuZoUiuRnZTUB/bmvS4Jmg VXXwHKrmYqQ== X-Received: by 2002:a17:90b:1804:b0:35d:9da0:4947 with SMTP id 98e67ed59e1d1-361403f15abmr974758a91.11.1776392156830; Thu, 16 Apr 2026 19:15:56 -0700 (PDT) MIME-Version: 1.0 References: <976a432b-9221-4825-8e8f-41f4375737fe@app.fastmail.com> In-Reply-To: <976a432b-9221-4825-8e8f-41f4375737fe@app.fastmail.com> From: Amit Langote Date: Fri, 17 Apr 2026 11:15:39 +0900 X-Gm-Features: AQROBzBhsMCYnBLtotUGenR03O1P30bl3ZwaZuvA5hPRRTKK9027A6_d-aJm8FQ Message-ID: Subject: Re: Reject invalid databases in pg_get_database_ddl() To: Euler Taveira Cc: Lakshmi N , "pgsql-hackers@lists.postgresql.org" , Andrew Dunstan Content-Type: multipart/mixed; boundary="0000000000007d7389064f9e87da" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007d7389064f9e87da Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Apr 17, 2026 at 10:47=E2=80=AFAM Euler Taveira = wrote: > On Thu, Apr 16, 2026, at 8:46 PM, Amit Langote wrote: > > > > Thanks. Will push the attached shortly. > > I think the errhint() is excessive in this context. It makes sense if you= are > executing ALTER DATABASE, for example. Yeah, agreed. > I suggest a message like > > database \"%s\" is an invalid database Or just drop it, because the errmsg already says "invalid database %s". > Regarding the test case suggested by Japin Li, I don't think it is worth = because > it is a transient state (unless something bad happened and pg_database co= ntains > a dangling row.) Agreed. Patch updated. --=20 Thanks, Amit Langote --0000000000007d7389064f9e87da Content-Type: application/octet-stream; name="v3-0001-Reject-invalid-databases-in-pg_get_database_ddl.patch" Content-Disposition: attachment; filename="v3-0001-Reject-invalid-databases-in-pg_get_database_ddl.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo29ymdd0 RnJvbSAzNjA3ZjYwNTA5NDdhZTk4NmRjMTg2MjQzNjg1ZWIxZGNmYzg1MzBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbWl0IExhbmdvdGUgPGFtaXRsYW5AcG9zdGdyZXNxbC5vcmc+ CkRhdGU6IEZyaSwgMTcgQXByIDIwMjYgMTE6MTE6MDQgKzA5MDAKU3ViamVjdDogW1BBVENIIHYz XSBSZWplY3QgaW52YWxpZCBkYXRhYmFzZXMgaW4gcGdfZ2V0X2RhdGFiYXNlX2RkbCgpCgpBbiBp bnZhbGlkIGRhdGFiYXNlIGhhcyBkYXRjb25ubGltaXQgc2V0IHRvIC0yLiAgcGdfZ2V0X2RhdGFi YXNlX2RkbCgpCmVtaXRzIHRoaXMgdmVyYmF0aW0gYXMgQ09OTkVDVElPTiBMSU1JVCA9IC0yLCB3 aGljaCBBTFRFUiBEQVRBQkFTRQpyZWplY3RzLiAgRXJyb3Igb3V0IGVhcmx5IGluc3RlYWQuCgpS ZXBvcnRlZC1ieTogTGFrc2htaSBOIDxsYWtzaG1pbi5qaHNAZ21haWwuY29tPgpBdXRob3I6IExh a3NobWkgTiA8bGFrc2htaW4uamhzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFtaXQgTGFuZ290 ZSA8YW1pdGxhbmdvdGUwOUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBFdWxlciBUYXZlaXJhIDxl dWxlckBldWxlcnRvLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQSszaV9N OG0xazJnRmNoK3RVMEptQVFoOUZSVitwRnJmVFhEckpvK0JxbXdzVG1PaGdAbWFpbC5nbWFpbC5j b20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGRsdXRpbHMuYyB8IDEwICsrKysrKysrKysK IDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2RkbHV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGRsdXRpbHMu YwppbmRleCBjNGY5Zjg2YzQzZS4uZmUzODExNzIxM2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9kZGx1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kZGx1dGls cy5jCkBAIC04ODcsNiArODg3LDE2IEBAIHBnX2dldF9kYXRhYmFzZV9kZGxfaW50ZXJuYWwoT2lk IGRiaWQsIGJvb2wgcHJldHR5LAogCWRiZm9ybSA9IChGb3JtX3BnX2RhdGFiYXNlKSBHRVRTVFJV Q1QodHVwbGUpOwogCWRibmFtZSA9IHBzdHJkdXAoTmFtZVN0cihkYmZvcm0tPmRhdG5hbWUpKTsK IAorCS8qCisJICogUmVqZWN0IGludmFsaWQgZGF0YWJhc2VzOiBkYXRjb25ubGltaXQgPSAtMiB3 b3VsZCBiZSBlbWl0dGVkIGFzCisJICogQ09OTkVDVElPTiBMSU1JVCA9IC0yLCB3aGljaCBjYW5u b3QgYmUgZXhlY3V0ZWQuCisJICovCisJaWYgKGRhdGFiYXNlX2lzX2ludmFsaWRfZm9ybShkYmZv cm0pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9J Tl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCSBlcnJtc2coImNhbm5vdCBnZW5lcmF0ZSBEREwg Zm9yIGludmFsaWQgZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCWRibmFtZSkpKTsKKwogCS8qCiAJ ICogV2UgZG9uJ3Qgc3VwcG9ydCBnZW5lcmF0aW5nIERETCBmb3Igc3lzdGVtIGRhdGFiYXNlcy4g IFRoZSBwcmltYXJ5CiAJICogcmVhc29uIGZvciB0aGlzIGlzIHRoYXQgdXNlcnMgc2hvdWxkbid0 IGJlIHJlY3JlYXRpbmcgdGhlbS4KLS0gCjIuNDcuMwoK --0000000000007d7389064f9e87da--