Thread

  1. Re: psql: display of object comments

    Josh Kupershmidt <schmiddy@gmail.com> — 2011-07-27T00:38:09Z

    On Mon, Jul 25, 2011 at 12:27 PM, Robert Haas <robertmhaas@gmail.com> wrote:
    > On Fri, Jul 22, 2011 at 10:44 PM, Josh Kupershmidt <schmiddy@gmail.com> wrote:
    >> On Sat, Jul 9, 2011 at 1:16 PM, Josh Kupershmidt <schmiddy@gmail.com> wrote:
    >>
    >> Attached is an updated version of this patch, lifted out of the recent
    >> pg_comments patch. With this v2 patch, \dd should properly show just
    >> its five object types, and the psql documentation and help strings
    >> should be fixed.
    >
    > I took a look at this patch today and I think some of these queries
    > are not quite right.  When you do a left join against pg_description,
    > you have this sort of thing in the WHERE clause:
    >
    > (d.objsubid IS NULL OR d.objsubid = 0)
    >
    > I think what you actually want is "AND d.objsubid = 0" in the LEFT
    > JOIN's "ON" clause.  Then you are, in effect, only left joining
    > against the rows from pg_description where objsubid = 0, and
    > null-extending if none such is found.  I think that's what you want.
    
    Thanks for taking a look at this.
    
    Yeah, that is what I was going for. I believe my way worked, since
    pg_description declares objsubid NOT NULL, so checking whether
    d.objsubid IS NULL in the where clause should just match null-extended
    rows. But anyway, your version is clearer, changed.
    
    > I think you can remove the XXX comments, too.  Unless I'm
    > misunderstanding something, using the table to test visibility for
    > constraints, rules, and triggers seems just right, and opclasses and
    > opfamilies you have a suitable function available, so those don't seem
    > problematic.  Or am I confused?
    
    I bet you're right; at least, it seems to work reasonably in the
    testing I've done. I had just left those comments in there since they
    were in all the sub-queries of objectDescription(), but now seems like
    a good time to get rid of them.
    
    Josh