Re: ...copy hack

Started by Daniele Medrialmost 26 years ago3 messages
#1Daniele Medri
madrid@linux.it

sometimes ago...
i posted a question.
"How to store data in postgresql, query data.. and produce accessible data
for gnuplot'in a graph"

This is the first hack:
1) select data into temp-table from table where x.. y.. z..
2) copy temp-table into file.txt using delimiters ' '

This way create some problems...
a) to update temp-table with latest data.. i must drop this table before.

Why don't do directly "copy" on view?
This could be very usefull... than "copy" only on table (or temp-table).. a
"copy" on a view-data.

Let's me know about...

Daniele Medri

#2Daniele Medri
madrid@linux.it
In reply to: Daniele Medri (#1)

This is the first hack:
1) select data into temp-table from table where x.. y.. z..
2) copy temp-table into file.txt using delimiters ' '

I have to say once again that it is not COPYs task to provide the data to
you nor is it the server's task to format the output for you. For that we
have SELECT and client interfaces, respectively. If you insist on using
COPY you'll not get far.

---

so...
from your aswer i post another question:
I have data on a pg db.. i want a text-file with this format for gnuplot...

1 2
1 3
1 5
3 5

for 2d plotting and..

1 2 3
3 4 6
3 6 8
3 5 7

for 3d plottting.

I know that with a view i can obtain a right data visualizzation...
I know that with copy i can put "data" from table to file...
I would use "copy" to put view data into a file... a raw copy.. but you've
your own opinion.. Ok.
How do you do to put data into my text file without outer language or bash
scripting?
..i mean using only pg tools?

Daniele

#3Magnus Hagander
mha@sollentuna.net
In reply to: Daniele Medri (#2)
RE: ...copy hack

so...
from your aswer i post another question:
I have data on a pg db.. i want a text-file with this format
for gnuplot...

1 2
1 3
1 5
3 5

for 2d plotting and..

1 2 3
3 4 6
3 6 8
3 5 7

for 3d plottting.

I know that with a view i can obtain a right data visualizzation...
I know that with copy i can put "data" from table to file...
I would use "copy" to put view data into a file... a raw
copy.. but you've
your own opinion.. Ok.
How do you do to put data into my text file without outer
language or bash
scripting?
..i mean using only pg tools?

psql yourdatabase -F" " -A -t -c "SELECT field1,field2 FROM yourview" -o
ouputfile

Should do what you want, I think. (Assuming that it spaces between the
fields, and not tabs - you will need to change what's after -F if it's
different)

-F sets field separator.
-A sets "unaligned mode"
-t turns off header and footer
-c sets query to run
-o sets file to write output to (if not set, you get it on stdout)

There is a *lot* of functionality in the psql frontend :-)

//Magnus