<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Roman Barczyński &#187; skrypt</title>
	<atom:link href="http://www.romke.net/priv/blog/tag/skrypt/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.romke.net/priv/blog</link>
	<description>romke blog</description>
	<lastBuildDate>Thu, 10 Jun 2010 12:03:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>pgrow czyli jak inaczej wyswietlić wiersz w psql</title>
		<link>http://www.romke.net/priv/blog/2009/02/pgrow-czyli-jak-inaczej-wyswietlic-wiersz-w-psql/</link>
		<comments>http://www.romke.net/priv/blog/2009/02/pgrow-czyli-jak-inaczej-wyswietlic-wiersz-w-psql/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 15:27:01 +0000</pubDate>
		<dc:creator>Roman Barczyński</dc:creator>
				<category><![CDATA[Różne]]></category>
		<category><![CDATA[pgrow]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[psql]]></category>
		<category><![CDATA[skrypt]]></category>
		<category><![CDATA[ułatwienie]]></category>

		<guid isPermaLink="false">http://www.romke.net/priv/blog/?p=41</guid>
		<description><![CDATA[psql każdy używający postgresa znać powinien, wygodna konsola do bazy postgresql mająca masę możliwości. Niestety nie znalazłem rozwiązania jak poradzić sobie z sytuacją w której na wąskim terminalu wyświetlić trzeba wiersz tabeli mającej kilkanaście kolumn.Próbowaliście? wygląda to m/w tak: select * from klienci where id like '586_'; id &#124; typ &#124; kod &#124; s_kat &#124; [...]]]></description>
			<content:encoded><![CDATA[<p>psql każdy używający postgresa znać powinien, wygodna konsola do bazy postgresql mająca masę możliwości. Niestety nie znalazłem rozwiązania jak poradzić sobie z sytuacją w której na wąskim terminalu wyświetlić trzeba wiersz tabeli mającej kilkanaście kolumn.<span id="more-41"></span>Próbowaliście? wygląda to m/w tak:</p>
<pre style="padding-left: 30px;">select * from klienci where id like '586_';
  id  | typ | kod  | s_kat |    imie    |     nazw     |                        nazwa_f
                        |      adr_ul      | adr_nr | adr_miasto | adr_kodp |   telefon
    |    tel_kom    |      nip      |          email          |
                   uwagi
------+-----+------+-------+------------+--------------+-------------------------------
------------------------+------------------+--------+------------+----------+----------
----+---------------+---------------+-------------------------+------------------------
-------------------------------------------------------------------
 5863 | i   | 7340 | now   | xxxxx      | xxxxxxxxxxxx |
                        |                  |        |            |          |          

    | xxxxxxxxx     |               |                         |
 5865 | i   | 7343 | now   | xxxxxxx    | xxxxx        | xxxxxxxxxx xxxxxxxxxxx xxxxxxx
 xxxxxxxxxxx x xxxxxxxx | ul. xxxx xxxxxxx | 6      | Kraków     | 31-547   | xxxxxxx
    | xxx xx xx fax | xxx-xx-xx-xxx | xxxxxxxxxxxxxxxxxxxxxxx | xxxxxxxxxxxxxxxxxxxxxxx
 lub ogólny sekretariat....;</pre>
<p>Prawda, że piękne? Tylko szukaj tu człowieku danych&#8230;</p>
<p>Dlatego też, zainspirowany postem <a href="http://www.depesz.com/index.php/2007/08/06/better-explain-analyze/" target="_blank">Huberta Lubaczewskiego</a>, napisałem sobie skrypt którym pragnę się podzielić, powoduje on, że wynik tego samego zapytania wygląda tak:</p>
<pre style="padding-left: 30px;">--------------------
         id: 5863
        typ: i
        kod: 7340
      s_kat: now
       imie: xxxxx
       nazw: xxxxxxxxxxxx
    nazwa_f:
     adr_ul:
     adr_nr:
 adr_miasto:
   adr_kodp:
    telefon:
    tel_kom: xxxxxxxxx
        nip:
      email:
      uwagi:
--------------------
         id: 5865
        typ: i
        kod: 7343
      s_kat: now
       imie: xxxxxxx
       nazw: xxxxx
    nazwa_f: xxxxxxxxxx xxxxxxxxxxx xxxxxxx xxxxxxxxxxx x xxxxxxxx
     adr_ul: ul. xxxx xxxxxxx
     adr_nr: 6
 adr_miasto: Kraków
   adr_kodp: 31-547
    telefon: xxxxxxx
    tel_kom: xxx xx xx fax
        nip: xxx-xx-xx-xxx
      email: xxxxxxxxxxxxxxxxxxxxxxx
      uwagi: xxxxxxxxxxxxxxxxxxxxxxx lub ogólny sekretariat....;
--------------------</pre>
<p>Według mnie lepiej, a Wy jak myślicie?</p>
<p>Oto skrypt:</p>
<pre style="padding-left: 30px;">#!/usr/bin/perl
my $head = 0;
my $continue = 0;
while (&lt;STDIN&gt;) {
        if (/^\(\d+ row/) {
                print "-"x20 . "\n" . $_;
                $head = 0;
                $continue = 0;
                @data = undef;
                @data2 = undef;
                next;
        }
        s/[\n\r]+$//;
        if (!$head) {
                @order = split /\|/;
                $head = 1;

                foreach $t (@order) {
                        $head = length($t) if length($t) &gt; $head;
                }
                $head++;
                next;
        }
        if ($continue) {
                @data2 = split /\|/;
                $data[$#data] .= '\n' . (shift @data2);
                push @data, @data2;
        } else {
                @data = split /\|/, $_, -1;
        }
        if ($#data &lt; $#order) {
                $continue = 1;
                next;
        } else {
                $continue = 0;
        }

        printf("%s\n", "-"x20);
        for $i (0..$#order) {
                printf("%${head}s: %s\n", $order[$i], $data[$i]);
        }
}</pre>
<p>Tak go należy użyć w psql:</p>
<pre style="padding-left: 30px;">-- włączenie unaligned output (\a) oraz przekierowania output (\o):
\a \o |./pgrow.pl
-- select
select * from;
-- wyłączenie unaligned oraz przekierowania output:
\a \o</pre>
<p>Miłego używania&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.romke.net/priv/blog/2009/02/pgrow-czyli-jak-inaczej-wyswietlic-wiersz-w-psql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
