From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
Cc: | Andrew Dunstan <andrew(at)dunslane(dot)net>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: explain output infelicity in psql |
Date: | 2009-12-10 07:06:00 |
Message-ID: | 162867790912092306v3631e8ddxf8399b0d2b978ac6@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
2009/12/9 Robert Haas <robertmhaas(at)gmail(dot)com>:
> On Wed, Dec 9, 2009 at 2:37 PM, Andrew Dunstan <andrew(at)dunslane(dot)net> wrote:
>>
>> I have just noticed while checking the EXPLAIN YAML patch that the non-text
>> explain formats are output as a single line with embedded line feeds, while
>> the text format is delivered as a set of text records, one per line. The
>> practical effect of this is that psql decorates the non-text format output
>> with continuation characters:
>>
>> andrew=# explain select count(*) from pg_class where relname ~ 'pg_';
>> QUERY PLAN
>> ----------------------------------------------------------------
>> Aggregate (cost=9.67..9.68 rows=1 width=0)
>> -> Seq Scan on pg_class (cost=0.00..9.16 rows=204 width=0)
>> Filter: (relname ~ 'pg_'::text)
>> (3 rows)
>>
>> Time: 5.813 ms
>> andrew=# explain (format yaml) select count(*) from pg_class where
>> relname ~ 'pg_';
>> QUERY PLAN
>> -----------------------------------------
>> - Plan: +
>> Node Type: Aggregate +
>> Strategy: Plain +
>> Startup Cost: 9.67 +
>> Total Cost: 9.68 +
>> Plan Rows: 1 +
>> Plan Width: 0 +
>> Plans: +
>> - Node Type: Seq Scan +
>> Parent Relationship: Outer +
>> Relation Name: pg_class +
>> Alias: pg_class +
>> Startup Cost: 0.00 +
>> Total Cost: 9.16 +
>> Plan Rows: 204 +
>> Plan Width: 0 +
>> Filter: (relname ~ 'pg_'::text)
>> (1 row)
>>
>> Those + chars at the end of the line are ugly, to say the least, and they
>> make the supposedly machine-readable formats not so machine readable if
>> anyone wanted to c&p the output into a parser. (I'm mildly surprised this
>> hasn't been noticed before).
>>
>> Maybe we need to teach psql not to do this formatting for EXPLAIN output?
>
> Oh, dear. I think that line continuation syntax was recently added -
> subsequent to the machine-readable EXPLAIN patch. The reason why it's
> coded to emit everything as a single row is because that will be most
> convenient for programs that are sucking down this data
> programatically. Otherwise, they'll have to concatenate all the lines
> that are returned.
>
> And in fact for XML format, it's even worse: the data is returned as
> type xml, but that obviously won't fly if we return each line as a
> separate tuple.
>
> On first blush, I'm inclined to suggest that the addition of + signs
> to mark continuation lines is a misfeature.
+1
Pavel
>
> ...Robert
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>
From | Date | Subject | |
---|---|---|---|
Next Message | Takahiro Itagaki | 2009-12-10 08:21:44 | Re: pgbench: new feature allowing to launch shell commands |
Previous Message | 黄晓骋 | 2009-12-10 06:47:14 | 答复: questions about concurrency control in Postgresql |