Обсуждение: temp tables and pg_pconnect()

Поиск
Список
Период
Сортировка

temp tables and pg_pconnect()

От
Emmanuel SARACCO
Дата:
hi,

I am using temp tables in stored procedures (I just can not create
normal tables because I must retreive values from those tables in those
stored procedures with the "execute" instruction).

doing connexions with pg_connect()/pg_close() on each php page all work
fine, but when I try to use pg_pconnect() (wich is much more efficient!)
temp table are not detroyed...

how can I use pg_connect() and continue using temp tables in stored
procedures?

thanks


--
Emmanuel SARACCO
Email: esaracco@noos.fr


Re: temp tables and pg_pconnect()

От
"Adam Lang"
Дата:
Are temp tables supposed to be destroyed when the connection is cosed?  If
so, then the reason is because with pconnect, the connection really is never
killed as far as Postgresql sees it.  The connection remains open.

Can you drop the temp table yourself through the pg_exec comand and just use
DROP TABLE ?

Adam Lang
Systems Engineer
Rutgers Casualty Insurance Company
http://www.rutgersinsurance.com
----- Original Message -----
From: "Emmanuel SARACCO" <esaracco@noos.fr>
To: <pgsql-php@postgresql.org>
Sent: Saturday, October 13, 2001 1:14 PM
Subject: [PHP] temp tables and pg_pconnect()


> hi,
>
> I am using temp tables in stored procedures (I just can not create
> normal tables because I must retreive values from those tables in those
> stored procedures with the "execute" instruction).
>
> doing connexions with pg_connect()/pg_close() on each php page all work
> fine, but when I try to use pg_pconnect() (wich is much more efficient!)
> temp table are not detroyed...
>
> how can I use pg_connect() and continue using temp tables in stored
> procedures?
>
> thanks
>
>
> --
> Emmanuel SARACCO
> Email: esaracco@noos.fr
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>




Re: temp tables and pg_pconnect()

От
"Brent R. Matzelle"
Дата:
--- Adam Lang <aalang@rutgersinsurance.com> wrote:
> Are temp tables supposed to be destroyed when the connection
> is cosed?  If
> so, then the reason is because with pconnect, the connection
> really is never
> killed as far as Postgresql sees it.  The connection remains
> open.

pg_pconnect does keep the existing connection to PostgresSQL so
the temporary table would not be dropped.

> Can you drop the temp table yourself through the pg_exec
> comand and just use
> DROP TABLE ?

That would be a reasonable approach.  Or, if you do not need to
drop the table it would be might be more efficient to perform a
TRUNCATE rather than the DROP and CREATE combo.  That would
depend upon your system.

Brent

__________________________________________________
Do You Yahoo!?
Make a great connection at Yahoo! Personals.
http://personals.yahoo.com

Re: temp tables and pg_pconnect()

От
"Papp Gyozo"
Дата:
I'm afraid you can't save your temp tables if you use pg_connect,
because the connection opened by pg_connect automagically closed
on the end of the script. So connection closed and temp tables
will be dropped.

----- Original Message -----
From: "Emmanuel SARACCO" <esaracco@noos.fr>
To: <pgsql-php@postgresql.org>
Sent: Saturday, October 13, 2001 7:14 PM
Subject: [PHP] temp tables and pg_pconnect()


> hi,
>
> I am using temp tables in stored procedures (I just can not create
> normal tables because I must retreive values from those tables in those
> stored procedures with the "execute" instruction).
>
> doing connexions with pg_connect()/pg_close() on each php page all work
> fine, but when I try to use pg_pconnect() (wich is much more efficient!)
> temp table are not detroyed...
>
> how can I use pg_connect() and continue using temp tables in stored
> procedures?
>
> thanks
>
>
> --
> Emmanuel SARACCO
> Email: esaracco@noos.fr
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster





Re: temp tables and pg_pconnect()

От
"Adam Lang"
Дата:
You got it backwards I think.  He wants to use pg_pconnect and have the temp
tables dropped.

Adam Lang
Systems Engineer
Rutgers Casualty Insurance Company
http://www.rutgersinsurance.com
----- Original Message -----
From: "Papp Gyozo" <pgerzson@freestart.hu>
To: <esaracco@noos.fr>; <pgsql-php@postgresql.org>
Sent: Saturday, October 13, 2001 3:04 PM
Subject: Re: [PHP] temp tables and pg_pconnect()


