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 1w3OVQ-001B1l-2N for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Mar 2026 01:18:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w3OVP-003l9w-0s for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Mar 2026 01:18:27 +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 1w3OVO-003l9i-3D for pgsql-hackers@lists.postgresql.org; Fri, 20 Mar 2026 01:18:27 +0000 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w3OVN-000000005f8-3CTd for pgsql-hackers@lists.postgresql.org; Fri, 20 Mar 2026 01:18:26 +0000 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-43b44c0bcdbso1174833f8f.1 for ; Thu, 19 Mar 2026 18:18:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773969504; cv=none; d=google.com; s=arc-20240605; b=dDs54MkgjaxAgzj2IeZ7JYtLiAFr+D46Rna8d6+Ufb9IO3J4SxisK3MezTL0Da25i1 xvcAQvplKL3DKvqgf77LZMBaFU1eidYpFPtmi4ltgN4bryQdB327uVJiH8PJ5Tjddu5V Ej2SMpEvbPsG26ofqTBUUnyH4PxMapdlrsekKKkrFgd3K7pVAAYjZxaLLsk4APupnmG6 r9tXfXHbb0bozGU48ZdjhMwuSHeEpUT60MQOXaYmoc7dduj0a/UaooRQSoVoA5gZSu2P 2oT5D4OpKPywhwuu8PEJUDvCbJexDgggd7QObDFMOcDFNeCqbkVbozkYG01i4wfzL077 lN2w== 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=hAj+gb0M2/QWYDGYX4TvyrzMKiY6XFfcEQDsC2fLc5o=; fh=nVkWBYFiPiinZJRHf0CPVJGOpydLTVYLZzktwOS1LQ4=; b=eFzUEVrzkom4rw18uOx1ctoGeRSkC273BD5RkaRm9YH3PO0zmtmUfhFmfhNAb98pMv 7mIDqIaVIFETp43evG/4HfS5rfQCoJqKcD5sbRykpJgrfbvSDqGgWKX4HPW8eB7S0GgP tT1pdV0ogntqODbXrAQ3I0XAOAhjJxIU1rbiFTBNzwy7uso0kPPouPc5Ck345ZOpSJTP 12pM6d0T7cm9C/l5O25JxWHIPCptxKglhJYMFbf2Q/9fK9mIC/0OToSfMGacGhJMRn/5 mA0kTRKqVxy7ePcgSIK+b1fXZnJxgKs0+F0CEGhlk4Y++hiSMPAqKa5Ol1BFSNguTDlf l0+w==; 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=20230601; t=1773969504; x=1774574304; 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=hAj+gb0M2/QWYDGYX4TvyrzMKiY6XFfcEQDsC2fLc5o=; b=eTsjDrnPhh4AuHVz5S6BPkmrwRNpv0jpENRP/0aEh9yI0X/CkSQYKbj2pnn4npFM05 pf75BsoLyHyRx2nQSDqHb78NzWNB0C+9/AM0ffCp6jO8OAXvjfDceY87mfMEnenUYetk h606pwRTDSsq/EUDF5PRFU6Ypd8uT+vk2pas/SZnQXauL9zDtxrSDPfCJ3jrO1F09JdM aELOEy+t2PFkQOtj/U4YdLSRIirm2IJO5bQ4NsBBAYMSpphAB9RwvbUug12d11BVLzfL 9xuvuN5eC+sYDY586LTO3pZTA9x94kxhMHUkE+5jRdyrPnaBj435LjfxnlVOygvMRtoT jgtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773969504; x=1774574304; 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=hAj+gb0M2/QWYDGYX4TvyrzMKiY6XFfcEQDsC2fLc5o=; b=jPJ5e6eB6TfcTcqlLi9UsZcJ3ZzAJzY/iy3LzRlY6E5mYOoB2nAGzokSU2rpcajGri E6cToycZePEY1YZTxeB8MMywiutF57wYwPGn0tY0OZaIKHZf9Jv1lahArlDnCTFx8F3R DbWzkde/WEoo5NWvzfGu3JGFugsHDQSpxTIfd4OOc7WLM1XVd04mVW2J+9a8m4odrbDV 5G/uishf7oPrSMI6x9d2RgGeks6GOCL29YYeitUC0OvmZneaiCRUNYYxBSFTWZjnjbN2 /wSRYSoYsdXHnRDHH1NmMrI3y0CJIn7gH4+wTqD4WOLJiB5cYpi8Q40kv1Gh2WLHeDZH 63Eg== X-Forwarded-Encrypted: i=1; AJvYcCVEAKTAygikAyei4zPp0S24SgFOXda98PZgMOE6592Nvl6Gu0XZKmtDySjFXPZXYW9p6vj4aGMfYJZZdNoR@lists.postgresql.org X-Gm-Message-State: AOJu0YyAClT6+Dekt2IKRa93iccsvlzhO6MnuFEuPALSJeIJrtUsN0UK Y/A21BwzxJGTWru3Y1JQWyDN7hMyBQJSInc8CsKoOQDcrxBds8+OJjb2QwB4k/rCe2ElqHDUx08 qDAPFokEinMJwHXfD76ae4CTBe4VPN28= X-Gm-Gg: ATEYQzx0K1zU72ZTk3TfzEpQLkN4oj0IJUYaBsaQKEif7tWYceZGz2+AiDABh+IBpDp hcfgnpH0HIIaGzWRqaxOtXITF0xf/j9HQK7cXulQK16N1xbLbI0b9IDpIzlVwSVXi9alBADpIXc yOdxRlFXXL2/2ZvF+VnIscFu2+B2RUDUf4Nssg0PqkWazjvNpddkmwp3JxabbXcfUtYxPVHnyb3 822lm3yCE1fQdwhg2eFNDjuRttUhU2xvYSgUBpkgxByEuq9PvmUQ7dESnEN4FqBh/kgqA/Jcz7K IUiWm7QxDsWc+0QhDgn7xk0aTNnl+rt6/+dXcV7n9VgZuhrTuupEapJ/37QO6xQQUCJHXKABw9z fnyQDqHIC X-Received: by 2002:a05:6000:2dc2:b0:43b:4f7d:e085 with SMTP id ffacd0b85a97d-43b64262ee3mr2276141f8f.35.1773969504031; Thu, 19 Mar 2026 18:18:24 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: David Rowley Date: Fri, 20 Mar 2026 14:18:12 +1300 X-Gm-Features: AaiRm52g-9pDpDqZQ94LP7jikwyC7bbeVsjRCWEqEHzX0G_6Ot59ebE7u09gB9Q Message-ID: Subject: Re: More speedups for tuple deformation To: Tender Wang Cc: Andres Freund , John Naylor , PostgreSQL Developers 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 Fri, 20 Mar 2026 at 01:56, David Rowley wrote: > > On Fri, 20 Mar 2026, 01:39 Tender Wang, wrote: >> 1197 pg_assume(attlen > 0 || attlen =3D=3D -1); >> (gdb) p attlen >> $1 =3D -2 > > > Thanks for the report. I'll look in detail in the morning when I'm at my = computer again. I guess i'll need to add an extra parameter (that will be c= onstant folded away during the inlining) to the deformed function to specif= y if cstrings can exist in the tuple, which seemingly needs to be true when= deforming minimal tuples. I'd rather not lose that optimisation with heap = tuples. I've pushed a fix for this. A more simple recreator was: with cte as materialized (select relname::cstring as relname from pg_class) select relname from cte; David