Thread: Help a newbie?
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>
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
> 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, Pennsylvania19026
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>
> 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