trap instead of error on 32 TiB table
Christoph Berg <christoph.berg@credativ.de>
From: Christoph Berg <christoph.berg@credativ.de>
To: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2021-09-09T11:52:41Z
Lists: pgsql-hackers
I was wondering what happens when the 32 TiB per table limit is
reached, so I faked 32767 1 GiB sparse files using dd and then tried
inserting more rows.
On a cassert-enabled build I got:
TRAP: FailedAssertion("tagPtr->blockNum != P_NEW", File: "./build/../src/backend/storage/buffer/buf_table.c", Line: 125)
On a normal build, I got:
ERROR: cannot extend file "base/18635/53332" beyond 4294967295 blocks
ORT: mdextend, md.c:443
Shouldn't the cassert build raise the ERROR instead as well?
PostgreSQL 13.4.
Christoph
--
Senior Consultant, Tel.: +49 2166 9901 187
credativ GmbH, HRB Mönchengladbach 12080, USt-ID-Nummer: DE204566209
Trompeterallee 108, 41189 Mönchengladbach
Geschäftsführung: Dr. Michael Meskes, Sascha Heuer, Geoff Richardson,
Peter Lilley; Unser Umgang mit personenbezogenen Daten unterliegt
folgenden Bestimmungen: https://www.credativ.de/datenschutz
Commits
-
Check for relation length overrun soon enough.
- cc4de2bba02f 9.6.24 landed
- ca1dd6234049 10.19 landed
- a7a73ce30171 12.9 landed
- 8481f99896a1 15.0 landed
- 7430c774209c 14.0 landed
- 1a23b669db57 11.14 landed
- 04118de78fe9 13.5 landed