Re: Global Variables? - Mailing list pgsql-general

From Eric Radman
Subject Re: Global Variables?
Date
Msg-id 20111011195315.GA14540@SDF.ORG
Whole thread Raw
In response to Re: Global Variables?  (Alban Hertroys <haramrae@gmail.com>)
List pgsql-general
On Tue, Oct 11, 2011 at 04:26:47PM +0200, Alban Hertroys wrote:
> On 11 October 2011 16:06, Eric Radman <ericshane@eradman.com> wrote:
> > When writing unit tests it's sometimes useful to stub functions such
> > as the current date and time
>
> You could create a table for such "constants" and read your
> current-time from that table.
>
> Additionally, I would put such stub functions in a separate schema and
> create a test role with that schema as the top of their search_path.
>
> That way, you could even override system function implementations (and
> other definitions) and only have them apply to the role you're using
> for unit testing.

> CREATE ROLE unit_tester;
> CREATE SCHEMA unit_tests AUTHORIZATION unit_tester;
> SET search_path TO unit_tests, my_schema, public;
>
> CREATE TABLE unit_test_parameters (
>    current_time timestamp without time zone NOT NULL DEFAULT now()
> );

Excellent advice; this model works wonderfully. pg_catalog is normally
implicit, but you're right, system functions can be overridden by
setting the search path.


Eric Radman  |  http://eradman.com

pgsql-general by date:

Previous
From: John R Pierce
Date:
Subject: Re: libpq 8.3 and 8.4 interfaces
Next
From: Java Services
Date:
Subject: how to call a stored function from another stored function? even possible?