Re: BUG #5867: wish: plpgsql print table for debug

From: Richard Neill <rn214(at)richardneill(dot)org>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Richard Neill <postgresql(at)richardneill(dot)org>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #5867: wish: plpgsql print table for debug
Date: 2011-03-03 17:12:12
Message-ID: 4D6FCBEC.1060709@richardneill.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

>> The following bug has been logged online:
>>
>> Bug reference: 5867
>> Logged by: Richard Neill
>> Email address: postgresql(at)richardneill(dot)org
>> PostgreSQL version: 9.03
>> Operating system: Linux
>> Description: wish: plpgsql print table for debug
>> Details:
>>
>> When debugging a plpgsql function, it would be really amazingly useful to be
>> able to do a regular psql-style SELECT, and have the result printed to
>> screen.
>>
>> Something like:
>>
>> Raise Notice table 'SELECT .... '
>>
>> and then plpgsql would run the query and dump the result to screen, using
>> its helpful formatting.
>>
>> As far as I can see, this isn't possible (though there are a lot of people
>> searching for how to do it), and the only workaround is to manually handle
>> the looping and formatting, raising lots of individual notices. This makes
>> debugging much harder than it should be.
>
> It wouldn't be too hard to write a loop that runs the select statement
> and does RAISE NOTICE on each row. Getting that into the psql
> formatting would be a little trickier, but I don't see why you
> couldn't write a PL/pgsql function to do it. Then you could just call
> that function and pass it an SQL query every time you want to do this.
>

I'm rather hoping that this would actually be an enhancement to
PL/PGSQL, (or at least an officially documented howto) rather than just
a private debugging function.

Do you not think it would be really amazingly useful? After all, in C,
the single most useful debugging tool is "fprintf(stderr,...)", and yet
postgresql doesn't have an equivalent that can operate on the most
common data format. [I'm stretching the analogy a bit here, but it seems
to me that a multi-row table is to postgresql as int is to C.]

There are a lot of people who would benefit from it, most of whom
(including me) don't really have the expertise to do it well.

Also, there is a lot of value in being able to debug as needed with a
1-line debugging statement, then get back to the problem at hand, rather
than having to break out of the current programming task to write a
debug function :-)

Thanks very much,

Richard

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2011-03-03 17:16:53 Re: can't build contrib/uuid-ossp
Previous Message Robert Haas 2011-03-03 17:10:33 Re: BUG #5869: postgresql corrupts unquoted non-ascii chars in column aliases