Re: select view definition from pg_views feature request - Mailing list pgsql-general

From Adrian Klaver
Subject Re: select view definition from pg_views feature request
Date
Msg-id a484eebb-49a8-1ce4-99e0-179dc3e6b276@aklaver.com
Whole thread Raw
In response to Re: select view definition from pg_views feature request  (Michael Shapiro <mshapiro51@gmail.com>)
Responses Re: select view definition from pg_views feature request
List pgsql-general
On 11/5/19 6:43 AM, Michael Shapiro wrote:
> Can I set search_path='' (ie to a string that does not match any 
> existing schema)? Would that be the proper way to guarantee that the 
> definition for any view will always be fully-qualified?

test=# show search_path;
                            search_path
------------------------------------------------------------------
  public,accounting,history,main,utility,timeclock,table_templates

test=# select * from pg_views where viewname = 'up_view';;
  schemaname | viewname | viewowner |          definition
------------+----------+-----------+-------------------------------
  public     | up_view  | aklaver   |  SELECT up_test.id AS up_id, +
             |          |           |     up_test.col1 AS bool_col,+
             |          |           |     up_test.col_2 AS col2    +
             |          |           |    FROM up_test;
(1 row)


test=# set search_path = '';
SET
test=# show search_path;
  search_path
-------------
  ""
(1 row)

test=# select * from pg_views where viewname = 'up_view';;
  schemaname | viewname | viewowner |          definition
------------+----------+-----------+-------------------------------
  public     | up_view  | aklaver   |  SELECT up_test.id AS up_id, +
             |          |           |     up_test.col1 AS bool_col,+
             |          |           |     up_test.col_2 AS col2    +
             |          |           |    FROM public.up_test;
(1 row)

> 
> On Sun, Nov 3, 2019 at 3:15 PM Tom Lane <tgl@sss.pgh.pa.us 
> <mailto:tgl@sss.pgh.pa.us>> wrote:
> 
>     Michael Shapiro <mshapiro51@gmail.com <mailto:mshapiro51@gmail.com>>
>     writes:
>      > It seems that the definition of a view from pg_catalog.pg_views
>     does not
>      > qualify the tables used in the view if the tables are in the
>     current search
>      > path.
> 
>      > Is it possible to either have the definition always qualify all
>     tables
>      > independent of the search_path (or else provide a new column that
>     does
>      > that)?
> 
>     Why don't you just change the search path to empty before selecting?
> 
>                              regards, tom lane
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



pgsql-general by date:

Previous
From: Softwarelimits
Date:
Subject: How to import Apache parquet files?
Next
From: Peter Eisentraut
Date:
Subject: Re: logical replication - negative bitmapset member not allowed