public inbox for [email protected]  
help / color / mirror / Atom feed
From: Adrian Klaver <[email protected]>
To: Ertan Küçükoglu <[email protected]>
To: [email protected]
Subject: Re: Domains vs data types
Date: Wed, 20 Aug 2025 08:05:44 -0700
Message-ID: <[email protected]> (raw)
In-Reply-To: <CAH2i4yf_M5NfX_kDu6_2Z+sgqLOZK9vCsF3EfmwZQyYFuAMxpg@mail.gmail.com>
References: <CAH2i4yf_M5NfX_kDu6_2Z+sgqLOZK9vCsF3EfmwZQyYFuAMxpg@mail.gmail.com>

On 8/19/25 21:47, Ertan Küçükoglu wrote:
> Hello,
> 
> I am using PostgreSQL 17.6.
> I would like to learn if there is any benefit of using domains over data 
> types for table column definitions in terms of performance gain/loss.
> 
> For example I might have table defined as below
> create table test (
>    a integer,
>    b integer,
>    c integer,
>    d varchar(5)
> );
> 
> I might also have ame table defined as below
> 
> create domain aint integer;
> create domain s5 varchar(5);
> 
> create table test_domain (
>    a aint,
>    b aint,
>    c aint,
>    d s5
> );
> 
> Does the second table have any technical advantage/disadvantage over 
> plain data type definition?
> Less metadata in memory? High metadata in memory? Less/increased disk space?

See:

https://www.postgresql.org/docs/current/catalog-pg-type.html

for what is stored in system catalog for a domain vs a base type.

Personally I don't see that integer --> aint really helps.
Also I am pretty sure varchar(5) --> s5 is still going to result in a 
length check.

> 
> Thanks & Regards,
> Ertan


-- 
Adrian Klaver
[email protected]






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: Domains vs data types
  In-Reply-To: <[email protected]>

* 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