public inbox for [email protected]
help / color / mirror / Atom feedRe: Postgres do not support tinyint?
3+ messages / 3 participants
[nested] [flat]
* Re: Postgres do not support tinyint?
@ 2025-01-10 09:41 Dominique Devienne <[email protected]>
2025-01-10 10:44 ` Re: Postgres do not support tinyint? [email protected]
2025-01-10 15:04 ` Re: Postgres do not support tinyint? Vladlen Popolitov <[email protected]>
0 siblings, 2 replies; 3+ messages in thread
From: Dominique Devienne @ 2025-01-10 09:41 UTC (permalink / raw)
To: Vladlen Popolitov <[email protected]>; +Cc: Igor Korot <[email protected]>; Christophe Pettus <[email protected]>; David G. Johnston <[email protected]>; Ron Johnson <[email protected]>; pgsql-generallists.postgresql.org <[email protected]>
On Fri, Jan 10, 2025 at 10:13 AM Vladlen Popolitov
<[email protected]> wrote:
> If you really need 1-byte integer, you can use "char" type. Cast it
> to/from int. See comment at the end of the page
> https://www.postgresql.org/docs/17/datatype-character.html
Hi. What would be the best online doc to learn about the physical
storage / format for rows/pages/btree, etc... To understand alignment,
packing, varint or not, all those things. I'm quite familiar with the
[SQLite format][1], having read that doc dozens of times, and I'd like
a better low-level understanding for PostgreSQL as well. TIA, --DD
[1]: https://www.sqlite.org/fileformat.html
^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: Postgres do not support tinyint?
2025-01-10 09:41 Re: Postgres do not support tinyint? Dominique Devienne <[email protected]>
@ 2025-01-10 10:44 ` [email protected]
1 sibling, 0 replies; 3+ messages in thread
From: [email protected] @ 2025-01-10 10:44 UTC (permalink / raw)
To: [email protected]
Dominique Devienne schrieb am 10.01.2025 um 10:41:
> On Fri, Jan 10, 2025 at 10:13 AM Vladlen Popolitov
> <[email protected]> wrote:
>> If you really need 1-byte integer, you can use "char" type. Cast it
>> to/from int. See comment at the end of the page
>> https://www.postgresql.org/docs/17/datatype-character.html
>
> Hi. What would be the best online doc to learn about the physical
> storage / format for rows/pages/btree, etc... To understand alignment,
> packing, varint or not, all those things. I'm quite familiar with the
> [SQLite format][1], having read that doc dozens of times, and I'd like
> a better low-level understanding for PostgreSQL as well. TIA, --DD
The alignment requirement of each type is available in pg_type
https://www.postgresql.org/docs/current/catalog-pg-type.html
The physical layout on disk is described here:
https://www.postgresql.org/docs/current/storage.html
And the "Postgres intenrals" site might be helpful as well:
https://www.interdb.jp/pg/pgsql01.html
There are various (blog) posts on how to optimize space considering alignment
* https://stackoverflow.com/a/7431468
* https://www.enterprisedb.com/blog/rocks-and-sand
The "postgres_dba" toolset has a little SQL script to evaluate the space savings:
https://github.com/NikolayS/postgres_dba/blob/master/sql/p1_alignment_padding.sql
^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: Postgres do not support tinyint?
2025-01-10 09:41 Re: Postgres do not support tinyint? Dominique Devienne <[email protected]>
@ 2025-01-10 15:04 ` Vladlen Popolitov <[email protected]>
1 sibling, 0 replies; 3+ messages in thread
From: Vladlen Popolitov @ 2025-01-10 15:04 UTC (permalink / raw)
To: Dominique Devienne <[email protected]>; +Cc: Igor Korot <[email protected]>; Christophe Pettus <[email protected]>; David G. Johnston <[email protected]>; Ron Johnson <[email protected]>; pgsql-generallists.postgresql.org <[email protected]>
Dominique Devienne писал(а) 2025-01-10 16:41:
> On Fri, Jan 10, 2025 at 10:13 AM Vladlen Popolitov
> <[email protected]> wrote:
>> If you really need 1-byte integer, you can use "char" type. Cast it
>> to/from int. See comment at the end of the page
>> https://www.postgresql.org/docs/17/datatype-character.html
>
> Hi. What would be the best online doc to learn about the physical
> storage / format for rows/pages/btree, etc... To understand alignment,
> packing, varint or not, all those things. I'm quite familiar with the
> [SQLite format][1], having read that doc dozens of times, and I'd like
> a better low-level understanding for PostgreSQL as well. TIA, --DD
>
> [1]: https://www.sqlite.org/fileformat.html
I would recommend "PostgreSQL Internals" of Egor Rogov (Chapter 3 about
tuples,
other chapters also great)
Free download from https://postgrespro.com/community/books/internals
Also PostgreSQL source code is officially the part of the documentation.
It is not joke. PostgreSQL source has clear comments in functions code
and in structure declarations. You can compare with other sources, it is
hard to find better
comments made with love.
Heap tuple information is in source file
src/include/access/htup_details.h (HeapTupleHeaderData
structure), but I recommend to read above book first, it simplier
explains many
internal concepts.
--
Best regards,
Vladlen Popolitov.
^ permalink raw reply [nested|flat] 3+ messages in thread
end of thread, other threads:[~2025-01-10 15:04 UTC | newest]
Thread overview: 3+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2025-01-10 09:41 Re: Postgres do not support tinyint? Dominique Devienne <[email protected]>
2025-01-10 10:44 ` [email protected]
2025-01-10 15:04 ` Vladlen Popolitov <[email protected]>
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox