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 1wF3kS-004hqU-1R for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 05:34:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wF3kQ-006FMb-32 for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 05:34:10 +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 1wF3kQ-006FMR-29 for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 05:34:10 +0000 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wF3kO-00000002FMC-2T09 for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 05:34:10 +0000 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-43d7650202fso2991124f8f.2 for ; Mon, 20 Apr 2026 22:34:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776749646; cv=none; d=google.com; s=arc-20240605; b=gTv0/KeBiv7Ppd6aN4gCbAis5d+0bV7ke4TbTkTx5Ivcvvsc7H+b+ABwzC33D2/otz qM35GEJMjDfJr1XG4pitF8RT8YKfvvOZCfjWT1VJEHv4FCtfkXL+ZLKu3HsXYJ+Ftvsa ZB0LYkTxjYNftZ2w7b86ZwNR1nMlIx7dYin9S+UM6nPXevzl/EZkkmlPzyJoiYZ1ALpT 811bZGNHhG8GVcfXv97pOprajl2XG2uE6x12lVlxRMwRZCEJbtwbZExyQIrQtJ7JtQvf qpDpTpCY17GnKzZE5ECmMQDetxahW+aDDmlXKKSH3gBvrQ24wvHGH6NG0boJlStANFM7 BE1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=Oz2M74hzOvtjEmN3AFTfPnaoV9H5ry/hvZ7b3uBefr0=; fh=PDhzRmLFhJQgKl2kpY6iqaoiggk+rKjB8rXL7ERgOws=; b=W2mFvQGa7dBtKsJtlEidW7S0t1DBt2cLBT+geCe/0NukyLLF2esgLXjDJis6N4cec9 TQg7F2rDl5LadKdkpRBsYNfWjnEYQOENYu/bWvpTaUpexnq2iaVjpVKvGA4TxK2N/Dy2 dzLfzaL/Ue7cLuV5dm4La3VPGtzweEyAIaGtqUqm8lbU4+ZRYG++rgFyGI+prdHytLuo C0dFiPdLMlnod6YG+8nK4zfR0nESlu7r8w8JW6vp8JWUVpC6TWWZt8DKQKKiVIW7cv2h h6MiqV62aqIwY6M04XI3yCK3NhipLmsudzBUMfSaf7RW9cwszYB37Q4s9/+v2vs37TII zlvw==; 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=1776749646; x=1777354446; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Oz2M74hzOvtjEmN3AFTfPnaoV9H5ry/hvZ7b3uBefr0=; b=RcNsH58AC+uwHRpGS5UNaITXl1vOvyxxjZ9nsweOP8JJLpZhxGy3LZQWi2olSZky+F U61EBmYwLaisdQpkPbbLLhJhtN0YWdD9adzaNNCThV5csdFdWarF41MSF6166QHKjzMs nvoLmk2ST3VrCRWfpQQBVbuyIxvAmu2dccydm8U6nAKzBFJVcmASgUoi4PfaZVr3hI/s TkIIbv6DINRDfSVg7+M6UJFs7LgjG3QR/MeFWPWuF8vS5NQ/mv8en9erAq45cR4Aa3IX kFGSm0Uh7tG/xZYaJ7GY6zGFNgk568hFuMu2SY1tsPpnXNOQozevgNkXhfEIqP0PJlzo CcEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776749646; x=1777354446; h=content-transfer-encoding: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=Oz2M74hzOvtjEmN3AFTfPnaoV9H5ry/hvZ7b3uBefr0=; b=CJYK2gIkWbf3R3SDEMqhjtVTBkH7wQzjULO5T8qnZ3Dru7VV0S6slQ+kUuDCk1UnFV rhSST6nvRmwrbyQVNELa67B1fYYe4t4e+4NDmsuyiE3bIIDQrK1I5hEULvCC5D5mSagk 5ttfNFCqrzjwCZ43dAN6v0XlQ+znFNMJSji5coW9gpFy6FrwnmD6FC2/VRAj6RQPG+Wn fM9JRVAEYUCFpFVXO6YvxXG0Pfg/HHj44dNfmihEryEj66rFNSAyucgZGtLT+tkof1SO PD7qdXRoZwYtaJAP/ZX5Hx373QSGh90Rdjgdb2kwXfbH7cvcpIxfWkgZD3g20QRrHYdc +PAQ== X-Gm-Message-State: AOJu0YyLR9ws+J2fYCDQHq+LRtIX6bvq9k+nOcpSA7mv0+Lg+d/1yPko y/VA5sxBvnl6SwvVAb8SaNtop496Urpk68ymD4DPOLsDQirhQ3HbG2PECLPvpRGPz1OCfGblA72 FTnF89fnCUVpavNIaG4BSQiC3SGXfBEM= X-Gm-Gg: AeBDieubcrHxfMxWRYi9X6bWNalE2+mtak6nh/krN7fZieN3rGQaLnJZPvooWS22nff Q2esxzAKJKiAQ2gEL2R0b4bi3nXTiMKGcHEpn514CdKXj6/jc6TKr9l+kY+Ixj4SaOWkwpSAX/F ASbgyy2kJ4Hh5mEGxUHcsd/IZQgEIkw4m2/lNt/onRo0aFYZO8tdMUrba8rafF7wve3JO7RHdwV X44gZIcX1VU+zu8kwAg9W3HQm1gXkkY0UvK0FfOg6u40gHg4Um9ibGVAERvFmAoZEkvCcY9kgpc RAL9fj6+Bf957/yO0ov4IGs5RXiaZL+LSd1AWyIN8x0fuGpkSTuGRv+prJXjuX4= X-Received: by 2002:a05:6000:25c4:b0:43d:69ff:6898 with SMTP id ffacd0b85a97d-43fe3dc54c7mr24477510f8f.9.1776749645976; Mon, 20 Apr 2026 22:34:05 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ashutosh Bapat Date: Tue, 21 Apr 2026 11:03:53 +0530 X-Gm-Features: AQROBzAhyt-THPygickrsiJxDbcpVEN0cdWZdOvwVpifqonYiu_vMQ-W_Pp9-f8 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: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk 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: 1= 821840 > > 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 z= ero 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