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 1wF53y-004j4B-1w for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 06:58:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wF53x-0070bh-2M for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 06:58:25 +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 1wF53x-0070bW-1P for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 06:58:25 +0000 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wF53v-000000022rb-0luR for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 06:58:24 +0000 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-43fe608cb92so2576916f8f.2 for ; Mon, 20 Apr 2026 23:58:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776754702; cv=none; d=google.com; s=arc-20240605; b=bZ4dI/xIXPYUZvfi6G8L+QgPLUsm0DJRxzFCBnCa+CvBq4fs4anQFQ5WIcM6Ro2lWe bcaM8kU02PB3BTvEZLKV9r1AtqIPLvEMJmMzgsUp8VwValoTvkj1riPFN7kkC9TLx0Ye 34RwzpmmD6bqiqbt6BmzMGsF39Lxy0jqozliVZQHgpJ0mnlklSgRjRl6zmEtcLfyFuM0 VVNMRscVCtcfN/DJ/VLtnDTyYm1M12wgjR3VcHg+aUHS9aX3afuE53v4p3mh2IrwkhGU CNEhCFmQ/QYSyb7Cw+BlnBIekrQRRP3bwfMBdtAhBUn8P46Xz5iMkhG0MPJvoqvScEz6 IAnQ== 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=aER3ZkaBzqIhRX9Ca4gVPW855U1uET5xnaUHIODWPoA=; fh=PDhzRmLFhJQgKl2kpY6iqaoiggk+rKjB8rXL7ERgOws=; b=LAuJquCsK1lsJFFsz8Xx5qx1oCjwCEnZQhcZeheuwgARGo2D4d7qsW/cBvyFaet2lu BJM6hKLAtvJZqRQHgqG3uH9DRUS5me93M5gEeMFncs8HPSChV6VQ5dXClj6vuhIrL4ow spWb1xPkhkW9m2C10uPgm5NoN4fvgqWK1xnDW6RZISWqhsEBfH8r73Ep58+HeYcQXk7T ue29Km7WKuHik/0HOWRvPF401bmVcwbKYUuEFUq3YmWwbxpZFy1+nRrDaQ4wis6U4ZmW n8XedZgqy6P637FK3eOTzezKFLK1z85dP64YUrQjmtbEZ/btGxocpEIODc9bM0clKMRy 5AVg==; 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=1776754702; x=1777359502; 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=aER3ZkaBzqIhRX9Ca4gVPW855U1uET5xnaUHIODWPoA=; b=TFFhSrU2GtIdABmi6i1OJvGCAW4NyIxfrc0SlHzBJO55KvDFdJ3TatpL2r9//S1dZ6 xiulwvnS4IKFyGtADzzboxc3OIzhr1b8oAv67qB916XJ8CU/8kJsXL5HBqdJJ4F7rieA T1lkmg2uydAVhyfO1ySQF34IW/c+Wqky42znj+JFuD+0oFubz0BU0E5gUWav34Bd6Thx fGMJN1YmBYQiyLYYbE7Pet3gpobEZHxGdFnHIJuHfH8Co4n7P8kn0SIhvYHcYTRLyouc LIQ/kUSz+ij04kgyvmdRplR31pX2u5AykIMssqRW+GfRoWbG4iDxnLbHM8XSMHy29yO8 dFyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776754702; x=1777359502; 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=aER3ZkaBzqIhRX9Ca4gVPW855U1uET5xnaUHIODWPoA=; b=FS33w32MnmKNehhLTnEi8r28S67+o+20CXRL9pRnwiKjQNTm3jiheT67YGnPemLr89 /0ZfhgR+VRtPH8FnY55jiI4j0rQ4LwFJBYoSF51McGdtugWGYjDmqei6THgFoh0BR0vH PmbsfNWUCvBhaBKLEjh9CR/JD0+NfsOxfGEdk4uXwNVCiQQLvv07nuI4mzkci48qR5dp U3HRsx1YtGkQST068qQfHlZ4cNAdZ5hnH2HnV3W+yuooomPpZIjVS+LrGcn63DtOo0sb Q1Z4T8kSl6Qmtf0x6qMMXDhk7SDairZIiP5DFHwFgnz3SFtKhJkqfzqLyBVqTno2Z+Ak JLTA== X-Gm-Message-State: AOJu0Yy9RbXwKX5yH43Xb6c3pqcsQwYJBG51KxCFT+ELfI102jrN9RLP UYz0TNHEV5r+IhVfZ5YYdyt8Iu5OBbNxmUtGBk6JyAzcRHh2f+0xCeTp4dhwFt5b8Pe/GRzkJSF Oi+ZexFOC2QWB7GXDypFEjbmfM/71FQ4= X-Gm-Gg: AeBDievY7UMoVi41cB5wc9LKH4Fd2h2WYrrRqGHbeph/oiNQ2XR9XXgLUifHjv4GL7l zG0qWQEqrZwubAMyzp0qiMBwpttgEGqDwMr+uRhRUXA2XQlRwbOzPG52A+ZKuT6l2EJ8bGERUhQ +9HRwHNQwwaYRjL6PHS8jOhBvQG1YyXydxsVAsydWbQgk/sMNYEU29yj1kEzay8Fi7mmku5MTD/ 0Yn1zPHU/o624aXyrC9WQFgBECAQx1TP6bNv0PJwiRaWgYCGU/UQDiXrgH9syNsSiQFostY2htI 9uct69EhYJywxzRdkKhRaWGKKV5EvvdEkPCbrIoiMWgYOrQHtSE09T0ohLQJLQo= X-Received: by 2002:a05:6000:25c7:b0:43c:f0c0:c571 with SMTP id ffacd0b85a97d-43fe3e12b2bmr26928981f8f.47.1776754701806; Mon, 20 Apr 2026 23:58:21 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ashutosh Bapat Date: Tue, 21 Apr 2026 12:28:08 +0530 X-Gm-Features: AQROBzAXlBDZQ9t5alq7-44bgNbEuOgEpCn_y0tw5SV3mo4ipKu2EtDw74IJAAY 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 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 removin= g >> > 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) handl= e zero labels. >> > I feel it is easier to prevent dropping the last label than handling z= ero 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