Re: Freezing localtimestamp and other time function on some value - Mailing list pgsql-general

From Pavel Stehule
Subject Re: Freezing localtimestamp and other time function on some value
Date
Msg-id CAFj8pRCaf-GHSQajHavAw1o+ppwp2efOuzDzXmTQox+M4VMVrg@mail.gmail.com
Whole thread Raw
In response to Freezing localtimestamp and other time function on some value  (Alex Ignatov <a.ignatov@postgrespro.ru>)
Responses Re: Freezing localtimestamp and other time function on some value
List pgsql-general
Hi

2016-04-12 12:50 GMT+02:00 Alex Ignatov <a.ignatov@postgrespro.ru>:
Hello!
Is there any method to freeze localtimestamp and other time function value.
Say after freezing on some value sequential calls to these functions give you the same value over and over again.
This  is useful primarily for testing.

In oracle there is alter system set fixed_date command. Have Postgres this functionality?

It is not possible in Postgres

PostgreSQL solution is using working time as function parameter. This parameter can have default value.

postgres=# select test('2016-03-10 10:00:00');

NOTICE:  current time is: 2016-03-10 10:00:00

postgres=# select test();
NOTICE:  current time is: 2016-04-12 13:47:21.644488

postgres=# select test();
NOTICE:  current time is: 2016-04-12 13:47:22.633711

CREATE OR REPLACE FUNCTION public.test(t timestamp without time zone DEFAULT now())
 RETURNS void
 LANGUAGE plpgsql
AS $function$
BEGIN
  RAISE NOTICE 'current time is: %', t;
END;
$function$

Regards

Pavel
 

--
Alex Ignatov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company



--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

pgsql-general by date:

Previous
From: Petr Korobeinikov
Date:
Subject: Re: Freezing localtimestamp and other time function on some value
Next
From: Petr Korobeinikov
Date:
Subject: Re: Freezing localtimestamp and other time function on some value