Subject: current_schemas()

From: Halley Pacheco de Oliveira <[email-masked]>
Date: Tue, 5 Jul 2005 08:14:40 -0300 (ART)

I would like to know how to use current_schemas(), since SELECT current_schemas(); didn't work in
PostgreSQL 7.4 and 8.0 psql.

Halley

PostgreSQL 8.0.3 Documentation
Chapter 16. Server Run-time Environment
16.4. Run-time Configuration

The current effective value of the search path can be examined via the SQL function
current_schemas(). This is not quite the same as examining the value of search_path, since
current_schemas() shows how the requests appearing in search_path were resolved.

teste=# \dn
********* QUERY **********
SELECT n.nspname AS "Name",
       u.usename AS "Owner"
FROM pg_catalog.pg_namespace n LEFT JOIN pg_catalog.pg_user u
       ON n.nspowner=u.usesysid
WHERE   (n.nspname NOT LIKE 'pg\\_temp\\_%' OR
                 n.nspname = (pg_catalog.current_schemas(true))[1])
ORDER BY 1;
**************************

        List of schemas
        Name        |  Owner
--------------------+----------
 information_schema | postgres
 pg_catalog         | postgres
 pg_toast           | postgres
 public             | postgres
(4 rows)

teste=# SELECT current_schema();
 current_schema
----------------
 public
(1 row)

teste=# SELECT current_schemas();
ERROR:  function current_schemas() does not exist
HINT:  No function matches the given name and argument types. You may need to add explicit type
casts.

_______________________________________________________ 
Yahoo! Acesso Grátis - Internet rápida e grátis. 
Instale o discador agora! http://br.acesso.yahoo.com/

---

From: Alvaro Herrera <[email-masked]>
Date: Tue, 5 Jul 2005 10:06:38 -0400

> HINT:  No function matches the given name and argument types. You may need to add explicit type

alvherre=# select current_schemas(true);
   current_schemas   
---------------------
 {pg_catalog,public}
(1 fila)

alvherre=# select current_schemas(false);
 current_schemas 
-----------------
 {public}
(1 fila)

Function parameters are essential when determining if a function exists
or not.

alvherre=# \df current_schema*
                                 Listado de funciones
   Schema   |     Nombre      | Tipo de dato de salida | Tipos de datos de argumentos 
------------+-----------------+------------------------+------------------------------
 pg_catalog | current_schema  | name                   | 
 pg_catalog | current_schemas | name[]                 | boolean
(2 filas)

-- 
Alvaro Herrera (<alvherre[a]surnet.cl>)
FOO MANE PADME HUM

---

From: Bruce Momjian <[email-masked]>
Date: Fri, 29 Jul 2005 22:30:13 -0400 (EDT)

Why not just use pg_catalog.current_schemas()?

---------------------------------------------------------------------------

Halley Pacheco de Oliveira wrote:
> Yahoo! Acesso Gr?tis - Internet r?pida e gr?tis. 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
>        subscribe-nomail command to [email-masked] so that your
>        message can get through to the mailing list cleanly
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [email-masked]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

---

From: Alvaro Herrera <[email-masked]>
Date: Fri, 29 Jul 2005 23:21:15 -0400

> Why not just use pg_catalog.current_schemas()?

The function is current_schemas(bool), that's why this example doesn't
work:

> > HINT:  No function matches the given name and argument types. You may need to add explicit type casts.

-- 
Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
"Aprende a avergonzarte más ante ti que ante los demás" (Demócrito)