GENERATE AS - Mailing list pgsql-admin

From Wetmore, Matthew (CTR)
Subject GENERATE AS
Date
Msg-id 7c48174f8ce449af8f3e875bdeca7150@express-scripts.com
Whole thread Raw
Responses Re: GENERATE AS
Re: GENERATE AS
Re: GENERATE AS
Re: GENERATE AS
List pgsql-admin

Hi, I have this issue and now I’m just wasting time. Can you tell me what I’m doing wrong?

 

I’d like to subtract a column timestamp hour from current hour to give me hours elapased.

 

How do I do this easily?

 

I think I’ve tried every combination of types and casting.

 

Thanks in advance.

---------------------------

 

1. ALTER TABLE matt

               add column matt_time timestamp with time zone default current_timestamp;

 

2. select matt_time FROM matt;

 

2023-06-22 14:31:16.548622-04 timestamp with time zone

 

3. Select (date_part('hour', current_timestamp)::INT - date_part('hour', matt_time)::INT) FROM matt

 

0 (same hour, so 0 is OK) INT

 

4. ALTER TABLE auto_auth.matt

               ADD column matt_hour INT  GENERATED ALWAYS AS (date_part('hour', current_timestamp)::INT - date_part('hour', matt_time)::INT) stored       

              

               ERROR:  generation expression is not immutable

SQL state: 42P17

 

 

pgsql-admin by date:

Previous
From: "Wetmore, Matthew (CTR)"
Date:
Subject: work_mem + refresh mat view concurrently performance
Next
From: "David G. Johnston"
Date:
Subject: Re: GENERATE AS