Search Postgresql Archives

Re: Understanding EXPLAIN ANALYZE output

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Tom Lane <tgl@xxxxxxxxxxxxx> writes:

> Martijn van Oosterhout <kleptog@xxxxxxxxx> writes:
> > I've been wondering about that. A while ago the change was made from
> > outputting a NOTICE with the EXPLAIN output to returning a resultset.
> > If you could agree on what columns to return it might not be so hard
> > for the EXPLAIN to return full tuples...
> 
> The major stumbling block to that is that a table is inherently
> unordered, so you'd have to devise a labeling scheme to allow the
> node-tree structure to be represented properly.  And without WITH or
> CONNECT BY, it'd be a bit of a PITA for an application to decipher the
> labeling scheme again ...

Only if we chose to represent the tree structure in a way that required it
(like Oracle). There are other ways to represent tree structures.

What if we used integer arrays in an ltree-like way:

[0]      Nested Loop  (cost=0.00..1369.49 rows=8230 width=945)
[0,0]      Join Filter: ("outer".store_location_ids *= "inner".store_location_id)
[0,1]      ->  Index Scan using idx_cache_ads on cache_ads  (cost=0.00..3.17 rows=1 width=219)
[0,1,0]          Index Cond: ((region_id = 12159) AND (ad_id = 132094))
[0,2]      ->  Seq Scan on store_location  (cost=0.00..1160.59 rows=16459 width=726)

Even without any special operators this can be ordered easily. 
And the code needed to find parent nodes and child nodes exists.

-- 
greg


---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux