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 <t...@sss.pgh.pa.us <mailto:t...@sss.pgh.pa.us>> wrote:

    Michael Shapiro <mshapir...@gmail.com <mailto:mshapir...@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.kla...@aklaver.com


Reply via email to