| From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
|---|---|
| To: | Richard Neill <postgresql(at)richardneill(dot)org> |
| Cc: | pgsql-bugs(at)postgresql(dot)org |
| Subject: | Re: BUG #5867: wish: plpgsql print table for debug |
| Date: | 2011-03-03 15:03:41 |
| Message-ID: | AANLkTimrzAYxjqFaKRjmVvXiVt_YuAVG54C9EcNW95db@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
On Mon, Feb 7, 2011 at 1:01 AM, Richard Neill
<postgresql(at)richardneill(dot)org> wrote:
>
> 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.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Robert Haas | 2011-03-03 15:04:52 | Re: BUG #5871: database connecting failed |
| Previous Message | Robert Haas | 2011-03-03 15:00:38 | Re: BUG #5863: help message report 5433 as default port |