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 1wDHxA-002ooL-16 for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Apr 2026 08:20:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wDHx9-004t2s-1p for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Apr 2026 08:19:59 +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 1wDHx9-004t2k-0r for pgsql-hackers@lists.postgresql.org; Thu, 16 Apr 2026 08:19:59 +0000 Received: from mail-yx1-xb131.google.com ([2607:f8b0:4864:20::b131]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wDHx7-00000001HfS-0pbK for pgsql-hackers@lists.postgresql.org; Thu, 16 Apr 2026 08:19:58 +0000 Received: by mail-yx1-xb131.google.com with SMTP id 956f58d0204a3-651b4d09141so526500d50.1 for ; Thu, 16 Apr 2026 01:19:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776327596; cv=none; d=google.com; s=arc-20240605; b=bHHHcHA0hHCzAxKZlaXQVkFR84YjfHTeu4m/ARvhF2lUWoHg4E6NxT6I/iUZQttMQo XWz0XbKCHRDxmC/SMsgXdeHmhBvSPDLu69kwZdqIJ1AXEc6C/qtxJEstCxE+fhRJ9IcI DcQwJDj0d59ObqziEdh0brmvVlngQJnXR085k9IdWZ3c33V32dlYntX3gDeFGUrk4KEj C5H7nx354e610rbKSlmklFsL9uGrRa1c5XE99WTtOaFbFxEZjaxMmlj9llZEkJUTDf+I u/oX1JDrWfVRxv8Qt+o1PkZo731FIm629vOB0RsOH7c91mcfK8SfMP4aSmQuHRu42ghc q0Ow== 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:mime-version:dkim-signature; bh=VQIXWlywrDmnRaPo9fhLg9MPc22Hbspq65oFWbkPPHs=; fh=AjJYZJ8kqtmUWUXN5+N+bEBCdzqYH7vVyuqQAPP0v2A=; b=CvBDx6mF4IkISqDR9JNGsxLyIYsUYVFT9wF6FvmH/vXM5TyxfAxbdtYNaKYpI7oaTV CJwMZ/5f/lk0RfOsYmVaHP0C4eErVRs3HMLKHMK6Yt9x4/siXhWSDs0ODNhpLcB8jcsJ mGYE0umRQYU1zhW9Z7ms4px6Lc/Wfhxe9m6jGnISoG1ZxYYKUxZoexa+U1mGYkzV79yg erSHEdBAGO4+QnIAiD6FvuPrICiNejsZrAr4B6J+Yg1byu8l+qIOJLX8D6Uw6qfOuN76 q4CP06Uj6ckywtMujy1ajFTUKjR5JAev0wF0En9MzgZsLXywGEH4rP5cUXWzg3OS2ovU LPQA==; 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=1776327596; x=1776932396; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=VQIXWlywrDmnRaPo9fhLg9MPc22Hbspq65oFWbkPPHs=; b=oMaPByzJnIO+26RUMEQMIcwiSPB8o+Xe6QFmVUl9MVYqYCkXAF4qA1iysH+DM8f4bI t5wmXgAf8vl00CCp82koDmDKdHXTbtETt0cnR3T2O2awRIs9KjwLCR1xwneNJJPE2yGm uzG1aGZH/4y7/PiqhyJDc+tVVO+P5iVbR847DRYOLDsWojeiiPlPUarCTMC8p6DyRhiH tZIoFnvA7pZUKPN7wQwlpxtkMapE8voTVpM7giS7oPlI2FVMpaps3KyzN/ikjlixa1Tx h7z3IgbSKxgw8854/omcU0C3uhdRIh2b5dniGYZyWoWHLAjjUwgNHiurZ+hYldpqCik+ N6Lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776327596; x=1776932396; h=cc:to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VQIXWlywrDmnRaPo9fhLg9MPc22Hbspq65oFWbkPPHs=; b=lf1w3NjM5HwI2qe07ozmnIEbLooo7PKkvKTE3T4yGKdfVLX1FK/p67HgsWmWXYH1Lc 4ey7sMNuwJLKcsCSFBHLuC3PAqdstvKTRyk3hSDewXDgGLgo1Bf6bHEmzVJIPyooswdD d3dT9vpDnI0Zw541EUWS/GXV03wjxiDhmZ52KUEmhzP89cwuWgJDLRf6W0fLa+7wnXag t8/KIiiJQrMf4OYs3hhVO74tA9n9OMRrGx3t+n2iGcJcYWejjKW+KjMWxpK5kOf4FogM qi8ypmyDZCrgwkKx3YZg2W5bMvBM2j+x0IFmQwBgCCUm8YE4uM+BbZlDDPphmFqMZJkx T6aw== X-Gm-Message-State: AOJu0YyHiYLkJMVKRLjSbXunKvOfgbcbaeRe7jXdWnxNl1igNfspQIkR zEE0laX/qwTCj90L5S3yJMta+vl+GiD1dDiplLBeQrDjb9xwI78uWX0HzKtT+QTOagvISwMmrCX 1mdan+844X36pRxFrLDIDjJGF3il7EJDUY2rn X-Gm-Gg: AeBDieurlrOr0F3rI79g5zluHrHmx8N067fITk/wPefkamxKQy8wLq9Z9e8MdjPA56i BqghPgbL2FfbnODdl16/v915Ju78hU6wdTxlOJi6b29mUKS1WlaDirh3l8eYWEDAjFEohOY8QXg 6g0F5nhY3LWJaf/0WurIKrwNhhZskbPwQXRIznoSaGJJ9HPyasXkHUxkTzgFvZi1Pt42A24Pfs5 FTxav/aXJtnYV0Od3Ol22NPv2+Fb2aCY1zhJrWFNQ1UnA99/g+N/6mt1AsRxLqpCFjialOzA5Ox WzzU3pHesatkHOO0E33T/5Slp/+C X-Received: by 2002:a05:690e:b41:b0:650:3363:ff8c with SMTP id 956f58d0204a3-65300ed7678mr380900d50.5.1776327596240; Thu, 16 Apr 2026 01:19:56 -0700 (PDT) MIME-Version: 1.0 From: Lakshmi N Date: Thu, 16 Apr 2026 01:19:44 -0700 X-Gm-Features: AQROBzC1-MXJef9ZEsg_2AUdg2K9Tk_x3hQWP-LB0kUCCPHV45L8r6tjlZEMEFk Message-ID: Subject: Reject invalid databases in pg_get_database_ddl() To: "pgsql-hackers@lists.postgresql.org" Cc: andrew@dunslane.net Content-Type: multipart/mixed; boundary="00000000000061905c064f8f7f86" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000061905c064f8f7f86 Content-Type: multipart/alternative; boundary="00000000000061905b064f8f7f84" --00000000000061905b064f8f7f84 Content-Type: text/plain; charset="UTF-8" Hi, pg_get_database_ddl() is not checking for databases in an invalid state before producing ddl statements. This caused the function to emit CONNECTION_LIMIT = -2, which is invalid SQL that Postgres rejects. A database row can be in this inconsistent state longer, for example server crashed during a drop database. Attached patch to fix this issue by doing a database_is_invalid_form() check early in pg_get_database_ddl_internal(). Regards, Lakshmi --00000000000061905b064f8f7f84 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

pg_get_database_ddl() is not checki= ng for databases in an invalid state
before producing ddl stateme= nts. This caused the function to emit
CONNECTION_LIMIT =3D -2, wh= ich is invalid SQL that Postgres rejects.
A database row can be i= n this inconsistent=C2=A0state longer, for=C2=A0example
server cr= ashed during a drop database.

Attached patch to fi= x this issue by doing a database_is_invalid_form()
check early in= pg_get_database_ddl_internal().

Regards,
Lakshmi
--00000000000061905b064f8f7f84-- --00000000000061905c064f8f7f86 Content-Type: application/octet-stream; name="0001-Reject-pg_get_database_ddl-for-invalid-databases.patch" Content-Disposition: attachment; filename="0001-Reject-pg_get_database_ddl-for-invalid-databases.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo17d6wr0 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kZGx1dGlscy5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2RkbHV0aWxzLmMKaW5kZXggYzRmOWY4NmM0M2UuLjdmZmUyMzE0MTdhIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGRsdXRpbHMuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvZGRsdXRpbHMuYwpAQCAtODg3LDYgKzg4NywxNyBAQCBwZ19nZXRfZGF0 YWJhc2VfZGRsX2ludGVybmFsKE9pZCBkYmlkLCBib29sIHByZXR0eSwKIAlkYmZvcm0gPSAoRm9y bV9wZ19kYXRhYmFzZSkgR0VUU1RSVUNUKHR1cGxlKTsKIAlkYm5hbWUgPSBwc3RyZHVwKE5hbWVT dHIoZGJmb3JtLT5kYXRuYW1lKSk7CiAKKwkvKgorCSAqIFJlamVjdCBpbnZhbGlkIGRhdGFiYXNl cy4gVGhpcyBpcyBhIHNhZmV0eSBtZWFzdXJlIHRvIGF2b2lkIGdlbmVyYXRpbmcgRERMCisJICog dGhhdCBjYW4ndCBiZSBleGVjdXRlZC4gRm9yIGV4YW1wbGUsIGludmFsaWQgY29ubmVjdGlvbiBs aW1pdC4KKwkgKi8KKwlpZiAoZGF0YWJhc2VfaXNfaW52YWxpZF9mb3JtKGRiZm9ybSkpCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJ U0lURV9TVEFURSksCisJCQkJIGVycm1zZygiY2Fubm90IGdlbmVyYXRlIERETCBmb3IgaW52YWxp ZCBkYXRhYmFzZSBcIiVzXCIiLAorCQkJCQkJZGJuYW1lKSwKKwkJCQkgZXJyaGludCgiVXNlIERS T1AgREFUQUJBU0UgdG8gZHJvcCBpbnZhbGlkIGRhdGFiYXNlcy4iKSkpOworCiAJLyoKIAkgKiBX ZSBkb24ndCBzdXBwb3J0IGdlbmVyYXRpbmcgRERMIGZvciBzeXN0ZW0gZGF0YWJhc2VzLiAgVGhl IHByaW1hcnkKIAkgKiByZWFzb24gZm9yIHRoaXMgaXMgdGhhdCB1c2VycyBzaG91bGRuJ3QgYmUg cmVjcmVhdGluZyB0aGVtLgo= --00000000000061905c064f8f7f86--