Re: Can I use SPI in postgres.c - Mailing list pgsql-general

From Limin Liu
Subject Re: Can I use SPI in postgres.c
Date
Msg-id 3AB96571.1FB821EC@pumpkinnet.com
Whole thread Raw
In response to Can I use SPI in postgres.c  (Limin Liu <limin@pumpkinnet.com>)
List pgsql-general
Currently I am using 7.1beta4, but I just learned that these SPI code works
fine in 7.02.
We can issue "select * from tbl_tmp" and psql will return the correct
information in the temp table!

> I need to create a temp table for each db connection.  So, I add the
> dollowing code into postgres.c
> ----------------
>    SPI_connect();
>    SPI_exec("create temp table tbl_tmp (n int);",0);
>    SPI_exec("insert into tbl_tmp values (1);",0);
>    SPI_finish();
> ----------------
> right after
> ----------------
>     /*
>      * POSTGRES main processing loop begins here
>      *
>      * If an exception is encountered, processing resumes here so we
> abort
>      * the current transaction and start a new one.
>      */
> ----------------
>
> I checked the return of SPI_exec and both are fine.  Then I run psql and
> got two error messages, which contradicts to each other!
> -------------------
> db1=> select * from tbl_tmp;
> ERROR:  Relation 'tbl_tmp' does not exist
> db1=> create temp table tbl_tmp (n int);
> ERROR:  Relation 'tbl_tmp' already exists
> db1=>
> -------------------
>
> I checked the SPI document, but cannot find solution.  Can anyone please
> tells me which document should I look into?  Or I cannot use SPI like
> that at the frist place.  If that's the case, is any workaround?  The
> base line is I cannot ask db client program to create that temp table.
>
> Thank you very much
>
> --
>
> LM Liu
>

pgsql-general by date:

Previous
From: "Jeff"
Date:
Subject: How to copy table?
Next
From: "Eric G. Miller"
Date:
Subject: Re: Problem with interface C++ for PostgreSQL