Re: cannot create table using pl/perl - Mailing list pgsql-general

From Michael Fuhr
Subject Re: cannot create table using pl/perl
Date
Msg-id 20060813141057.GA27347@winnie.fuhr.org
Whole thread Raw
In response to cannot create table using pl/perl  (Jim Bryan <gooddayarizona@yahoo.com>)
List pgsql-general
On Sat, Aug 12, 2006 at 02:04:42PM -0700, Jim Bryan wrote:
> Installed latest postgresql 8 on windows xp,
> everything works fine with pl/pgsql; problems creating
> a table with perl however:
>
> CREATE OR REPLACE FUNCTION datetable() RETURNS integer
> AS $$
> CREATE TABLE tabletest
> (
>     dayofmonth int4,
>     monthofyear int4,
>     theyear int4
> )
> $$
> LANGUAGE 'plperlu' ;

That function body isn't Perl code; to execute SQL commands you'll
need to use spi_exec_query or spi_query().  Here's an example that
uses a here-document; note also "RETURNS void" since the function
doesn't return anything useful:

CREATE OR REPLACE FUNCTION datetable() RETURNS void AS $$
spi_exec_query(<<END_OF_SQL);
CREATE TABLE tabletest
(
    dayofmonth int4,
    monthofyear int4,
    theyear int4
)
END_OF_SQL
$$
LANGUAGE plperl;

--
Michael Fuhr

pgsql-general by date:

Previous
From: "Starbuck"
Date:
Subject: deploy postgre question
Next
From: Jorge Godoy
Date:
Subject: Re: Best approach for a "gap-less" sequence