Thanks for the answer Kevin!

I am developing an encoded bitmap index, as proposed in
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.44.7570&rank=1

Automated, in my words, would have meant... some SQL-Statements which
create tables, do inserts, deletes, selects and so on and the results
can be compared to a master file or whatsoever. On low level I tend to
go your way and debug with elog, I just thought somebody might have a
different approach on debugging such code.

Yves

Am 22.04.2011 18:30, schrieb Kevin Grittner:
> Yves Weißig<weis...@rbg.informatik.tu-darmstadt.de> wrote:
>  
>> Ok, but I thought more like an automated test, or a test which
>> checks if the interface is correctly implemented.
>  
> I'm not aware of any automated tests which would test whether a new
> index type is correctly implemented.  For starters, how would the
> test know when the AM should be used, or what correct results would
> be?  Perhaps if this was a drop-in replacement for btree you could
> cobble something together so that the standard regression tests
> (`make check` and such) would use your index type instead of btree,
> yielding similar results; but you haven't given us the slightest
> clue whether that's the sort of index you're developing.
>  
>> what would be the best way to debug in pg? elog? asserts?
>  
> If there are clear guidelines on this anywhere, I've missed it or
> forgotten it.  Here's what I tend to go by:
>  
> (1)  If it's a message which is expected enough to warrant
> translation to all the supported languages, use ereport.
>  
> (2)  If it's something which should be rare and technical enough not
> to warrant burdening the translators, use elog.
>  
> (3)  If it's something which "should never happen" unless there is a
> programming error within the PostgreSQL code, it should not normally
> be checked in production (just development and through beta
> testing), and it is sane to panic (effectively restarting
> PostgreSQL) when the condition is encountered, use Assert.
>  
> That's all independent of what logging level you use.  You may want
> to sprinkle your code with elog calls at the DEBUG level during
> development, and consider which might be worth keeping at which
> debug levels later on.  Sometimes debug calls are conditioned on
> #ifdef conditions so that they're not in the executable without a
> special build option.
>  
> -Kevin
> 

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to