Re: [HACKERS] On Complex Source Code Reading Strategy - Mailing list pgsql-hackers

From Craig Ringer
Subject Re: [HACKERS] On Complex Source Code Reading Strategy
Date
Msg-id CAMsr+YGHZDkOn5FpF6nQ7gwCAPLCXSUYZRJpFs7TKCndD3n2-w@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] On Complex Source Code Reading Strategy  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [HACKERS] On Complex Source Code Reading Strategy
List pgsql-hackers
On 28 July 2017 at 07:45, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Peter Geoghegan <pg@bowt.ie> writes:
> 2. Start somewhere. I have no idea where that should be, but it has to
> be some particular place that seems interesting to you.

Don't forget to start with the available documentation, ie
https://www.postgresql.org/docs/devel/static/internals.html
You should certainly read
https://www.postgresql.org/docs/devel/static/overview.html
and depending on what your interests are, there are probably other
chapters of Part VII that are worth your time.

Also keep an eye out for README files in the part of the source
tree you're browsing in.

In fact, even though you won't initially understand much from some of them, reading most of

find src/ -name README\* 

can be quite useful. It's nearly time for me to do that again myself; each time I absorb more.

There are very useful comments at the start of some of the source files too. Unfortunately in some cases the really important explanation will be on some function that you won't know to look for, not the comment at the top of the file, so there's an element of discovery there.

I'd start with the docs as Tom suggested, then 


(some of which need to be added to the "developer information" wiki page I think)

--
 Craig Ringer                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

pgsql-hackers by date:

Previous
From: Tatsuo Ishii
Date:
Subject: Re: [HACKERS] Incorrect comment of XLByteToSeg() andXLByteToPrevSeg()
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] PL_stashcache, or, what's our minimum Perl version?