> I'm afraid you can't save your temp tables if you use pg_connect,
> because the connection opened by pg_connect automagically closed
> on the end of the script. So connection closed and temp tables
> will be dropped.
>
> ----- Original Message -----
> From: "Emmanuel SARACCO" <esaracco@noos.fr>
> To: <pgsql-php@postgresql.org>
> Sent: Saturday, October 13, 2001 7:14 PM
> Subject: [PHP] temp tables and pg_pconnect()
>
>
> > hi,
> >
> > I am using temp tables in stored procedures (I just can not create
> > normal tables because I must retreive values from those tables in those
> > stored procedures with the "execute" instruction).
> >
> > doing connexions with pg_connect()/pg_close() on each php page all work
> > fine, but when I try to use pg_pconnect() (wich is much more efficient!)
> > temp table are not detroyed...
> >
> > how can I use pg_connect() and continue using temp tables in stored
> > procedures?
> >
> > thanks
> >
> >
> > --
> > Emmanuel SARACCO
> > Email: esaracco@noos.fr
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 4: Don't 'kill -9' the postmaster
>
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>




Re: temp tables and pg_pconnect()

От
Emmanuel SARACCO
Дата:
hi adam,

thanks for your answer but here is part of my stored procedure:

------------------
    CREATE TEMP TABLE res_tot (tot INTEGER);

    sqlreq :=  '
        INSERT INTO
            res_tot
        SELECT
            count(no_dossier)
        FROM ' ||
            vs_lb
        ||'
        WHERE 1=1 ';

    IF surf_min>0 THEN
        sqlreq :=sqlreq||' AND surf_hab >= '|| surf_min ||' ';
    end if;

    IF surf_max>0 THEN
        sqlreq :=sqlreq||' AND surf_hab <= '|| surf_max ||' ';
    end if;

    IF prix_min>0 THEN
        IF devise = 'FRANC' THEN
            sqlreq :=sqlreq||' AND prix_franc >= '|| prix_min ||'  ';
        ELSE
            sqlreq :=sqlreq||' AND prix_euro >= '|| prix_min ||'  ';
        END IF;
    END IF;

    EXECUTE sqlreq;

    SELECT INTO resultat tot FROM res_tot;
    RETURN resultat;
------------------

as you see, I can not create a normal table because of concurrency
problems. the solution would be to create a normal table with random
generated name but I could not retrieve a value from it with a "execute"
instruction... so I think it is impossible for me to use pg_pconnect() :-(

bye




Adam Lang wrote:

> Are temp tables supposed to be destroyed when the connection is cosed?  If
> so, then the reason is because with pconnect, the connection really is never
> killed as far as Postgresql sees it.  The connection remains open.
>
> Can you drop the temp table yourself through the pg_exec comand and just use
> DROP TABLE ?
>
> Adam Lang
> Systems Engineer
> Rutgers Casualty Insurance Company
> http://www.rutgersinsurance.com
> ----- Original Message -----
> From: "Emmanuel SARACCO" <esaracco@noos.fr>
> To: <pgsql-php@postgresql.org>
> Sent: Saturday, October 13, 2001 1:14 PM
> Subject: [PHP] temp tables and pg_pconnect()
>
>
>
>>hi,
>>
>>I am using temp tables in stored procedures (I just can not create
>>normal tables because I must retreive values from those tables in those
>>stored procedures with the "execute" instruction).
>>
>>doing connexions with pg_connect()/pg_close() on each php page all work
>>fine, but when I try to use pg_pconnect() (wich is much more efficient!)
>>temp table are not detroyed...
>>
>>how can I use pg_connect() and continue using temp tables in stored
>>procedures?
>>
>>thanks
>>
>>
>>--
>>Emmanuel SARACCO
>>Email: esaracco@noos.fr
>>
>>
>>---------------------------(end of broadcast)---------------------------
>>TIP 4: Don't 'kill -9' the postmaster
>>
>>
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>
>
>



--
Emmanuel SARACCO
Email: esaracco@noos.fr