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

Поиск
Список
Период
Сортировка
От Richard Neill
Тема Re: BUG #5867: wish: plpgsql print table for debug
Дата
Msg-id 4D6FCBEC.1060709@richardneill.org
обсуждение исходный текст
Ответ на Re: BUG #5867: wish: plpgsql print table for debug  (Robert Haas <robertmhaas@gmail.com>)
Ответы Re: BUG #5867: wish: plpgsql print table for debug  (Pavel Stehule <pavel.stehule@gmail.com>)
Re: BUG #5867: wish: plpgsql print table for debug  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-bugs
>> The following bug has been logged online:
>>
>> Bug reference:      5867
>> Logged by:          Richard Neill
>> Email address:      postgresql@richardneill.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

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: can't build contrib/uuid-ossp
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #5912: Etc/GMT time utc offset error