PLPGSQL - extra column existence in trigger

From: Durumdara <durumdara(at)gmail(dot)com>
To: Postgres General <pgsql-general(at)postgresql(dot)org>
Subject: PLPGSQL - extra column existence in trigger
Date: 2022-05-07 13:02:09
Message-ID: CAEcMXhmO-FjavfjRwf6+sbR-FV_RPyG14gR7H5G+yM3u6J=udg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello!

We stored the username in a temporary table which was created by the client
app.
With this technique we can log these names in triggers too.

Now we extend it with user id and later the comp name.

Because we can update the client applications slowly, some client's tables
have these one or two extra fields, some not.

So in the new trigger we can't load them all with:

select username, userid, usercompname
into uname, uid, ucomp from tmp_userauth limit 1;

or

FOR rec IN select * from tmp_userauth limit 1 ...
IF ColumnExists(rec, 'uid') THEN --- ????
uid = rec.uid

So what is the best way to load the field values from the table?

Is there any way to know which field exists / avoid error or exception?

select username, getvaluewithouterror(userid, -1)...

So is there any syntax to not fall on missing columns?

Thank you!

Best regards,
dd

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Hasan Marzooq 2022-05-07 13:27:29 Re: pg_dump: VACUUM and REINDEXING
Previous Message Guillaume Lelarge 2022-05-07 10:06:42 Re: pg_dump: VACUUM and REINDEXING