Thread: Where should I start for learn development

Where should I start for learn development

From
AI Rumman
Date:
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.

Re: Where should I start for learn development

From
Rob Richardson
Date:

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.

Re: Where should I start for learn development

From
Achilleas Mantzios
Date:

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

Re: Where should I start for learn development

From
"Kevin Grittner"
Date:
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

Re: Where should I start for learn development

From
Chris Angelico
Date:
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

Re: Where should I start for learn development

From
Craig Ringer
Date:
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

Re: Where should I start for learn development

From
AI Rumman
Date:
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:
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