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 1wF60p-004k2p-1U for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 07:59:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wF60o-007Paz-22 for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Apr 2026 07:59:14 +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 1wF60o-007Paq-0H for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 07:59:14 +0000 Received: from mail-vk1-xa2f.google.com ([2607:f8b0:4864:20::a2f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wF60l-000000023K2-2hlE for pgsql-hackers@lists.postgresql.org; Tue, 21 Apr 2026 07:59:13 +0000 Received: by mail-vk1-xa2f.google.com with SMTP id 71dfb90a1353d-570f7bd671bso233293e0c.3 for ; Tue, 21 Apr 2026 00:59:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776758351; cv=none; d=google.com; s=arc-20240605; b=CIOQDGOlfEpSqsuCHNgzde6AlHD+wyj+2vBRYjnZ2p+BJ40gyTlI3AvlJOHL5YRFzo OGxA9Djz8Zppcre4IAB+f0bSrl5Gw5QyD1rHThvIkSX4kn6EJj7LFYqs/cQcT4bfYhjZ N05VYq37OXBaKj5w6wLwkHM/4ju7VFquyw+zv4eUbugW2D9EPl2MB489jfiOyStkYAFB g+peMf8XTD7XzbfYi3SRN1gR4rhaQ1gZRkPYFmsJb/ugtG0j4qC2zQaWCv8rjl/ejS6S c8pm3qOejaVq9Q/ly5eEWKwl/xRy8IK6H0Q6MEBA0WB6/zCLWZ/NmJCaQ+0VUqevq5SK fkeQ== 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=8ykO2zEzq0yZQZTuvEy1cAZUPtU7cJOLYlKEZfsw2vs=; fh=aLFlIwLRhjJ62Oi7jfh17CC0bv2ps6dnSrUZCg2hAeg=; b=K8m+stRH/QZF8+oi4bEsUKr0chIsoP09xr53AeEKXqSEFs16FoRgJoYF2WjcY6LHyt OMUQWXylgKATLW7eYKOmJqj5pD+aD3PnWUgWQkFEb+3OP4JAGAIpYdcHSAqj5cJrIJwJ pWH3Nv86UgXekUaKMr4EieOyetSFK0xD6A/BW6k66EgGTcpmZNV82p0aihpOkJnFdrHV I64j45a7BnAbLt0gHlnHoJ397tyg+GXyKCJaXdsNZdDN3N2n6fgrV/4pYCJlRlBSHU1B SeTLwkCMFfbhPV9//i/L0WzvOY83cvXY/j8zK2fYttbTGlk2403ZjD/oe9FLuF/x59BJ 605A==; 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=1776758351; x=1777363151; 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=8ykO2zEzq0yZQZTuvEy1cAZUPtU7cJOLYlKEZfsw2vs=; b=nSbDSvYjIv/OPrLaepMzBiS3Jqou2f6/cXt3sljJ+XcfczJHw84gCR+vny7TXtDvWc Xue3Mzmf6dnUFXYXAgHbCmXiconcQVqn6Q9d9kCMZaErnTC1fSUlEjxSX/f+EOeKjnOK CZgLqBcnya9B1/9GhOQeLCOAtkm4hANnZwe3sEL14p/iG6aSzfBANDQi4y6P2qRbOery JdVoB+Q3dR36h7I/ZRE50RX4u0OinksU7+kvRNT/UhKvK5llAh4+AoSMcDfbAtoA/Enc 9GpCMb2uMopD3KxKNxwcCKsf6aT/zYFGdDtLEJDLE+fes/1/ox7Ut0k/4kSTdIsNZE1z cG4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776758351; x=1777363151; 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=8ykO2zEzq0yZQZTuvEy1cAZUPtU7cJOLYlKEZfsw2vs=; b=Kl4Zpxvl9QIf7jvbgZwLScT1hKrNb6Ljypn43UkZomkEIfaDdfS6tBtSp1RsEEiK5A fkgFlKDhBafZnQRGVVAldzXJ9UvHjA9ZdJ4iEVv6R7crn/YpAWptGolc/o2FqcXDf9ni Jw0uwndDBhbj/93Kmfm1XWJAFNcBv8XvxrRF2iqgTLKWq3QmMGLZYxPZkoJsK2O2Z6fZ YRA3CyJ4suM+DMBwU+zzEF/7Z1rr5TafewT61Pv9qtJyWPIgQ/sJOIposBbHtWqmE591 GPKiiySDUkAISEv8lRFYlycHZT2SVakorUTkYWqOwHk/ykgLOIPL13ROhJnFGPrtq7Bo m6tg== X-Gm-Message-State: AOJu0YxZelLgVMDHl+sy07bw1Q7NEEVBdocW3a7/Q4ipTwrN7BR7Sz3L I5hPCOHawwS3G8pHQHhkytu50pa/xtcFQzFtKEk9e2bxXFZavBGYuXxLNW8UGyelewJ20WrC05L Oe6Oakm3wt6YqjhuzBafVA7zkUplqJFE= X-Gm-Gg: AeBDiesUXjWumPoMasgTHSisTrPf0oS/L7C3SpO0DZJWZzvVl1wMeu/aJT7ZbIoqWVN T06IZ4B0TPKN1L/G/9UO+7j6GVBey/LZ11tCmcWLVglqh7bljRyXIH7XTlfWYKUc1GadkExd9mu 3lGB6uegu/mcp0/5dEx3eCPKTzKY6WUIiXM5CPpCJJ++iCtJ8PpJ9LVuPFlXYhxygpWTCbXqbll 9o2H5ACIoXKp9fUtQWI3PiBKo8s0WHlrWhBcecw4rt3wjqFMhJgT0uwpTB0AmbmB8FX73ANQdHO DRgu1M6M/rGuuLW/aw== X-Received: by 2002:a05:6122:a20f:b0:56f:1c32:bcfa with SMTP id 71dfb90a1353d-56fa59dcc4dmr6015704e0c.11.1776758351284; Tue, 21 Apr 2026 00:59:11 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: SATYANARAYANA NARLAPURAM Date: Tue, 21 Apr 2026 00:58:58 -0700 X-Gm-Features: AQROBzBwzAh-Nr4tKB1wQhiCbiS7I1PBFYia--9Y-qQLAEb1TQtTOUjSdXwRSGw 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="000000000000617021064ff3ca3e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000617021064ff3ca3e Content-Type: multipart/alternative; boundary="00000000000061701f064ff3ca3c" --00000000000061701f064ff3ca3c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Mon, Apr 20, 2026 at 11:58=E2=80=AFPM Ashutosh Bapat < ashutosh.bapat.oss@gmail.com> 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 < > 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