Rename of varatt_external to varatt_external_oid
Hackorum builds and tests every patch posted to the lists, not only commitfest submissions. This is Hackorum's own CI rather than the PostgreSQL project's, and it is still under testing - please report anything that looks wrong.
This thread has been committed, so CI has stopped here. Anything below is the last result it produced.
You can run a PostgreSQL built from this patch straight from Docker, with no checkout and no build:
docker run --rm -p 5432:5432 ghcr.io/hackorum-dev/postgres-patch:t253665psql -h localhost -U postgresBuilt from patchset v3 (message #3), September 05, 2026 at 01:33 AM.
Every patchset is also pushed to a branch of our PostgreSQL fork, so you can check out the same tree CI built. Without a PostgreSQL checkout:
git clone --branch t253665_3 https://github.com/hackorum-dev/postgres.gitIn a checkout you already have, add the fork once:
git remote add hackorum https://github.com/hackorum-dev/postgres.gitthen, for this patchset and every later one:
git fetch hackorum t253665_3 && git checkout t253665_3Patchset v3 (message #3) is on t253665_3
Hi all,
(Tom and Andres in CC, as they've commented on the original "round 1"
thread)
In order to add support of 8-byte TOAST values, one item that I have
on my list of items is a set of renames in the varatt.h definitions
for some objects, as of:
- varatt_external -> varatt_external_oid
- VARTAG_ONDISK -> VARTAG_ONDISK_OID
- TOAST_POINTER_SIZE -> TOAST_OID_POINTER_SIZE
- TOAST_MAX_CHUNK_SIZE -> TOAST_OID_MAX_CHUNK_SIZE
- Few macros in varatt.h.
- (I'm aware of the control file bit, left out on purpose as its
tracking is still valid even if we extend to 8 bytes.)
This is related to the following, larger patch set, but I wanted to
make a last call before proceeding as it is hidden in a much larger
set of patches:
/messages/by-id/af19kUjwjhaoUTLn@paquier.xyz
Tom has commented about this part of the patch here, presented in
0003:
/messages/by-id/1891064.1754681536@sss.pgh.pa.us
This is a more ambitious version of it, with more mechanical renames
to make the difference between the OID and OID8 flavors of the
pointers.
One point of the renames is to make extension folks aware of the fact
that the new TOAST structures may need handling due to the new 8-byte
values. Still, I also feel guilty to not provide a set of
compatibility definitions, which is of course one option. Note that
I'm planning to do all that early in the release cycle for v20, to get
room for it.
Rebased on HEAD is the patch I have for staging. Any thoughts,
comments or objections?
--
Michael
On Sep 4, 2026, at 07:33, Michael Paquier <michael@paquier.xyz> wrote:
Hi all,
(Tom and Andres in CC, as they've commented on the original "round 1"
thread)In order to add support of 8-byte TOAST values, one item that I have
on my list of items is a set of renames in the varatt.h definitions
for some objects, as of:
- varatt_external -> varatt_external_oid
- VARTAG_ONDISK -> VARTAG_ONDISK_OID
- TOAST_POINTER_SIZE -> TOAST_OID_POINTER_SIZE
- TOAST_MAX_CHUNK_SIZE -> TOAST_OID_MAX_CHUNK_SIZE
- Few macros in varatt.h.
- (I'm aware of the control file bit, left out on purpose as its
tracking is still valid even if we extend to 8 bytes.)This is related to the following, larger patch set, but I wanted to
make a last call before proceeding as it is hidden in a much larger
set of patches:
/messages/by-id/af19kUjwjhaoUTLn@paquier.xyzTom has commented about this part of the patch here, presented in
0003:
/messages/by-id/1891064.1754681536@sss.pgh.pa.usThis is a more ambitious version of it, with more mechanical renames
to make the difference between the OID and OID8 flavors of the
pointers.One point of the renames is to make extension folks aware of the fact
that the new TOAST structures may need handling due to the new 8-byte
values. Still, I also feel guilty to not provide a set of
compatibility definitions, which is of course one option. Note that
I'm planning to do all that early in the release cycle for v20, to get
room for it.Rebased on HEAD is the patch I have for staging. Any thoughts,
comments or objections?
--
Michael
<0001-Rename-varatt_external-to-varatt_external_oid.patch>
I tried to review this patch, but “git am” failed on the current HEAD (2b3d11aaed8). Would you please rebase?
```
% git am ~/Downloads/0001-Rename-varatt_external-to-varatt_external_oid.patch
Applying: Rename varatt_external to varatt_external_oid
error: patch failed: src/backend/access/heap/heaptoast.c:634
error: src/backend/access/heap/heaptoast.c: patch does not apply
error: patch failed: contrib/amcheck/verify_heapam.c:1558
error: contrib/amcheck/verify_heapam.c: patch does not apply
Patch failed at 0001 Rename varatt_external to varatt_external_oid
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config set advice.mergeConflict false"
```
Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/
On Fri, Sep 04, 2026 at 08:43:37AM +0800, Chao Li wrote:
I tried to review this patch, but “git am” failed on the current
HEAD (2b3d11aaed8). Would you please rebase?
Oops. Sorry for the incorrect rebase blurp caused by 2b3d11aaed89.
The attached should work better.
--
Michael
On Sep 4, 2026, at 09:20, Michael Paquier <michael@paquier.xyz> wrote:
On Fri, Sep 04, 2026 at 08:43:37AM +0800, Chao Li wrote:
I tried to review this patch, but “git am” failed on the current
HEAD (2b3d11aaed8). Would you please rebase?Oops. Sorry for the incorrect rebase blurp caused by 2b3d11aaed89.
The attached should work better.
--
Michael
<v2-0001-Rename-varatt_external-to-varatt_external_oid.patch>
I briefly went through the referenced patch as well as Tom’s comment, so I have no objection to this renaming.
The code changes in v2 look good to me.
Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/