Help a newbie?

Started by Rafael Kaufmannover 26 years ago5 messages
#1Rafael Kaufmann
rnedal@olimpo.com.br

Hi, I'm a programmer in Brazil (i.e., kinda far away from the
technological mainstream) and I've been trying to learn more about the
PostgreSQL internals, maybe even help with its development. So I
downloaded the source tarball for the last release. Thing is, last time
I checked, there was minimal developer-oriented documentation, and all
those hundreds of barely-commented source files can be very intimidating
- specially when you're not looking for anything specific, but only
trying to figure out how the software /works/.

I understand that this is what I should expect since you are already
familiar with the source code, but you could use some fresh blood,
right? So I'd really appreciate it if anyone would point me in the
direction of some in-depth docos, detailed texts about the Postgres
architecture or anything else that would help me get started hacking.

Thanks in advance,

--
Rafael Kaufmann
<rnedal@olimpo.com.br>

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Rafael Kaufmann (#1)
Re: [HACKERS] Help a newbie?

Rafael Kaufmann <rnedal@olimpo.com.br> writes:

technological mainstream) and I've been trying to learn more about the
PostgreSQL internals, maybe even help with its development. So I
downloaded the source tarball for the last release.

Actually, I'd recommend working from a recent snapshot --- there's been
many changes and improvements since 6.4.2.

So I'd really appreciate it if anyone would point me in the
direction of some in-depth docos, detailed texts about the Postgres
architecture or anything else that would help me get started hacking.

There is a fair amount of stuff in the Administrator's Guide,
Programmer's Guide, and Developer's Guide parts of the manual.
It won't all make sense on first reading, but I'd certainly recommend
reading those parts of the manual thoroughly.

There are also useful bits of documentation buried in less-obvious
places, such as the backend flowchart in src/tools/backend/flow.jpg
and the README files found in many of the sourcecode directories.

One thing to watch out for is that not all of the doco is up to date
:-(. Checking the source code is always the most reliable guide to
How It Really Works.

A really useful trick is to set up a full-text index of the source tree
(I use 'glimpse' from http://glimpse.cs.arizona.edu/) so that you can
easily find all the uses of a particular routine, look for the place
where a particular error message is generated, etc.

If you want to delve into the actual database algorithms then you should
have one of the standard database textbooks at hand (anyone care to
recommend some titles?).

If you've got specific questions about where to look for particular
functions, feel free to ask ...

Welcome aboard!

regards, tom lane

#3Bruce Momjian
maillist@candle.pha.pa.us
In reply to: Tom Lane (#2)
Re: [HACKERS] Help a newbie?

Rafael Kaufmann <rnedal@olimpo.com.br> writes:

technological mainstream) and I've been trying to learn more about the
PostgreSQL internals, maybe even help with its development. So I
downloaded the source tarball for the last release.

Actually, I'd recommend working from a recent snapshot --- there's been
many changes and improvements since 6.4.2.

So I'd really appreciate it if anyone would point me in the
direction of some in-depth docos, detailed texts about the Postgres
architecture or anything else that would help me get started hacking.

There is a fair amount of stuff in the Administrator's Guide,
Programmer's Guide, and Developer's Guide parts of the manual.
It won't all make sense on first reading, but I'd certainly recommend
reading those parts of the manual thoroughly.

There are also useful bits of documentation buried in less-obvious
places, such as the backend flowchart in src/tools/backend/flow.jpg
and the README files found in many of the sourcecode directories.

Don't forget the developers FAQ.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
#4Rafael Kaufmann
rnedal@olimpo.com.br
In reply to: Tom Lane (#2)
Re: [HACKERS] Help a newbie?

Tom Lane wrote:

There is a fair amount of stuff in the Administrator's Guide,
Programmer's Guide, and Developer's Guide parts of the manual.
It won't all make sense on first reading, but I'd certainly recommend
reading those parts of the manual thoroughly.

I already did, but not very carefully. So I'll be sure to read those
again. Nonetheless, the absence of a text specifically detailing the
inner workings of the system

<SNIP>

A really useful trick is to set up a full-text index of the source tree
(I use 'glimpse' from http://glimpse.cs.arizona.edu/) so that you can
easily find all the uses of a particular routine, look for the place
where a particular error message is generated, etc.

I'll be sure to get Glimpse running as soon as I have a stable release
of LinuxPPC R5 (for which I've been waiting since December) on my box.
(Yes, that does mean I'm still stuck with the mockery of a system that
is the MacOS... don't flame me)

If you want to delve into the actual database algorithms then you should
have one of the standard database textbooks at hand (anyone care to
recommend some titles?).

So I guess that means I'll be paying computerliteracy.com a little
visit, yes? (Or is there stuff like that available online?)

<SNIP>

Welcome aboard!

Hey, thanks! :)

--
Rafael Kaufmann
<rnedal@olimpo.com.br>

#5Thomas Lockhart
lockhart@alumni.caltech.edu
In reply to: Bruce Momjian (#3)
Re: [HACKERS] Help a newbie?

Don't forget the developers FAQ.

... and there is some new stuff donated by Stefan Simkovics from his
Master's Thesis which walks you through the query processing. I'm in
the process of integrating it into the docs; you might find the html
docs on the web site or look for the html docs built in

ftp://ftp.postgresql.org/pub/doc/*.tar.gz

The first chapters in the Developer's or Programmer's Guide contain
this.

- Tom

--
Thomas Lockhart lockhart@alumni.caltech.edu
South Pasadena, California