Where should I start for learn development

Started by AI Rummanalmost 14 years ago7 messagesgeneral
Jump to latest
#1AI Rumman
rummandba@gmail.com

Hello,

I have been working with Postgresql for the last 3 years. Before that I
worked with Oracle, Mysql and other databases.
Now, its time to learn the internals of Postgresql system. I downloaded the
source code and imported it in my eclipse environment.
But I have very limited knowledge on C programming.
Could you guys please guide me from where I should start?

Thanks.

#2Achilleas Mantzios
achill@smadev.internal.net
In reply to: AI Rumman (#1)
Re: Where should I start for learn development

No!! You just install it as package. Read the docs from the official site. Try
to find your way through the docs. Reading the docs should prevent asking such
trivial questions in the first place.
Why do you want to involve Eclipse in this?

On Τρι 03 Ιουλ 2012 17:50:44 AI Rumman wrote:

Hello,

I have been working with Postgresql for the last 3 years. Before that I worked
with Oracle, Mysql and other databases.
Now, its time to learn the internals of Postgresql system. I downloaded the
source code and imported it in my eclipse environment.
But I have very limited knowledge on C programming.
Could you guys please guide me from where I should start?

Thanks.

-
Achilleas Mantzios
IT DEPT

#3Rob Richardson
RDRichardson@rad-con.com
In reply to: AI Rumman (#1)
Re: Where should I start for learn development

I think maybe the best question to ask in response to yours is: why? Is there something you think should be improved? Is there some question you have about how it works or how it should be used or why you are getting some result instead of the result you're expecting? Do you want to use the source code as a sample to help you learn C?

If you could tell us your goal, we would be better able to help you get there.

RobR

P.S. I've been a C/C++/C# programmer for well over 20 years, and I doubt that I could understand the PostgreSQL source code. But I've never been tempted to look at it.

#4Kevin Grittner
Kevin.Grittner@wicourts.gov
In reply to: Rob Richardson (#3)
Re: Where should I start for learn development

Rob Richardson wrote:

AI Rumman wrote:

Now, its time to learn the internals of Postgresql system. I
downloaded the source code and imported it in my eclipse
environment. But I have very limited knowledge on C programming.
Could you guys please guide me from where I should start?

I think maybe the best question to ask in response to yours is:
why? Is there something you think should be improved? Is there some
question you have about how it works or how it should be used or
why you are getting some result instead of the result you're
expecting? Do you want to use the source code as a sample to help
you learn C?

If you could tell us your goal, we would be better able to help you
get there.

+1

P.S. I've been a C/C++/C# programmer for well over 20 years, and I
doubt that I could understand the PostgreSQL source code.

You might be surprised. When I approached the source code to work on
a feature, the sheer volume of it was intimidating, with over a
million lines in .c and .h files; but the organization, quality, and
documentation of the code is undoubtedly the best I've ever seen,
making it surprisingly approachable.

The key, I think, is *focus*. There is too much there to just browse
it all and take it all in; you must have a reason to go in and idea
of what you're going to do so you can find the relevant part of the
code. Part of "good organization" is having a number of subsystems
which can be treated as "black boxes" when you're looking at the code
of interest -- you don't need to understand the internals of adjacent
subsystems, just the APIs. (Of course, like all software
abstractions, practical considerations can compromise that to some
degree when you get down to nitty-gritty details in implementing
something, but the abstractions help a lot when trying to understand
any particular area.)

-Kevin

#5Chris Angelico
rosuav@gmail.com
In reply to: AI Rumman (#1)
Re: Where should I start for learn development

On Tue, Jul 3, 2012 at 9:50 PM, AI Rumman <rummandba@gmail.com> wrote:

I have been working with Postgresql for the last 3 years. Before that I
worked with Oracle, Mysql and other databases.
Now, its time to learn the internals of Postgresql system.

You'll do far better with some of the essays on the Postgres site than
with the source. Try this one, for instance:

http://www.postgresql.org/docs/9.1/static/storage-toast.html

ChrisA

#6Craig Ringer
craig@2ndquadrant.com
In reply to: AI Rumman (#1)
Re: Where should I start for learn development

On 07/03/2012 07:50 PM, AI Rumman wrote:

Hello,

I have been working with Postgresql for the last 3 years. Before that
I worked with Oracle, Mysql and other databases.
Now, its time to learn the internals of Postgresql system. I
downloaded the source code and imported it in my eclipse environment.
But I have very limited knowledge on C programming.
Could you guys please guide me from where I should start?

If you really want to start messing with the Pg innards, and you have
already read and understood all the developer documentation, I'd suggest
starting by writing some simple user defined functions in C. Write a
simple function that returns a plain value. Then a record. Then a set of
records. Then write an aggregate function. Then a window function. Dig
into the data structures and types. When you're game, implement a simple
data type. Then add support for indexing it. etc.

Honestly, if you don't have something you want to _achieve_ it's
probably mostly going to be boring. What do you want to do, to get out
of this?

--
Craig Ringer

#7AI Rumman
rummandba@gmail.com
In reply to: Craig Ringer (#6)
Re: Where should I start for learn development

Thanks to all for all the good advice. I was thinking myself to work in any
of the open source project and contribute there. As a database developer I
think Postgresql is one of the best places for me where I may enjoy working
and see the outcome.
If you ask about goal, I was thinking to work in a large project where the
great hacker may be working for parallel execution of a query. At present,
I need it badly. I know I may achieve a bit of that using pgpool load
balancer or grid sql. But it would be nice if we get it at core Postgresql.
Criag, you really tell a good point. At first I should start by writing
simple C functions as extension and then for more.
Thanks to all again.

On Tue, Jul 3, 2012 at 7:32 PM, Craig Ringer <ringerc@ringerc.id.au> wrote:

Show quoted text

On 07/03/2012 07:50 PM, AI Rumman wrote:

Hello,

I have been working with Postgresql for the last 3 years. Before that I
worked with Oracle, Mysql and other databases.
Now, its time to learn the internals of Postgresql system. I downloaded
the source code and imported it in my eclipse environment.
But I have very limited knowledge on C programming.
Could you guys please guide me from where I should start?

If you really want to start messing with the Pg innards, and you have
already read and understood all the developer documentation, I'd suggest
starting by writing some simple user defined functions in C. Write a simple
function that returns a plain value. Then a record. Then a set of records.
Then write an aggregate function. Then a window function. Dig into the data
structures and types. When you're game, implement a simple data type. Then
add support for indexing it. etc.

Honestly, if you don't have something you want to _achieve_ it's probably
mostly going to be boring. What do you want to do, to get out of this?

--
Craig Ringer