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 1wHa3S-007Jss-2F for pgsql-hackers@arkaria.postgresql.org; Tue, 28 Apr 2026 04:28:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wHa3R-00FxrB-2q for pgsql-hackers@arkaria.postgresql.org; Tue, 28 Apr 2026 04:28:13 +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 1wHa3R-00Fxqt-1w for pgsql-hackers@lists.postgresql.org; Tue, 28 Apr 2026 04:28:13 +0000 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wHa3P-000000038Jj-21X3 for pgsql-hackers@lists.postgresql.org; Tue, 28 Apr 2026 04:28:12 +0000 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-4891cd41959so92078385e9.3 for ; Mon, 27 Apr 2026 21:28:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777350490; cv=none; d=google.com; s=arc-20240605; b=dos6iGjDgUU9rRIyt1Grhe8MNbbLbTfjZWT9u/mQ2GcRkLxOBlGAAjMi55QrRSq3LH DUn3yKgVPujbo8K8vwANffCNhBHbTIMjBcgX5PSuuXT6yQZcaL114/8Z4DvOJUmiMNrP eNVkwPsXtkTPKiQfd8kMAuPOo0P/x0SqG/dkhD6GneKMpp3hP9QR4YGN0gOVDPV1ejbe pRbpHX+B+PwLXlO+Wi+M02DXcy+YtVxpCWTwIpAS/CRj6o+lKSSzWacZkuPFr8w66+2O ayeAXNaXRPSy68vyxpNMWIXTOcD7V0Z4SHGzbAaBLxYsD1LoIU9Kpq9L+MSxp3sKdHqr h0Ng== 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:mime-version:dkim-signature; bh=HWyWrRtcD8Ok7zjMmc1KmyfnXL2DIsC4EqxmdON0Qnk=; fh=3zWu2Ci9/QjkAGkfka3s9xyIuxTfiDO8sO42X+xh3JY=; b=XWXNk6uMIP2sItEqgPUUi9Fq9aORcucyaUQ0p8ExLUuJZ2cGXvNCVWMF4LGzEU/EwK YUK0F0dhuagoDb5LXsuDOXWA6xyMyE+01/TDioyZuR9HnTqsjodon9cxPziYyG7Sjsh7 BXMm7qE+Rm1eOt9UPbRPuy1ed90f+TFgtu+OfBvwV+H+rT4GgVesFNSAiu04FhSP9rVC UIr1NGVobPekqAYiwJwIL46M66aulP9bpmezsgnM7rkUpqEzXXdjJ67tQREC9AotdM5o G+GhU522gXWGMgW11lrzjX2I07SBaMvDfSK1YF95uZzF0ieqxRF1yWwoi9Ifzzo9z+Qh fEnA==; 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=1777350490; x=1777955290; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=HWyWrRtcD8Ok7zjMmc1KmyfnXL2DIsC4EqxmdON0Qnk=; b=dh/GAQ890hdevEaoueGarKOPZSnxVOQdZ5EMFeH0Sad8ScsEAMwLQ/Og7eZJTQloZt gvcJUoM08EOBAnMyB2/OV34RzmGzTNwbAhBWDj3sok+tWX20khQ0+SbuEvL+Gui6Uk2s YUiq4Kgx34h8xiFXSKUkXjHO1AvX8uml4016jZE5FxUtpd3kfxC0i4tEkfbEKCXKoTcW EMlXjXzGpxuJqPB4MIfRAwNiWmVcDAcN4ip2xFvjhHGrzDMKkFPdBQMhifpgKausH2RM +5qKck1OvjCrWLrI/eO0zIv6gO/lNsApd1fGlta64qTst8g9pEG3i9C4QKc0hqzAol5a lXOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777350490; x=1777955290; h=cc:to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=HWyWrRtcD8Ok7zjMmc1KmyfnXL2DIsC4EqxmdON0Qnk=; b=KcysL2HQ4Iqr+suWRjpRvkP22sZmPXiVxgntXF2V9zl/OCe1VOk4Eyd7EZa3rZRG00 FFvv8BoNbU3mjgZaeFJmg0F/czKRkr8eZi4srCiW0Zbqsyt68pAw1jlXyOIa/vjBkkN3 SboeewawsyD2gKIJCPiAEPr3etYHGUlRQV8qMdNB6aEwOrUBGpe9uzapRzFao8wGqScP 9l/kj8cVNs6ikY+XnYHNYcOtKoaXzCmAeUe53O/5pSyXd7BvkepkIf8l82x5xexqaAdM ER8rdi+RXeo1mG2oJxre5DgI29EFbstN28gKBdCLC03JodKfnaIDvuWL4SscRmFbz+tK cAaw== X-Gm-Message-State: AOJu0YxWQFcNgZnC40whU29Y+ncaBfZR0sElw29uf05Le5HvRou9jBfR BP5lRLrZUQ3WgARnagNvHgHxrzz1rta/X9SiAJvFVm/WCNro8/29g6q8XmHyPR3thV6wZsWMNd1 0Dgp5zRIpvL4Ta7SxzwAe4BKWpHap4k16Hu0B X-Gm-Gg: AeBDietPrTK5e0+6xPXrHGDUsGqnT/4ozN4oy686xESPk6imvmBTHFdUR9DjX4rKo4d VTyfUDbZrhD3/J1gMXoruTfn3Xyzgbh5CvxkSSKPcEKJF+hEaSL8ZUSHxbGcNVcM8+qkUl3RYLn s9fnKLwLYXqoVJTYAViCKVC3NIySCzqc6pvIJajVdleVMnTZCFE6lkejTpUu/JwZ/RDGV7IkHn4 aN4/WH9g1AionlsylVPAYZy4Muck6KEdSW9YpO/dbJYl539rX+6xH+5C+1afp/t6LxZikRe5Yxq UD57/EMmayhrvaabFd9r7Nrsw25FwfT/AMspQGlDqcEVP3UPIH1YNR7gOO4EI/9pePYmkgkiKTo uHCliyXkb X-Received: by 2002:a05:600c:1c18:b0:488:e7e4:8425 with SMTP id 5b1f17b1804b1-48a77b0ec86mr21182925e9.23.1777350489989; Mon, 27 Apr 2026 21:28:09 -0700 (PDT) MIME-Version: 1.0 From: David Rowley Date: Tue, 28 Apr 2026 16:27:59 +1200 X-Gm-Features: AVHnY4JmKU6PUfdZRy1JX-m_BWS4CyHN-rGIuM9X2gsgQ5yAxLzP5dayIb-H98E Message-ID: Subject: Any reason to keep HEAP_HASOID_OLD? To: PostgreSQL Developers Cc: Andres Freund Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Andres mentioned to me that I might want to look at HeapTupleHeaderGetOidOld() as there's a comment and some code there that would lead you to believe we can still have tuples with oids. If that were true, the code I recently added for getting 'tp' in slot_selectively_deform_heap_tuple() is wrong. #define HEAP_HASOID_OLD 0x0008 /* has an object-id field */ On 11.22, I tried: create extension pageinspect; create table t1 (a int) with oids; insert into t1 select generate_Series(1,1000); select count(*) from heap_page_items(get_raw_page('public.t1',0)) where t_infomask & 8 <> 0; count ------- 185 alter table t1 set without oids; select count(*) from heap_page_items(get_raw_page('public.t1',0)) where t_infomask & 8 <> 0; count ------- 0 And also, if I try to pg_upgrade before SET WITHOUT OIDS, I get: $ pg_upgrade -d pgdata11 -D pgdata -b ~/pg11/bin -B ~/pg/bin Performing Consistency Checks ----------------------------- Checking cluster versions ok Checking database user is the install user ok Checking database connection settings ok Checking for prepared transactions ok Checking for system-defined composite types in user tables ok Checking for reg* data types in user tables ok Checking for contrib/isn with bigint-passing mismatch ok Checking for user-defined encoding conversions ok Checking for user-defined postfix operators ok Checking for incompatible polymorphic functions ok Checking for tables WITH OIDS fatal So, I'm not following how we could get a tuple with OIDs in versions after 11. Should we get rid of HEAP_HASOID_OLD and the code that relates to it? David