public inbox for [email protected]  
help / color / mirror / Atom feed
From: Pavel Stehule <[email protected]>
To: Ray O'Donnell <[email protected]>
Cc: pgsql-general <[email protected]>
Subject: Re: plpgsql: remove a field from a record?
Date: Sat, 27 Dec 2025 17:14:04 +0100
Message-ID: <CAFj8pRAKQ6qN-TkNWpFg5Gnsbkzwpo9YgnXJvUY2_GSeO1jdcA@mail.gmail.com> (raw)
In-Reply-To: <0102019b608b1887-d8e9137f-46a7-4796-9f43-0addbab3c645-000000@eu-west-1.amazonses.com>
References: <0102019b608b1887-d8e9137f-46a7-4796-9f43-0addbab3c645-000000@eu-west-1.amazonses.com>

Hi

so 27. 12. 2025 v 17:01 odesílatel Ray O'Donnell <[email protected]> napsal:

> Hi all,
>
> In a plpgsql function, is it possible to remove a field from a RECORD
> value?
>
> My specific use-case is that I have a row returned from a MERGE
> operation into a variable, declared as type RECORD, which will then be
> logged; and I want to remove some potentially sensitive stuff from it
> before it gets logged.
>
> I could manually redact the sensitive items (e.g. set them to null); but
> it'd be tidier just to remove them altogether if I can.
>
> Thanks in advance,
>

I think so it is not possible - not directly. Maybe you can use jsonb or
hstore

(2025-12-27 17:12:06) postgres=# create type t as (a int, b int);
(2025-12-27 17:12:24) postgres=# select * from
jsonb_to_record(row_to_json(row(10,20)::t)::jsonb - 'a') as (b int);
┌────┐
│ b  │
╞════╡
│ 20 │
└────┘
(1 row)

Regards

Pavel


>
> Ray.
>
> --
> Ray O'Donnell // Galway // Ireland
> [email protected]
>
>
>
>


view thread (3+ messages)

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: plpgsql: remove a field from a record?
  In-Reply-To: <CAFj8pRAKQ6qN-TkNWpFg5Gnsbkzwpo9YgnXJvUY2_GSeO1jdcA@mail.gmail.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