public inbox for [email protected]  
help / color / mirror / Atom feed
From: Mauricio Martini <[email protected]>
To: [email protected] <[email protected]>
Subject: Technical validation on altering atttypmod for numeric column in PostgreSQL
Date: Mon, 23 Mar 2026 13:02:42 +0000
Message-ID: <BN7PR10MB2609BBFDA87D4BBC22ABF14D824BA@BN7PR10MB2609.namprd10.prod.outlook.com> (raw)

Hi team,
I am evaluating an approach to change the scale of a numeric column from numeric(18,2) to numeric(18,4) in a large table, aiming to avoid the cost of a full table rewrite.
The proposed approach involves directly updating the PostgreSQL system catalog:

UPDATE pg_attribute
SET atttypmod = (18 << 16 | 4) + 4
WHERE attrelid = 'table'::regclass
  AND attname  = 'column';

Before considering this in practice, I would like to validate a few points:

  *   Is this approach considered safe from a data integrity perspective?
  *   Is there a risk of inconsistencies in the internal representation of the numeric type (especially regarding scale)?
  *   Could this impact indexes, functions, or aggregation operations?
  *   Is there any official recommendation or prior experience using this approach in production environments?
  *   Are there additional risks related to rollback, maintenance, or future operations (e.g., dump/restore, upgrades)?

The goal is to determine whether this alternative is viable, or if we should stick with more standard approaches (e.g., shadow column, incremental migration, etc.).
If anyone has experience with a similar scenario, your insights would be appreciated.
Thanks.



Att. Mauricio Martini


view thread (5+ 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]
  Subject: Re: Technical validation on altering atttypmod for numeric column in PostgreSQL
  In-Reply-To: <BN7PR10MB2609BBFDA87D4BBC22ABF14D824BA@BN7PR10MB2609.namprd10.prod.outlook.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