public inbox for [email protected]
help / color / mirror / Atom feedFrom: David Rowley <[email protected]>
To: PostgreSQL Developers <[email protected]>
Cc: Andres Freund <[email protected]>
Subject: Any reason to keep HEAP_HASOID_OLD?
Date: Tue, 28 Apr 2026 16:27:59 +1200
Message-ID: <CAApHDvqB=kapsgwvLiPZRhfyFcJB6nw-Xs2D-jHm6ddRcxP7zA@mail.gmail.com> (raw)
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
view thread (2+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected]
Subject: Re: Any reason to keep HEAP_HASOID_OLD?
In-Reply-To: <CAApHDvqB=kapsgwvLiPZRhfyFcJB6nw-Xs2D-jHm6ddRcxP7zA@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox