É windows XP. Simplesmente o pg_ctl.exe não executava em algumas máquinas, 
apresentava um erro de SO (no momento não me lembro qual). Bom, pesquisei 
bastante, tentei aplicar na ocasião as várias soluções que pude encontrar e 
nada. Agora na versão 9 beta 1 e 2 não ocorreu a mesma situação.

Obrigado mais uma vez pela atenção.

-----Mensagem original-----
De: [email protected] 
[mailto:[email protected]] Em nome de 
[email protected]
Enviada em: quinta-feira, 15 de julho de 2010 10:48
Para: [email protected]
Assunto: Digest pgbr-geral, volume 41, assunto 22

Send pgbr-geral mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
or, via email, send a message with subject or body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

When replying, please edit your Subject line so it is more specific than "Re: 
Contents of pgbr-geral digest..."


Tópicos de Hoje:

   1. pldebugger (Alex Brito)
   2. RES: Digest pgbr-geral, volume 41, assunto 21
      (Ruy Carlos Nunes de Souza)
   3. Re: RES: Digest pgbr-geral, volume 41, assunto 21 (JotaComm)


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

Message: 1
Date: Thu, 15 Jul 2010 06:35:07 -0700 (PDT)
From: Alex Brito <[email protected]>
Subject: [pgbr-geral] pldebugger
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset="iso-8859-1"

Bom dia!

    Alguém sabe como configurar o debugger function em um postgres 8.3 que roda 
em um SO linux?

Att,
Alex F. Brito.




-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: 
http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20100715/5674c63c/attachment-0001.htm

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

Message: 2
Date: Thu, 15 Jul 2010 10:41:52 -0300
From: Ruy Carlos Nunes de Souza <[email protected]>
Subject: [pgbr-geral] RES: Digest pgbr-geral, volume 41, assunto 21
To: "[email protected]"
        <[email protected]>
Message-ID:
        
<187093016958424491049e42de24722b01093432b...@sac0991.ac.correiosnet.int>

Content-Type: text/plain; charset="iso-8859-1"


OK. Atualmente utilizo a versão 8.1. Tenho várias versões na minha máquina e 
acabei passando batido por esse detalhe (estava utilizando o manual da versão 
8.4). Tentei utilizar a versão 8.4 mas tive problemas para rodar o serviço em 
algumas máquinas. Estou aguardando a versão 9.0 (produção).

Agradeço pela rápida resposta.

-----Mensagem original-----
De: [email protected] 
[mailto:[email protected]] Em nome de 
[email protected]
Enviada em: quinta-feira, 15 de julho de 2010 10:21
Para: [email protected]
Assunto: Digest pgbr-geral, volume 41, assunto 21

Send pgbr-geral mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
or, via email, send a message with subject or body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

When replying, please edit your Subject line so it is more specific than "Re: 
Contents of pgbr-geral digest..."


Tópicos de Hoje:

   1. Utilização do WITH em SELECT (Ruy Carlos Nunes de Souza)
   2. Função Dinâmica, qual melhor forma de criar?
      (Angelo - Web Studio Brasil)
   3. Re: Utilização do WITH em SELECT (JotaComm)
   4. Re: Função Dinâmica, qual melhor forma de criar? (JotaComm)


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

Message: 1
Date: Thu, 15 Jul 2010 09:25:22 -0300
From: Ruy Carlos Nunes de Souza <[email protected]>
Subject: [pgbr-geral] Utilização do WITH em SELECT
To: "[email protected]"
        <[email protected]>
Message-ID:
        
<187093016958424491049e42de24722b01093432b...@sac0991.ac.correiosnet.int>

Content-Type: text/plain; charset="iso-8859-1"

Bom dia,

        Estou com problema de utilização da cláusula WITH com SELECT. Segundo 
manual poderia utiliza-lo da seguinte forma:


7.8. WITH Queries

WITH provides a way to write subqueries for use in a larger SELECT query. The 
subqueries can be

thought of as defining temporary tables that exist just for this query. One use 
of this feature is to break

down complicated queries into simpler parts. An example is:

WITH regional_sales AS (

SELECT region, SUM(amount) AS total_sales

FROM orders

GROUP BY region

), top_regions AS (

SELECT region

FROM regional_sales

WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales)

)

