mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Re-order items, add mention of how to propose working on a TODO item.
This commit is contained in:
59
doc/FAQ_DEV
59
doc/FAQ_DEV
@ -1,7 +1,7 @@
|
||||
|
||||
Developer's Frequently Asked Questions (FAQ) for PostgreSQL
|
||||
|
||||
Last updated: Fri May 6 13:47:54 EDT 2005
|
||||
Last updated: Sat May 14 12:26:01 EDT 2005
|
||||
|
||||
Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
|
||||
|
||||
@ -15,8 +15,8 @@ General Questions
|
||||
1.2) What development environment is required to develop code?
|
||||
1.3) What areas need work?
|
||||
1.4) What do I do after choosing an item to work on?
|
||||
1.5) Where can I learn more about the code?
|
||||
1.6) I've developed a patch, what next?
|
||||
1.5) I've developed a patch, what next?
|
||||
1.6) Where can I learn more about the code?
|
||||
1.7) How do I download/update the current source tree?
|
||||
1.8) How do I test my changes?
|
||||
1.9) What tools are available for developers?
|
||||
@ -94,35 +94,42 @@ General Questions
|
||||
|
||||
Send an email to pgsql-hackers with a proposal for what you want to do
|
||||
(assuming your contribution is not trivial). Working in isolation is
|
||||
not advisable: others may be working on the same TODO item; you may
|
||||
have misunderstood the TODO item; your approach may benefit from the
|
||||
review of others.
|
||||
not advisable because others might be working on the same TODO item,
|
||||
or you might have misunderstood the TODO item. In the email, discuss
|
||||
both the internal implementation method you plan to use, and any
|
||||
user-visible changes (new syntax, etc). For complex patches, it is
|
||||
important to get community feeback on your proposal before starting
|
||||
work. Failure to do so might mean your patch is rejected.
|
||||
|
||||
A web site is maintained for patches that are ready to be applied,
|
||||
http://momjian.postgresql.org/cgi-bin/pgpatches, and those that are
|
||||
being kept for the next release,
|
||||
http://momjian.postgresql.org/cgi-bin/pgpatches2.
|
||||
|
||||
1.5) Where can I learn more about the code?
|
||||
|
||||
Other than documentation in the source tree itself, you can find some
|
||||
papers/presentations discussing the code at
|
||||
http://www.postgresql.org/developer.
|
||||
|
||||
1.6) I've developed a patch, what next?
|
||||
1.5) I've developed a patch, what next?
|
||||
|
||||
Generate the patch in contextual diff format. If you are unfamiliar
|
||||
with this, you may find the script src/tools/makediff/difforig useful.
|
||||
with this, you might find the script src/tools/makediff/difforig
|
||||
useful.
|
||||
|
||||
Ensure that your patch is generated against the most recent version of
|
||||
the code. If it is a patch adding new functionality, the most recent
|
||||
version is cvs HEAD; if it is a bug fix, this will be the most
|
||||
version is CVS HEAD; if it is a bug fix, this will be the most
|
||||
recently version of the branch which suffers from the bug (for more on
|
||||
branches in PostgreSQL, see 1.15).
|
||||
|
||||
Finally, submit the patch to pgsql-patches@postgresql.org. It will be
|
||||
reviewed by other contributors to the project and may be either
|
||||
accepted or sent back for further work.
|
||||
reviewed by other contributors to the project and will be either
|
||||
accepted or sent back for further work. Also, please try to include
|
||||
documentation changes as part of the patch. If you can't do that, let
|
||||
us know and we will manually update the documentation when the patch
|
||||
is applied.
|
||||
|
||||
1.6) Where can I learn more about the code?
|
||||
|
||||
Other than documentation in the source tree itself, you can find some
|
||||
papers/presentations discussing the code at
|
||||
http://www.postgresql.org/developer.
|
||||
|
||||
1.7) How do I download/update the current source tree?
|
||||
|
||||
@ -130,7 +137,7 @@ General Questions
|
||||
developers can just get the most recent source tree snapshot from
|
||||
ftp://ftp.postgresql.org.
|
||||
|
||||
Regular developers may want to take advantage of anonymous access to
|
||||
Regular developers might want to take advantage of anonymous access to
|
||||
our source code management system. The source tree is currently hosted
|
||||
in CVS. For details of how to obtain the source from CVS see
|
||||
http://developer.postgresql.org/docs/postgres/cvs.html.
|
||||
@ -156,7 +163,7 @@ General Questions
|
||||
test suite. To do this, issue "make check" in the root directory of
|
||||
the source tree. If any tests failure, investigate.
|
||||
|
||||
If you've deliberately changed existing behavior, this change may
|
||||
If you've deliberately changed existing behavior, this change might
|
||||
cause a regression test failure but not any actual regression. If so,
|
||||
you should also patch the regression test suite.
|
||||
|
||||
@ -625,10 +632,10 @@ Technical Questions
|
||||
values you want changed. It returns a palloc'ed tuple, which you pass
|
||||
to heap_replace(). You can delete tuples by passing the tuple's t_self
|
||||
to heap_destroy(). You use t_self for heap_update() too. Remember,
|
||||
tuples can be either system cache copies, which may go away after you
|
||||
call ReleaseSysCache(), or read directly from disk buffers, which go
|
||||
away when you heap_getnext(), heap_endscan, or ReleaseBuffer(), in the
|
||||
heap_fetch() case. Or it may be a palloc'ed tuple, that you must
|
||||
tuples can be either system cache copies, which might go away after
|
||||
you call ReleaseSysCache(), or read directly from disk buffers, which
|
||||
go away when you heap_getnext(), heap_endscan, or ReleaseBuffer(), in
|
||||
the heap_fetch() case. Or it may be a palloc'ed tuple, that you must
|
||||
pfree() when finished.
|
||||
|
||||
2.2) Why are table, column, type, function, view names sometimes referenced
|
||||
@ -729,8 +736,8 @@ typedef struct nameData
|
||||
routines in src/backend/nodes used to create, copy, read, and output
|
||||
those structures (in particular, the files copyfuncs.c and
|
||||
equalfuncs.c. Make sure you add support for your new field to these
|
||||
files. Find any other places the structure may need code for your new
|
||||
field. mkid is helpful with this (see 1.9).
|
||||
files. Find any other places the structure might need code for your
|
||||
new field. mkid is helpful with this (see 1.9).
|
||||
|
||||
2.5) Why do we use palloc() and pfree() to allocate memory?
|
||||
|
||||
@ -786,7 +793,7 @@ typedef struct nameData
|
||||
with debugging symbols, you can use a debugger to see what is
|
||||
happening. Because the backend was not started from postmaster, it is
|
||||
not running in an identical environment and locking/backend
|
||||
interaction problems may not be duplicated.
|
||||
interaction problems might not be duplicated.
|
||||
|
||||
If the postmaster is running, start psql in one window, then find the
|
||||
PID of the postgres process used by psql using SELECT
|
||||
|
Reference in New Issue
Block a user