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 1wFA5D-004npn-2d for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 12:20:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wFA5D-008ZJ1-0F for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 12:20:03 +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 1wFA5C-008ZIt-2Q for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 12:20:02 +0000 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wFA5A-00000002IKX-2gaQ for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 12:20:02 +0000 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-4890d945eb4so15924195e9.0 for ; Tue, 21 Apr 2026 05:20:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776773999; cv=none; d=google.com; s=arc-20240605; b=WyeRksxAMF0yhbvyqlfOfl5H+DE+7cLXpUjx7H6KNYoYN2kK4gK02fyYlziF0Kiw/j cIfCrHjgt/mbML//WxLu3t5qL18rLGGLSykBe47ReWfzBBzbo/ZtM3PD4DcynIV9Ozpw nt6ZPPshanFYdimgjkfXI0zaRqPErDJCGIhunYxGPrtMs6ac4b3p/RPVY0WfNRw4av+R T7zoMnoQ+UzLufm+rl8sN6e/t5IAe1dkqqf7kNdyg5ORhSmM/DnYO6WmbgqhT9p+HnzY 6byty9hMbirNkDwFx+z4JPkToZIZ5IpJcQ9gHREqDDthvU7OJqD++ZyR+ubWM9cwNS/9 I4sw== 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=CpmyXd4cw5fNha0CIwPycrHCYT9ujoZeIrljA4RcoVU=; fh=PDhzRmLFhJQgKl2kpY6iqaoiggk+rKjB8rXL7ERgOws=; b=YHZVTc5plJ1hJhkUJu1TgHSKbbAJMxfvSqMyiEBR5mGGimS/sbzjEUrje81xSrUsYh AxD+0sdf33UIKYNbj4XQDrhWaHS3uNeov1HLN1WIcrUlqko5F8vm0GmvF1I7ep/7v5hc Di4yukeWNobBRMppNwhs3x0GgUAbqcLfEjiRMIFSA+zfM+fLaIcm3Ct7QfgPOfdKLQNV 2D7WIsuuiS2ZaQ8qj+iOrzJCJQgNjyJ0+j2cKYKvNE7xOAPh5qWxhbNFKe9pfBblH4c4 DvqvsBmwO10+TxspnWeXH2/kxdDXIqaVtq9xFc2eAMVw4r12boLAFPjA/xnBuAsF3Zwr 9w4g==; 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=1776773999; x=1777378799; 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=CpmyXd4cw5fNha0CIwPycrHCYT9ujoZeIrljA4RcoVU=; b=g/vnD7foCLXEfmFk68/n/kh0JUQ8etcJUK/4m8zzC3Rm9A5f+t0hiuCXohVFmmaNz4 8i3nZ+HCwFwnLLE5MhIznE5zhWNXZLz18eYd5GuhEVnyBpfwKtj/BmslLA21b01leEWU aGcSrsg4KbBDx6+QgUzxywa+cFDV7WsvzpX0mCYLUllqP99GA55mtE80kedSOF1B1Wva kEBqlqS3ZXlqHhkeSbPdFM1TDEuUY4qH/OtRS5kmYWKGVopelOP7bxnsGQTSz/x1lrFC SlN6XSPSMJJm+3Kn5bcQ6zjjfjZHtyn32gcF1WbUTvbvF+/dpFVXTQjRWzNvXHQW444b IOoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776773999; x=1777378799; 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=CpmyXd4cw5fNha0CIwPycrHCYT9ujoZeIrljA4RcoVU=; b=T+m43icO094+1VwumsSSyhMmz9GCh09rtJR7MljM1TW4+ZHyOt1TgrMNwKqc2AfMdq XXnr1PMcoONQGX9KOe6MxsnAp2vzDxcU6Q2Cy1avBklpZGp3i6+7m/HutRntUhaEE8K7 jtpf0lFp+v8FTH2BqzFo4NqMFDAzX7kdCQlVFM9VUGXf7cn0R0MGJtm+F/SN3dg5dOXZ rH5TtuZU1Gw+5zdqHw/+Chpn2i1I86Ds6RblxnMfSApfvWJmtJVsaNRtnseEztySOZdd kkvZdPrNwEGxb789A4f8Lj4xiebKDX1oTpihpz9qVXdnSNewnIB05g1t8BiEHlxYwUw9 CIwQ== X-Gm-Message-State: AOJu0YxCiG1pKbtFwo5n6nqo6Lvbb3uiHRCNNYqmAG8hdS1XMXWXqp0D iRBewHLcTD053z3BQDFSsOAYMfnezMA5h61UsjDXx9URy4G939qq1wJvdKmWVlnW9z9w/lzO3fC R7ZgMQL9SajnYQQ5eadw4cJfUTGKsNzE= X-Gm-Gg: AeBDieufb6uV4LFKw1wMKxjCSbT7IKxItLPCL6VNPAgsuPONh/CaHPbVtIYSAQfWgSr DeR5s1NRBst4Y/dPTb/Otk7MXCT4vNo2aKD4kIp4Gi6Vh+COpZx/77B0FUCLB2evqe4MilpeI+s U6zUBdmywqCrO2hRa2T07kzRh6h8QfgyjGsELudRjQw09Cm4CWuhr7DD8UDfbAbQ1M2fmfheGhW cBwslZpk3/KeBIOzmxh72/iBO8boD7HzcxLdWEcU4G8Kd5uHQyvVh20M/+RkW98IGtBMah5cnCj d4aZhJ3FoGpM4VxZ+wzHjouvZwTtMx7JiNOntWhTdPBqommphhLjFvamFk5NcjI= X-Received: by 2002:a05:600c:1d05:b0:489:1baf:8c03 with SMTP id 5b1f17b1804b1-4891baf8d2cmr116788465e9.11.1776773998764; Tue, 21 Apr 2026 05:19:58 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ashutosh Bapat Date: Tue, 21 Apr 2026 17:49:45 +0530 X-Gm-Features: AQROBzCyxdjsDeHkGJfj68ZxWXwlubAvPAMESx3RtNAD-h28uZzfZOKIkn0gmIs Message-ID: Subject: Re: [Bug][patch]: After dropping the last label from a property graph element, invoking pg_get_propgraphdef() triggers an assertion failure To: SATYANARAYANA NARLAPURAM Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000000b13f8064ff76f10" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000b13f8064ff76f10 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Apr 21, 2026 at 1:29=E2=80=AFPM SATYANARAYANA NARLAPURAM wrote: > > Hi, > > On Mon, Apr 20, 2026 at 11:58=E2=80=AFPM Ashutosh Bapat wrote: >> >> On Tue, Apr 21, 2026 at 11:28=E2=80=AFAM SATYANARAYANA NARLAPURAM >> wrote: >> > >> > HI Ashutosh, >> > >> > On Mon, Apr 20, 2026 at 10:34=E2=80=AFPM Ashutosh Bapat wrote: >> >> >> >> On Mon, Apr 20, 2026 at 11:42=E2=80=AFPM SATYANARAYANA NARLAPURAM >> >> wrote: >> >> > >> >> > Hi hackers, >> >> > >> >> > ALTER PROPERTY GRAPH ... ALTER ... DROP LABEL currently allows remo= ving >> >> > the last label from an element, leaving it with zero labels. >> >> > >> >> > On assert-enabled builds, pg_get_propgraphdef() hits >> >> > TRAP: failed Assert("count > 0"), File: "ruleutils.c", Line: 1837, = PID: 1821840 >> >> > >> >> > Repro: >> >> > >> >> > CREATE TABLE t (x int PRIMARY KEY, y int, z int); >> >> > CREATE PROPERTY GRAPH g VERTEX TABLES (t KEY (x) LABEL l1 LABEL l2)= ; >> >> > ALTER PROPERTY GRAPH g ALTER VERTEX TABLE t DROP LABEL l2; >> >> > ALTER PROPERTY GRAPH g ALTER VERTEX TABLE t DROP LABEL l1; >> >> > SELECT pg_get_propgraphdef('g'::regclass); >> >> > >> >> > We can fix it two ways, (1) Prevent dropping the last label; (2) ha= ndle zero labels. >> >> > I feel it is easier to prevent dropping the last label than handlin= g zero labels. Thoughts? >> >> > >> >> >> >> SQL/PGQ standard section 11.25 syntax rule 6 says >> >> "Element table descriptor shall include two or more labels, one of >> >> which has an that is equivalent to the