SELECT region,

product,

SUM(quantity) AS product_units,

SUM(amount) AS product_sales

FROM orders

WHERE region IN (SELECT region FROM top_regions)

GROUP BY region, product;

    Só que quando tento utilizar no pgAdmin um exemplo parecido, me é 
apresentado o seguinte erro:

ERROR: syntax error at or near "with"
SQL state: 42601

    Alguém poderia ajudar?




-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: 
http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20100715/8732f34a/attachment-0001.htm

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

Message: 2
Date: Thu, 15 Jul 2010 06:00:23 -0700 (PDT)
From: Angelo - Web Studio Brasil <[email protected]>
Subject: [pgbr-geral] Função Dinâmica, qual melhor forma de criar?
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset="iso-8859-1"

Amigos, bom dia,

Estou em um impasse querendo saber dos mais experientes qual a melhor forma de 
criar funções dinâmicas no PostgreSQL.

Qual dos 2 cenários abaixo é o melhor em termos de performance, lembrando que 
esta consulta é simples, mas o intuito da pergunta é para funções mais 
complexas que analisam tabela com grandes quantidades de registros fazendo 
joins entre
elas:

1 - Cenário:
Criar a consulta com vários JOINS e fazer um IF na função colocando os 
respectivos WHERE de acordo com os parametros passados:
Ex:
CREATE OR REPLACE FUNCTION public.f_teste( p_id integer, p_uf character varying
)
  RETURNS SETOF public.f_teste AS
$BODY$
DECLARE
    var_row        public.f_teste%ROWTYPE;
    var_record    RECORD;
    var_strSQL    VARCHAR;
