Re: Invalid YAML output from EXPLAIN - Mailing list pgsql-bugs

From Bruce Momjian
Subject Re: Invalid YAML output from EXPLAIN
Date
Msg-id 201006102254.o5AMsve26331@momjian.us
Whole thread Raw
In response to Re: Invalid YAML output from EXPLAIN  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: Invalid YAML output from EXPLAIN  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
Robert Haas wrote:
> On Wed, Jun 9, 2010 at 4:48 PM, Robert Haas <robertmhaas@gmail.com> wrote:
> > On Wed, Jun 9, 2010 at 4:47 PM, Dean Rasheed <dean.a.rasheed@gmail.com> wrote:
> >> On 9 June 2010 20:56, Robert Haas <robertmhaas@gmail.com> wrote:
> >>> On Wed, Jun 9, 2010 at 3:50 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> >>>> Dean Rasheed <dean.a.rasheed@gmail.com> writes:
> >>>>> Hmm. Well it's quite subjective, but IMO it's already more readable
> >>>>> than JSON regardless of whether or not values are quoted, simply
> >>>>> because it doesn't have [ ] and { } for lists and maps, which for JSON
> >>>>> adds significantly to the number of lines in longer plans.
> >>>>
> >>>> Yeah. ?Also, I think it would be fair to not quote values that are known
> >>>> constants (for example, Node Type: Seq Scan) and are chosen to not need
> >>>> quoting. ?It's just the things that are variables that worry me.
> >>>
> >>> Passing down information about which things are known constants seems
> >>> more complicated to me than just getting the quoting rules right in
> >>> the first place. ?If you look at the patch I proposed, you'll see that
> >>> it's really quite simple and only a slight tightening of what I
> >>> committed already.
> >>>
> >>
> >> Reading the YAML spec, I've just spotted yet another case that'll
> >> break what you're proposing: if you don't quote "true" and "false",
> >> the parser will think they're booleans rather than strings.
> >>
> >> This is really why I'm opposed to this approach. There are just so
> >> many gotchas that it's impossible to be 100% sure that you've
> >> accounted for them all.
> >
> > OK, I give up.
>
> I have committed your patch, with some changes to the comments.
>
> Thanks for bearing with me.

So, is there still value to a YAML format vs. JSON?  They look similar
to me in this simple case:

    test=> EXPLAIN (FORMAT JSON) SELECT * FROM pg_class;
                 QUERY PLAN
    ------------------------------------
     [                                 +
       {                               +
         "Plan": {                     +
           "Node Type": "Seq Scan",    +
           "Relation Name": "pg_class",+
           "Alias": "pg_class",        +
           "Startup Cost": 0.00,       +
           "Total Cost": 9.53,         +
           "Plan Rows": 253,           +
           "Plan Width": 190           +
         }                             +
       }                               +
     ]
    (1 row)

    test=> EXPLAIN (FORMAT YAML) SELECT * FROM pg_class;
              QUERY PLAN
    -------------------------------
     - Plan:                      +
         Node Type: "Seq Scan"    +
         Relation Name: "pg_class"+
         Alias: "pg_class"        +
         Startup Cost: 0.00       +
         Total Cost: 9.53         +
         Plan Rows: 253           +
         Plan Width: 190
    (1 row)

Is unquoted identifiers the only value for YAML?

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + None of us is going to be here forever. +

pgsql-bugs by date:

Previous
From: David Gardner
Date:
Subject: Re: BUG #5497: plpythonu gives cache lookup error
Next
From: Tom Lane
Date:
Subject: Re: Invalid YAML output from EXPLAIN