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?

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to