Re: generating dynamic queries using pl/pgsql

From: sarlav kumar <sarlavk(at)yahoo(dot)com>
To: Sean Davis <sdavis2(at)mail(dot)nih(dot)gov>, pgsqlnovice <pgsql-novice(at)postgresql(dot)org>
Subject: Re: generating dynamic queries using pl/pgsql
Date: 2005-01-21 16:44:29
Message-ID: 20050121164429.43147.qmail@web51310.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice


Hi Sean,

The problem is that I dont have permission to create directories as a postgres user.
If I can get the \copy command or the \! pg_dump command to work, that would be great.

Thanks,
Saranya

Sean Davis <sdavis2(at)mail(dot)nih(dot)gov> wrote:

On Jan 21, 2005, at 11:00 AM, sarlav kumar wrote:

> Hi Sean,
>
> Thanks, for the help. I got the dynamic query generation part to work.
> The only thing left to do is to get the dump of the temporary table.
>
> When I try to use COPY inside the pl/pgsql function, I get the
> following error:
>
> COPY temp1 to ''aff.txt'';
>
> WARNING: Error occurred while executing PL/pgSQL function try2
> WARNING: line 38 at SQL statement
> ERROR: Relative path not allowed for server side COPY command
>
> Then I dropped the function, and recreated the function with the
> following command:
>
> COPY temp1 to ''/home/developers/ss2/aff.txt'';
>
> WARNING: Error occurred while executing PL/pgSQL function try2
> WARNING: line 38 at SQL statement
> ERROR: COPY command, running in backend with effective uid 501, could
> not open file '/home/developers/ssivakumar/aff.txt' for writing.
> Errno = No such file or directory (2).
> How can I get the copy command to work from within the pl/pgsql?
>

The tricky part about COPY is that it is executed by the SERVER!
Therefore, the tables can only be written to somewhere writable by the
user running the server process. If, for example, you have a user
named postgres, you could set up a directory that is owned by postgres
and use that for the dumps. /tmp is another place. Of course, all
this has to be done on the SERVER machine; it can't be done locally to
a file. I imagine that is the issue, but others can correct me if I am
wrong on this.

Another option is to COPY to STDOUT and then capture the output.

Sean

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Aly Dharshi 2005-01-21 16:48:04 Re:
Previous Message George Weaver 2005-01-21 16:26:53 Re: grant all the database object automatically