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 1wF48O-004iDZ-23 for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 05:58:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wF48N-006a6X-2j for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 05:58:55 +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 1wF48N-006a6P-0u for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 05:58:55 +0000 Received: from mail-ua1-x932.google.com ([2607:f8b0:4864:20::932]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wF48K-000000022Qk-43Oi for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 05:58:54 +0000 Received: by mail-ua1-x932.google.com with SMTP id a1e0cc1a2514c-953b0a7ee18so775716241.3 for ; Mon, 20 Apr 2026 22:58:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776751132; cv=none; d=google.com; s=arc-20240605; b=HLg6fRXESuDM3ahxTAVoKgVKfy51rdSae7a/BiFN4KzmkilGQWKMNzBJa6f3xysvLr 4phtpm9G5EbXt6tshVeTI0c2vB8kDhM0XM2nShIwd0znvRxCo0nNvVUrgcyIEPRgmZtH 7i50vVkI9RRlKvKQ3ydCYPLzuEDc1Y7vLO8DuOw6KeeOXkQ41ziUttZ2hbuz7mo/33FV q+xpEEKwr7RG67cQIEIsj9l7PPA7voEqtyYrYB/FH56+mlKwJz+NFpJkJjA94Ua05U8z fuqQgJG/I03W7avjwhDxDM4L8pZYJWJ3LlOp0pl9MfcqFx8h54Xld0C6QuhgC/fRLbMD 7UNw== 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=BarWgoe7ZEyHV3cnNisQrYFiV8KLCnMkjEnlyuzI/Wc=; fh=aLFlIwLRhjJ62Oi7jfh17CC0bv2ps6dnSrUZCg2hAeg=; b=JtpC+e0vl4MlyZIsRZprrGPZ25AXKZZPwje7h3A2oZkBIZ2HK5k0Eb6liYmYrD4Nni p2X5i7FSRZ9PnppS80hDaLkpBEz8Q0YubcoMwK8o80qaIVm6Xc3190KXeBnRzxQfZPvE vF+HW/6vG6AjXJa8iadiQy3t7c+OVBa6JV7ZbdX8CjygEu3g3TfUgGkhvC/KkD7oNHd4 6wsq1MBKGleNtUDjyAcOAhy+X3uqSHAzH73yexSNb98RROYDlzTgdqQWCa0WsxPUSPlf Tq28UAcRcI0WyNbFHYijwglVtKGh0jEjRXL3raXWDZhlsYvN005Aa2a/V9ZzW95si3ng Bckw==; 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=1776751132; x=1777355932; 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=BarWgoe7ZEyHV3cnNisQrYFiV8KLCnMkjEnlyuzI/Wc=; b=JZJNAQ+BeFdRIsuU9fWhEqjCg4gHmKfIMTFpoXaiBl2/FHtZasVumHzbweHYF8v2/r QNx/+Nkef0I3Neb3ORGXjH/x6ZNh/OuLnpVvT76MhEql8vczZPHO56481481U0H6xxT/ jfORDN8Eh4fOVgBYwF6zHYtHgLz+GDLB3xiRVweT/WWsByM7EvNJDezHEQweOY8PF+Wz cMMEr79oKCbmdl6SKtnWFA4V1ON9ItbpiqnNIUNf89BQZsa/jFrqsqVglWMBKIL9qt4W WJWKvHFpPcBHm4xqB16Rkb+48PF2uNNiCbbjg7MhhsISV+ZOZBeoQJoDeUqqJFKZ3yyc +Vww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776751132; x=1777355932; 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=BarWgoe7ZEyHV3cnNisQrYFiV8KLCnMkjEnlyuzI/Wc=; b=YS1uAfLBQNbR30WggxEoAlZy4HaZYnOiraT8EmP83z/xuq03XGBUCss10pGuWJx0E6 vyC8UdkjhnT2sVnXqOGMNC0LiXFuG5D0MRyDzxm9hCf7j2+q+xxRtLBzRNQudBStdqS8 6EwE1/IbJ4rfFxWybbwzbAoYcQh3Bpnv1HGnmEMSsS61jytjILrzmLcDCxH9/kdG5jsx aUhUQN5I1eHxZq0j1ajfEsnxh2rXG8m9Ntvgjz95hbrGauUgetDCi9qiRWzNzSdXE9I9 OcJ7Itjf2LH81Dq6b9IU8PxbSFXjD/Tw5o0ZequA0XHSqbvArK7A7/mzcG/bb3wiNr6y Fkjg== X-Gm-Message-State: AOJu0YxydTT7Kg4wance38PtMkeltAKNJ+7lqQ+RML7G7as6CKwzsdPF dGISsar2fpUIYvwa/hSQCS2noGO/tygMoYXO76eOFPhqVyvBCqe1HlkDXok7Acvlfdqt6EKFcEb CQno569cvcc2u+Pz9/X5rqMAUQDubzBI= X-Gm-Gg: AeBDietNYi8LqITedv8dFYB48LI7RtlwgXVkzYIKb2P+MydFQdJXzy1qghXiCIJVBhh XX0ASiF2wHEElwMyhI/+vUrkyJftDMop9ac9d8WkCqXK+02+e1rz5gedMYbAS5daqMWilWYR/yZ XqjDvh4a4Kp9SmvvvobOaBpsFwKwoM6+Nfhna8ChFsS/bOEz43hM7VCGRv9Zme7/MWY4VY0b77d gNgtaWHCJzlc/DRiWaHDieBRBhETv6a6PUZRApBlYCQNQPMiCfIqhnGo3lzVM54HKl/scD7aFjM AX73hkFovllsgkJKKQ== X-Received: by 2002:a05:6102:149d:b0:605:6773:611d with SMTP id ada2fe7eead31-616f4741f33mr7055915137.1.1776751132633; Mon, 20 Apr 2026 22:58:52 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: SATYANARAYANA NARLAPURAM Date: Mon, 20 Apr 2026 22:58:40 -0700 X-Gm-Features: AQROBzA0BNacy6VD67r3JLP5Rt1UbWcBYFoLixfCKd7b0fQXeX9sGAhqLX-s7dE 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: Ashutosh Bapat Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000001d8da6064ff21cbe" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001d8da6064ff21cbe Content-Type: multipart/alternative; boundary="0000000000001d8da5064ff21cbc" --0000000000001d8da5064ff21cbc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable HI Ashutosh, On Mon, Apr 20, 2026 at 10:34=E2=80=AFPM Ashutosh Bapat < ashutosh.bapat.oss@gmail.com> 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 removing > > 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) handle > zero labels. > > I feel it is easier to prevent dropping the last label than handling > 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