Re: initialize and use variable in query - Mailing list pgsql-general

From David G. Johnston
Subject Re: initialize and use variable in query
Date
Msg-id CAKFQuwbq63d_UX1cvKWLBQtymevSxbVM=vkaYG6hk1pq6rEELQ@mail.gmail.com
Whole thread Raw
In response to initialize and use variable in query  (Glenn Schultz <glenn@bondlab.io>)
Responses initialize and use variable in query  ("David G. Johnston" <david.g.johnston@gmail.com>)
List pgsql-general
On Saturday, December 29, 2018, Glenn Schultz <glenn@bondlab.io> wrote:
All,

I need to initialize a variable and then use it in query.  Ultimately this will part of a recursive CTE but for now I just need to work this out.  I followed the docs and thought I needed something like this.  But does not work-maybe I have misunderstood.  Is this possible?

SET max_parallel_workers_per_gather = 8;
SET random_page_cost = 1;
SET enable_partitionwise_aggregate = on;
Do $$
Declare startdate date;
BEGIN
startdate := (select max(fctrdt) from fnmloan);
END $$;

The stuff in the DO block is plpgsql, the stuff outside is SQL.  SQL cannot see plpgsql variables.  And the plpgsql variables cease to exist at the end of the block anyway.

You need to use SET or set_config with a custom variable (namespaced) in the SQL portion of the script (examples are out there somewhere, not able to research for you presently).  Or maybe use psql and its features/variables...

David J.

pgsql-general by date:

Previous
From: Ray O'Donnell
Date:
Subject: Re: initialize and use variable in query
Next
From: "David G. Johnston"
Date:
Subject: initialize and use variable in query