Below is an example of feeding query output to gnuplot without leaving psql. I'd like to call it as "select graph(select * from example)", just for fun. What do I need to learn to do that, please? Can I create a function that uses "\o"? I think not, because a function runs server-side and \o is a client side feature.
This is not a production issue, just learning, for fun.
# psql -U postgres
psql (8.4.15)
Type "help" for help.
postgres=# \t
Showing only tuples.
postgres=# \a
Output format is unaligned.
postgres=# \f ' '
Field separator is " ".
postgres=# select * from example;
1 1
2 2
3 3
4 4
postgres=# \o | /usr/bin/gnuplot
postgres=# select 'set title "My Graph"; set terminal dumb 78 24; set key off; set ylabel "Time"; set xlabel "Servers";' || 'plot ''-'' with lines;' ; select * from example;
postgres=# \o
My Graph
Time
4 ++----------+----------+-----------+----------+-----------+---------**
+ + + + + + **** +
| **** |
3.5 ++ **** ++
| **** |
| **** |
3 ++ *** ++
| **** |
| **** |
2.5 ++ **** ++
| **** |
| **** |
2 ++ *** ++
| **** |
| **** |
1.5 ++ **** ++
| **** |
+ **** + + + + + +
1 **----------+----------+-----------+----------+-----------+---------++
1 1.5 2 2.5 3 3.5 4
Servers
postgres=#
Best,
# psql -U postgres
psql (8.4.15)
Type "help" for help.
postgres=# \t
Showing only tuples.
postgres=# \a
Output format is unaligned.
postgres=# \f ' '
Field separator is " ".
postgres=# select * from example;
1 1
2 2
3 3
4 4
postgres=# \o | /usr/bin/gnuplot
postgres=# select 'set title "My Graph"; set terminal dumb 78 24; set key off; set ylabel "Time"; set xlabel "Servers";' || 'plot ''-'' with lines;' ; select * from example;
postgres=# \o
My Graph
Time
4 ++----------+----------+-----------+----------+-----------+---------**
+ + + + + + **** +
| **** |
3.5 ++ **** ++
| **** |
| **** |
3 ++ *** ++
| **** |
| **** |
2.5 ++ **** ++
| **** |
| **** |
2 ++ *** ++
| **** |
| **** |
1.5 ++ **** ++
| **** |
+ **** + + + + + +
1 **----------+----------+-----------+----------+-----------+---------++
1 1.5 2 2.5 3 3.5 4
Servers
postgres=#
Best,
Aleksey
--
CFEngine Trainings:
Los Angeles, Feb 25 - 28. http://cf3la.eventbrite.com
New Jersey, Apr 29 - May 2. http://cf3.eventbrite.com/
--
CFEngine Trainings:
Los Angeles, Feb 25 - 28. http://cf3la.eventbrite.com
New Jersey, Apr 29 - May 2. http://cf3.eventbrite.com/