BEGIN
    var_strSQL :=    '
                    SELECT
                        cliente.id,
                        cliente.nome
                    FROM cliente
                    join uf on uf.id = cliente.uf_id
                    WHERE 1 = 1
                    ';
    IF (p_id IS NOT NULL) THEN
        var_strSQL := var_strSQL || ' AND cliente.id = ' || p_id;
    END IF;

    IF (p_uf IS NOT NULL) THEN
        var_strSQL := var_strSQL || ' AND uf.sigla = ''' || p_uf || '''';
    END IF;

    FOR var_record IN
        EXECUTE var_strSQL
    LOOP
        var_row.id := var_record.id;
        var_row.cliente_nome := var_record.nome;
        RETURN NEXT var_row;
    END LOOP;

    RETURN;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER;


2 - Cenário:
Criar a consulta com vários IF's colocando  os respectivos JOIN e WHEREs de 
acordo com os parametros passados:
Ex:
CREATE OR REPLACE FUNCTION public.f_teste( p_id integer, p_uf character  varying
)
  RETURNS SETOF public.f_teste AS
$BODY$
DECLARE
    var_row        public.f_teste%ROWTYPE;
    var_record    RECORD;
    var_join        VARCHAR;
    var_where     VARCHAR;
    var_strSQL    VARCHAR;
BEGIN

    IF (p_id IS NOT NULL) THEN
        var_where := var_where || ' AND cliente.id = ' || p_id;
    END IF;

    IF (p_uf IS NOT NULL) THEN
        var_join := var_join || ' join uf on uf.id = cliente.uf_id ';
        var_where := var_where || ' AND uf.sigla = ''' || p_uf ||  '''';
    END IF;

    var_strSQL :=  '
                    SELECT
                        cliente.id,
                        cliente.nome
                    FROM cliente
                   '  || var_join || '
                    WHERE 1 = 1
                    ' || var_where;

    FOR var_record IN
        EXECUTE var_strSQL
    LOOP
        var_row.id := var_record.id;
        var_row.cliente_nome := var_record.nome;
        RETURN NEXT var_row;
    END LOOP;

    RETURN;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER;




-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: 
http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20100715/fc579b63/attachment-0001.htm

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

Message: 3
Date: Thu, 15 Jul 2010 10:15:02 -0300
From: JotaComm <[email protected]>
Subject: Re: [pgbr-geral] Utilização do WITH em SELECT
To: Comunidade PostgreSQL Brasileira
        <[email protected]>
Message-ID:
        <[email protected]>
Content-Type: text/plain; charset="iso-8859-1"

Olá,

Em 15 de julho de 2010 09:25, Ruy Carlos Nunes de Souza < 
[email protected]> escreveu:

>  Bom dia,
>
>         Estou com problema de utilização da cláusula WITH com SELECT.
> Segundo manual poderia utiliza-lo da seguinte forma:
>

Qual versão do PG? Este recurso está disponível apenas da versão 8.4.


>
> *
>
> 7.8.
> WITH Queries*
>
> WITH
> provides a way to write subqueries for use in a larger SELECT query.
> The subqueries can be
>
> thought of as defining temporary tables that exist just for this
> query. One use of this feature is to break
>
> down complicated queries into simpler parts. An example is:
>
> WITH regional_sales AS (
>
> SELECT region, SUM(amount) AS total_sales
>
> FROM orders
>
> GROUP BY region
>
> ), top_regions AS (
>
> SELECT region
>
> FROM regional_sales
>
> WHERE total_sales
> > (SELECT SUM(total_sales)/10 FROM regional_sales)
>
> )
>
> SELECT region,
>
> product,
>
> SUM(quantity) AS product_units,
>
> SUM(amount) AS product_sales
>
> FROM orders
>
> WHERE region IN (SELECT region FROM top_regions)
>
> GROUP BY region, product;
>
>     Só que quando tento utilizar no pgAdmin um exemplo parecido, me é
> apresentado o seguinte erro:
>
> ERROR: syntax error at or near "with"
> SQL state: 42601
>
>     Alguém poderia ajudar?
>
>
>
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>

[]s
--
JotaComm
http://jotacomm.wordpress.com
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: 
http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20100715/f11a9465/attachment-0001.htm

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

Message: 4
Date: Thu, 15 Jul 2010 10:20:18 -0300
From: JotaComm <[email protected]>
Subject: Re: [pgbr-geral] Função Dinâmica, qual melhor forma de criar?
To: Comunidade PostgreSQL Brasileira
        <[email protected]>
Message-ID:
        <[email protected]>
Content-Type: text/plain; charset="iso-8859-1"

Olá,


Em 15 de julho de 2010 10:00, Angelo - Web Studio Brasil < 
[email protected]> escreveu:

> Amigos, bom dia,
>
> Estou em um impasse querendo saber dos mais experientes qual a melhor
> forma de criar funções dinâmicas no PostgreSQL.
>

Eu trabalharia com outra questão.

Na definição da função definir a função como: RETURNS NULL ON NULL INPUT, assim 
sendo a função retorna diretamente NULL se algum dos parâmetros for NULL.

>
> Qual dos 2 cenários abaixo é o melhor em termos de performance,
> lembrando que esta consulta é simples, mas o intuito da pergunta é
> para funções mais complexas que analisam tabela com grandes
> quantidades de registros fazendo joins entre elas:
>
> 1 - Cenário:
> Criar a consulta com vários JOINS e fazer um IF na função colocando os
> respectivos WHERE de acordo com os parametros passados:
> Ex:
> CREATE OR REPLACE FUNCTION public.f_teste( p_id integer, p_uf
> character varying )
>   RETURNS SETOF public.f_teste AS
> $BODY$
> DECLARE
>     var_row        public.f_teste%ROWTYPE;
>     var_record    RECORD;
>     var_strSQL    VARCHAR;
> BEGIN
>     var_strSQL :=    '
>                     SELECT
>                         cliente.id,
>                         cliente.nome
>                     FROM cliente
>                     join uf on uf.id = cliente.uf_id
>                     WHERE 1 = 1
>                     ';
>     IF (p_id IS NOT NULL) THEN
>         var_strSQL := var_strSQL || ' AND cliente.id = ' || p_id;
>     END IF;
>
>     IF (p_uf IS NOT NULL) THEN
>         var_strSQL := var_strSQL || ' AND uf.sigla = ''' || p_uf || '''';
>     END IF;
>
>     FOR var_record IN
>         EXECUTE var_strSQL
>     LOOP
>         var_row.id := var_record.id;
>         var_row.cliente_nome := var_record.nome;
>         RETURN NEXT var_row;
>     END LOOP;
>
>     RETURN;
> END;
> $BODY$
>   LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER;
>
>
> 2 - Cenário:
> Criar a consulta com vários IF's colocando os respectivos JOIN e
> WHEREs de acordo com os parametros passados:
> Ex:
> CREATE OR REPLACE FUNCTION public.f_teste( p_id integer, p_uf
> character varying )
>   RETURNS SETOF public.f_teste AS
> $BODY$
> DECLARE
>     var_row        public.f_teste%ROWTYPE;
>     var_record    RECORD;
>     var_join        VARCHAR;
>     var_where     VARCHAR;
>     var_strSQL    VARCHAR;
> BEGIN
>
>     IF (p_id IS NOT NULL) THEN
>         var_where := var_where || ' AND cliente.id = ' || p_id;
>     END IF;
>
>     IF (p_uf IS NOT NULL) THEN
>         var_join := var_join || ' join uf on uf.id = cliente.uf_id ';
>         var_where := var_where || ' AND uf.sigla = ''' || p_uf || '''';
>     END IF;
>
>     var_strSQL :=  '
>                     SELECT
>                         cliente.id,
>                         cliente.nome
>                     FROM cliente
>                    '  || var_join || '
>                     WHERE 1 = 1
>                     ' || var_where;
>
>     FOR var_record IN
>         EXECUTE var_strSQL
>     LOOP
>         var_row.id := var_record.id;
>         var_row.cliente_nome := var_record.nome;
>         RETURN NEXT var_row;
>     END LOOP;
>
>     RETURN;
> END;
> $BODY$
>   LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER;
>
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>

[]s
--
JotaComm
http://jotacomm.wordpress.com
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: 
http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20100715/e4c9d03e/attachment.htm

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

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Fim da Digest pgbr-geral, volume 41, assunto 21
***********************************************


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

Message: 3
Date: Thu, 15 Jul 2010 10:47:05 -0300
From: JotaComm <[email protected]>
Subject: Re: [pgbr-geral] RES: Digest pgbr-geral, volume 41, assunto
        21
To: Comunidade PostgreSQL Brasileira
        <[email protected]>
Message-ID:
        <[email protected]>
Content-Type: text/plain; charset="iso-8859-1"

Opa,

Em 15 de julho de 2010 10:41, Ruy Carlos Nunes de Souza < 
[email protected]> escreveu:

>
> OK. Atualmente utilizo a versão 8.1. Tenho várias versões na minha
> máquina e acabei passando batido por esse detalhe (estava utilizando o
> manual da versão 8.4). Tentei utilizar a versão 8.4 mas tive problemas
> para rodar o serviço em algumas máquinas. Estou aguardando a versão 9.0 
> (produção).
>

Quer nos falar dos problemas com a versão 8.4? Ambiente Linux? Windows?


>
> Agradeço pela rápida resposta.
>
> -----Mensagem original-----
> De: [email protected] [mailto:
> [email protected]] Em nome de
> [email protected]
> Enviada em: quinta-feira, 15 de julho de 2010 10:21
> Para: [email protected]
> Assunto: Digest pgbr-geral, volume 41, assunto 21
>
> Send pgbr-geral mailing list submissions to
>        [email protected]
>
> To subscribe or unsubscribe via the World Wide Web, visit
>
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> or, via email, send a message with subject or body 'help' to
>        [email protected]
>
> You can reach the person managing the list at
>        [email protected]
>
> When replying, please edit your Subject line so it is more specific
> than
> "Re: Contents of pgbr-geral digest..."
>
>
> Tópicos de Hoje:
>
>   1. Utilização do WITH em SELECT (Ruy Carlos Nunes de Souza)
>   2. Função Dinâmica, qual melhor forma de criar?
>      (Angelo - Web Studio Brasil)
>   3. Re: Utilização do WITH em SELECT (JotaComm)
>   4. Re: Função Dinâmica, qual melhor forma de criar? (JotaComm)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 15 Jul 2010 09:25:22 -0300
> From: Ruy Carlos Nunes de Souza <[email protected]>
> Subject: [pgbr-geral] Utilização do WITH em SELECT
> To: "[email protected]"
>        <[email protected]>
> Message-ID:
>        <
> 187093016958424491049e42de24722b01093432b...@sac0991.ac.correiosnet.in
> t>
>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Bom dia,
>
>        Estou com problema de utilização da cláusula WITH com SELECT.
> Segundo manual poderia utiliza-lo da seguinte forma:
>
>
> 7.8. WITH Queries
>
> WITH provides a way to write subqueries for use in a larger SELECT query.
> The subqueries can be
>
> thought of as defining temporary tables that exist just for this
> query. One use of this feature is to break
>
> down complicated queries into simpler parts. An example is:
>
> WITH regional_sales AS (
>
> SELECT region, SUM(amount) AS total_sales
>
> FROM orders
>
> GROUP BY region
>
> ), top_regions AS (
>
> SELECT region
>
> FROM regional_sales
>
> WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales)
>
> )
>
> SELECT region,
>
> product,
>
> SUM(quantity) AS product_units,
>
> SUM(amount) AS product_sales
>
> FROM orders
>
> WHERE region IN (SELECT region FROM top_regions)
>
> GROUP BY region, product;
>
>    Só que quando tento utilizar no pgAdmin um exemplo parecido, me é
> apresentado o seguinte erro:
>
> ERROR: syntax error at or near "with"
> SQL state: 42601
>
>    Alguém poderia ajudar?
>
>
>
>
> -------------- Próxima Parte ---------- Um anexo em HTML foi limpo...
> URL:
> http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20100
> 715/8732f34a/attachment-0001.htm
>
> ------------------------------
>
> Message: 2
> Date: Thu, 15 Jul 2010 06:00:23 -0700 (PDT)
> From: Angelo - Web Studio Brasil <[email protected]>
> Subject: [pgbr-geral] Função Dinâmica, qual melhor forma de criar?
> To: [email protected]
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Amigos, bom dia,
>
> Estou em um impasse querendo saber dos mais experientes qual a melhor
> forma de criar funções dinâmicas no PostgreSQL.
>
> Qual dos 2 cenários abaixo é o melhor em termos de performance,
> lembrando que esta consulta é simples, mas o intuito da pergunta é
> para funções mais complexas que analisam tabela com grandes
> quantidades de registros fazendo joins entre
> elas:
>
> 1 - Cenário:
> Criar a consulta com vários JOINS e fazer um IF na função colocando os
> respectivos WHERE de acordo com os parametros passados:
> Ex:
> CREATE OR REPLACE FUNCTION public.f_teste( p_id integer, p_uf
> character varying
> )
>  RETURNS SETOF public.f_teste AS
> $BODY$
> DECLARE
>    var_row        public.f_teste%ROWTYPE;
>    var_record    RECORD;
>    var_strSQL    VARCHAR;
> BEGIN
>    var_strSQL :=    '
>                    SELECT
>                        cliente.id,
>                        cliente.nome
>                    FROM cliente
>                    join uf on uf.id = cliente.uf_id
>                    WHERE 1 = 1
>                    ';
>    IF (p_id IS NOT NULL) THEN
>        var_strSQL := var_strSQL || ' AND cliente.id = ' || p_id;
>    END IF;
>
>    IF (p_uf IS NOT NULL) THEN
>        var_strSQL := var_strSQL || ' AND uf.sigla = ''' || p_uf || '''';
>    END IF;
>
>    FOR var_record IN
>        EXECUTE var_strSQL
>    LOOP
>        var_row.id := var_record.id;
>        var_row.cliente_nome := var_record.nome;
>        RETURN NEXT var_row;
>    END LOOP;
>
>    RETURN;
> END;
> $BODY$
>  LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER;
>
>
> 2 - Cenário:
> Criar a consulta com vários IF's colocando  os respectivos JOIN e
> WHEREs de acordo com os parametros passados:
> Ex:
> CREATE OR REPLACE FUNCTION public.f_teste( p_id integer, p_uf
> character  varying
> )
>  RETURNS SETOF public.f_teste AS
> $BODY$
> DECLARE
>    var_row        public.f_teste%ROWTYPE;
>    var_record    RECORD;
>    var_join        VARCHAR;
>    var_where     VARCHAR;
>    var_strSQL    VARCHAR;
> BEGIN
>
>    IF (p_id IS NOT NULL) THEN
>        var_where := var_where || ' AND cliente.id = ' || p_id;
>    END IF;
>
>    IF (p_uf IS NOT NULL) THEN
>        var_join := var_join || ' join uf on uf.id = cliente.uf_id ';
>        var_where := var_where || ' AND uf.sigla = ''' || p_uf ||  '''';
>    END IF;
>
>    var_strSQL :=  '
>                    SELECT
>                        cliente.id,
>                        cliente.nome
>                    FROM cliente
>                   '  || var_join || '
>                    WHERE 1 = 1
>                    ' || var_where;
>
>    FOR var_record IN
>        EXECUTE var_strSQL
>    LOOP
>        var_row.id := var_record.id;
>        var_row.cliente_nome := var_record.nome;
>        RETURN NEXT var_row;
>    END LOOP;
>
>    RETURN;
> END;
> $BODY$
>  LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER;
>
>
>
>
> -------------- Próxima Parte ---------- Um anexo em HTML foi limpo...
> URL:
> http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20100
> 715/fc579b63/attachment-0001.htm
>
> ------------------------------
>
> Message: 3
> Date: Thu, 15 Jul 2010 10:15:02 -0300
> From: JotaComm <[email protected]>
> Subject: Re: [pgbr-geral] Utilização do WITH em SELECT
> To: Comunidade PostgreSQL Brasileira
>        <[email protected]>
> Message-ID:
>        <[email protected]>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Olá,
>
> Em 15 de julho de 2010 09:25, Ruy Carlos Nunes de Souza <
> [email protected]> escreveu:
>
> >  Bom dia,
> >
> >         Estou com problema de utilização da cláusula WITH com SELECT.
> > Segundo manual poderia utiliza-lo da seguinte forma:
> >
>
> Qual versão do PG? Este recurso está disponível apenas da versão 8.4.
>
>
> >
> > *
> >
> > 7.8.
> > WITH Queries*
> >
> > WITH
> > provides a way to write subqueries for use in a larger SELECT query.
> > The subqueries can be
> >
> > thought of as defining temporary tables that exist just for this
> > query. One use of this feature is to break
> >
> > down complicated queries into simpler parts. An example is:
> >
> > WITH regional_sales AS (
> >
> > SELECT region, SUM(amount) AS total_sales
> >
> > FROM orders
> >
> > GROUP BY region
> >
> > ), top_regions AS (
> >
> > SELECT region
> >
> > FROM regional_sales
> >
> > WHERE total_sales
> > > (SELECT SUM(total_sales)/10 FROM regional_sales)
> >
> > )
> >
> > SELECT region,
> >
> > product,
> >
> > SUM(quantity) AS product_units,
> >
> > SUM(amount) AS product_sales
> >
> > FROM orders
> >
> > WHERE region IN (SELECT region FROM top_regions)
> >
> > GROUP BY region, product;
> >
> >     Só que quando tento utilizar no pgAdmin um exemplo parecido, me
> > é apresentado o seguinte erro:
> >
> > ERROR: syntax error at or near "with"
> > SQL state: 42601
> >
> >     Alguém poderia ajudar?
> >
> >
> >
> >
> >
> > _______________________________________________
> > pgbr-geral mailing list
> > [email protected]
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> >
>
> []s
> --
> JotaComm
> http://jotacomm.wordpress.com
> -------------- Próxima Parte ---------- Um anexo em HTML foi limpo...
> URL:
> http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20100
> 715/f11a9465/attachment-0001.htm
>
> ------------------------------
>
> Message: 4
> Date: Thu, 15 Jul 2010 10:20:18 -0300
> From: JotaComm <[email protected]>
> Subject: Re: [pgbr-geral] Função Dinâmica, qual melhor forma de criar?
> To: Comunidade PostgreSQL Brasileira
>        <[email protected]>
> Message-ID:
>        <[email protected]>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Olá,
>
>
> Em 15 de julho de 2010 10:00, Angelo - Web Studio Brasil <
> [email protected]> escreveu:
>
> > Amigos, bom dia,
> >
> > Estou em um impasse querendo saber dos mais experientes qual a
> > melhor forma de criar funções dinâmicas no PostgreSQL.
> >
>
> Eu trabalharia com outra questão.
>
> Na definição da função definir a função como: RETURNS NULL ON NULL
> INPUT, assim sendo a função retorna diretamente NULL se algum dos
> parâmetros for NULL.
>
> >
> > Qual dos 2 cenários abaixo é o melhor em termos de performance,
> > lembrando que esta consulta é simples, mas o intuito da pergunta é
> > para funções mais complexas que analisam tabela com grandes
> > quantidades de registros fazendo joins entre elas:
> >
> > 1 - Cenário:
> > Criar a consulta com vários JOINS e fazer um IF na função colocando
> > os respectivos WHERE de acordo com os parametros passados:
> > Ex:
> > CREATE OR REPLACE FUNCTION public.f_teste( p_id integer, p_uf
> > character varying )
> >   RETURNS SETOF public.f_teste AS
> > $BODY$
> > DECLARE
> >     var_row        public.f_teste%ROWTYPE;
> >     var_record    RECORD;
> >     var_strSQL    VARCHAR;
> > BEGIN
> >     var_strSQL :=    '
> >                     SELECT
> >                         cliente.id,
> >                         cliente.nome
> >                     FROM cliente
> >                     join uf on uf.id = cliente.uf_id
> >                     WHERE 1 = 1
> >                     ';
> >     IF (p_id IS NOT NULL) THEN
> >         var_strSQL := var_strSQL || ' AND cliente.id = ' || p_id;
> >     END IF;
> >
> >     IF (p_uf IS NOT NULL) THEN
> >         var_strSQL := var_strSQL || ' AND uf.sigla = ''' || p_uf || '''';
> >     END IF;
> >
> >     FOR var_record IN
> >         EXECUTE var_strSQL
> >     LOOP
> >         var_row.id := var_record.id;
> >         var_row.cliente_nome := var_record.nome;
> >         RETURN NEXT var_row;
> >     END LOOP;
> >
> >     RETURN;
> > END;
> > $BODY$
> >   LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER;
> >
> >
> > 2 - Cenário:
> > Criar a consulta com vários IF's colocando os respectivos JOIN e
> > WHEREs de acordo com os parametros passados:
> > Ex:
> > CREATE OR REPLACE FUNCTION public.f_teste( p_id integer, p_uf
> > character varying )
> >   RETURNS SETOF public.f_teste AS
> > $BODY$
> > DECLARE
> >     var_row        public.f_teste%ROWTYPE;
> >     var_record    RECORD;
> >     var_join        VARCHAR;
> >     var_where     VARCHAR;
> >     var_strSQL    VARCHAR;
> > BEGIN
> >
> >     IF (p_id IS NOT NULL) THEN
> >         var_where := var_where || ' AND cliente.id = ' || p_id;
> >     END IF;
> >
> >     IF (p_uf IS NOT NULL) THEN
> >         var_join := var_join || ' join uf on uf.id = cliente.uf_id ';
> >         var_where := var_where || ' AND uf.sigla = ''' || p_uf || '''';
> >     END IF;
> >
> >     var_strSQL :=  '
> >                     SELECT
> >                         cliente.id,
> >                         cliente.nome
> >                     FROM cliente
> >                    '  || var_join || '
> >                     WHERE 1 = 1
> >                     ' || var_where;
> >
> >     FOR var_record IN
> >         EXECUTE var_strSQL
> >     LOOP
> >         var_row.id := var_record.id;
> >         var_row.cliente_nome := var_record.nome;
> >         RETURN NEXT var_row;
> >     END LOOP;
> >
> >     RETURN;
> > END;
> > $BODY$
> >   LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER;
> >
> >
> >
> > _______________________________________________
> > pgbr-geral mailing list
> > [email protected]
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> >
>
> []s
> --
> JotaComm
> http://jotacomm.wordpress.com
> -------------- Próxima Parte ---------- Um anexo em HTML foi limpo...
> URL:
> http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20100
> 715/e4c9d03e/attachment.htm
>
> ------------------------------
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
> Fim da Digest pgbr-geral, volume 41, assunto 21
> ***********************************************
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>


[]s
--
JotaComm
http://jotacomm.wordpress.com
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: 
http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20100715/4ba5c1f2/attachment.htm

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

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Fim da Digest pgbr-geral, volume 41, assunto 22
***********************************************
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a