Re: Postgres 12 - Generated Columns - Backup/Restore

From: Santosh Udupi <email(at)hitha(dot)net>
To: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
Cc: pgsql-novice(at)lists(dot)postgresql(dot)org
Subject: Re: Postgres 12 - Generated Columns - Backup/Restore
Date: 2021-01-21 13:51:26
Message-ID: CACLRvHYxkG4wu5JDc3ApAd4TUh=XsHALAMB4fcdSU-B9y1NNxw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Hi Laurenz - Based on Tom's email earlier, I realized it was my
function that was causing the issue. I am trying to figure out where the
problem is

Here is my function:

column definition is as below:

completed_date_time timestamptz GENERATED ALWAYS AS
(task_completed_date(info->>'dd', info->>'qq', info->>'dp', info->>'ej',
info->>'dq', info->>'ek') ) stored

-- 'info' is a jsonb column in the same table
------------------------------------------
-- task_completed_date() is defined as 'immutable', but calls another
function:

;create or replace FUNCTION task_completed_date(completed_date_string text,
completed_time_string text default null,
check_in_date_string text default null, check_in_time_string text default
null,
check_out_date_string text default null, check_out_time_string text default
null)

RETURNS timestamptz as
$$
begin

if check_out_date_string is not null and length(check_out_date_string)> 0
then
return
date_convert_date_time_string_to_timestamptz(check_out_date_string,
check_out_time_string);

else

return date_convert_date_time_string_to_timestamptz(completed_date_string,
completed_time_string);

end if;

exception when others then
return null;
END ;
$$
LANGUAGE plpgsql immutable;
-----------------------------------------------------------

-- function date_convert_date_time_string_to_timestamptz is also defined as
'immutable':

create or replace FUNCTION
date_convert_date_time_string_to_timestamptz(VARIADIC params text[])

RETURNS timestamptz as
$$
begin

return array_to_string($1 , ' ')::timestamptz ;
exception when others then
return null;
END ;
$$
LANGUAGE plpgsql immutable;
-----------------------------------------------------------------

On Thu, Jan 21, 2021 at 4:36 AM Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
wrote:

> On Wed, 2021-01-20 at 17:32 -0800, Santosh Udupi wrote:
> > My Postgres 12 database tables have generated columns. I use pg_dump to
> backup
> > the database but when I restore using pg_restore, the generated columns
> are empty.
> > How do I trigger creating the data in the generated columns?
>
> Does the expression that generates the computed column uses an
> expression containing a function that is marked IMMUTABLE, but
> isn't really?
>
> Yours,
> Laurenz Albe
> --
> Cybertec | https://www.cybertec-postgresql.com
>
>

In response to

Browse pgsql-novice by date

  From Date Subject
Next Message DAVID ROTH 2021-01-22 17:10:10 FDW
Previous Message Laurenz Albe 2021-01-21 12:36:14 Re: Postgres 12 - Generated Columns - Backup/Restore