提交 6cd67c93 编写于 作者: B Bruce Momjian

Cleaups:

< * Allow GRANT/REVOKE permissions to be given to all schema objects with one
> * Allow GRANT/REVOKE permissions to be applied to all schema objects with one
60c60
<   specifications.  This is because new databases are created by copying
>   specifications.  This is because new databases are created by copying
63c63
<   directory would create a new database with tables that had incorrect
>   directory would create a new database with tables that had incorrect
72c72
<
>
85c85
<   By not showing commented-out variables, we discourage people from
>   By not showing commented-out variables, we discourage people from
91c91
< * Allow point-in-time recovery to archive partially filled write-ahead
> * Allow point-in-time recovery to archive partially filled write-ahead
102c102
<   Currently all schemas are owned by the super-user because they are
>   Currently all schemas are owned by the super-user because they are
128c128
< * Allow INET subnet tests with non-constants to be indexed
> * Allow INET subnet tests using non-constants to be indexed
143,144c143,144
< * Allow to_char to print localized month names
< * Allow functions to have a search path specified at creation time
> * Allow to_char() to print localized month names
> * Allow functions to have a schema search path specified at creation time
146c146
< * Add GUC variable to allow output of interval values in ISO8601 format
> * Add a GUC variable to allow output of interval values in ISO8601 format
154,155c154,155
< * Prevent inet cast to cidr if the unmasked bits are not zero, or
<   zero bits
> * Prevent INET cast to CIDR if the unmasked bits are not zero, or
>   zero the bits
158c158
< 	o Allow nulls in arrays
> 	o Allow NULLs in arrays
160,161c160,161
< 	o Delay resolution of array expression type so assignment coercion
< 	  can be performed on empty array expressions
> 	o Delay resolution of array expression's data type so assignment
> 	  coercion can be performed on empty array expressions
218,219c218,219
<   key, foreign key  [inheritance]
< * UNIQUE INDEX on base column not honored on inserts/updates from
>   key, foreign key
> * UNIQUE INDEX on base column not honored on INSERTs/UPDATEs from
221c221
<   (dup) should fail [inheritance]
>   (dup) should fail
246c246
< * Fetch heap pages matching index entries in sequential order [performance]
> * Fetch heap pages matching index entries in sequential order
307c307
<   functionality in DELETE.  It's been agreed that the keyword should
>   functionality in DELETE.  It's been agreed that the keyword should
318c318
< * Allow PREPARE to automatically determine parameter types based on the SQL
> * Allow PREPARE to automatically determine parameter types based on the SQL
340,342d339
< * Allow CREATE TABLE foo (f1 INT CHECK (f1 > 0) CHECK (f1 < 10)) to work
<   by searching for non-conflicting constraint names, and prefix with
<   table name?
347c344
<   new database.
>   a new database.
350,351d346
< * Ignore temporary tables from other sessions when processing
<   inheritance?
354,355c349,351
< * Add a session mode to warn about non-standard SQL usage in queries
< * Add MERGE command that does UPDATE/DELETE, or on failure, INSERT (rules, triggers?)
> * Add a GUC variable to warn about non-standard SQL usage in queries
> * Add MERGE command that does UPDATE/DELETE, or on failure, INSERT (rules,
>   triggers?)
357,359c353,356
< * Add NOVICE output level for helpful messages like automatic sequence/index creation
< * Add COMMENT ON for all cluster global objects (users, groups,
<   databases and tablespaces)
> * Add NOVICE output level for helpful messages like automatic sequence/index
>   creation
> * Add COMMENT ON for all cluster global objects (users, groups, databases
>   and tablespaces)
363c360
<   When enabled, this would allow errors in multi-statement transactions
>   When enabled, this would allow errors in multi-statement transactions
417c414
< 	o Allow COPY to optionally include column headings as the first line
> 	o Allow COPY to optionally include column headings in the first line
450c447
<
>
462c459
< 	o Handle references to temporary tables that are created, destroyed,
> 	o Handle references to temporary tables that are created, destroyed,
464c461
<
>
469d465
< 	o Improve PL/PgSQL exception handling using savepoints
488c484
<
>
503d498
<
518c513
< 	o Add pg_dumpall custom format dumps.
> 	o Add pg_dumpall custom format dumps.
520c515
< 	  This is probably best done by combining pg_dump and pg_dumpall
> 	  This is probably best done by combining pg_dump and pg_dumpall
532d526
< 	o Improve error handling (?)
555c549
<   Adding shared locks requires recording the table/rows numbers in a
>   Adding shared locks requires recording the table/rows numbers in a
643c637
<   Posix_fadvise() can control both sequential/random file caching and
>   Posix_fadvise() can control both sequential/random file caching and
703c697
<   from distributted.net, http://www1.distributed.net/source,
>   from distributted.net, http://www1.distributed.net/source,
729c723
< * Add connection pooling [pool]
> * Add connection pooling
755d748
<
759c752
<
>
768c761
<   so an abrupt operating system restart might lose a few seconds of
>   so an abrupt operating system restart might lose a few seconds of
785c778
< * Add utility to compute accurate random_page_cost value
> * Create utility to compute accurate random_page_cost value
787,789d779
< * Allow sorting, temp files, temp tables to use multiple work directories
<
<   This allows the I/O load to be spread across multiple disk drives.
795a786
>
808,809c799,800
<
< * Use mmap() rather than SYSV shared memory or to write WAL files (?) [mmap]
>
> * Use mmap() rather than SYSV shared memory or to write WAL files (?)
812,813c803,804
<   portability issues. Anonymous mmap (or mmap to /dev/zero) is required
<   to prevent I/O overhead.
>   portability issues. Anonymous mmap (or mmap to /dev/zero) is required
>   to prevent I/O overhead.
817,819c808,810
<   Doing I/O to large tables would consume a lot of address space or
<   require frequent mapping/unmapping.  Extending the file also causes
<   mapping problems that might require mapping only individual pages,
>   Doing I/O to large tables would consume a lot of address space or
>   require frequent mapping/unmapping.  Extending the file also causes
>   mapping problems that might require mapping only individual pages,
821c812
<   way to _prevent_ I/O to disk from the dirty shared buffers so changes
>   way to _prevent_ I/O to disk from the dirty shared buffers so changes
826c817
<   tuple overhead
>   per-tuple overhead
829,831c820,822
<   This would involve using multiple threads or processes to do optimization,
<   sorting, or execution of single query.  The major advantage of such a
<   feature would be to allow multiple CPUs to work together to process a
>   This would involve using multiple threads or processes to do optimization,
>   sorting, or execution of single query.  The major advantage of such a
>   feature would be to allow multiple CPUs to work together to process a
834c825
< * Research the use of larger pages sizes
> * Research the use of larger page sizes
842a834
> * Move some /contrib modules out to their own project sites
845d836
< * Improve access-permissions check on data directory in Cygwin (Tom)
847,848c838
< * Clarify use of 'application' and 'command' tags in SGML docs
< * Better document ability to build only certain interfaces (Marc)
> * Improve documentation to build only interfaces (Marc)
852,853d841
< * Research interaction of setitimer() and sleep() used by statement_timeout
< * Rename /scripts directory because they are all C programs now
856,857d843
< * Allow binaries to be statically linked so they are more easily relocated
< * Move some /contrib modules out to their own project sites
862c848
< 	o Remove per-backend parameter file and move into shared memory?
> 	o Remove per-backend parameter file and move into shared memory
877,878c863,864
< 	o Update clients to use data types, typmod, schema.table.column names of
< 	  result sets using new query protocol
> 	o Update clients to use data types, typmod, schema.table.column names
> 	  of result sets using new query protocol
900d885
< * Kris is Kris Jurka
910c895
< * Simon is Simon Riggs
> * Simon is Simon Riggs <simon@2ndquadrant.com>
913d897
< * Teodor is
上级 4d0f669f
......@@ -6,7 +6,7 @@ TODO list for PostgreSQL
Bracketed items "[]" have more detail.
Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
Last updated: Wed Nov 10 00:47:03 EST 2004
Last updated: Wed Nov 10 22:59:04 EST 2004
The most recent version of this document can be viewed at the PostgreSQL web
site, http://www.PostgreSQL.org.
......@@ -40,7 +40,7 @@ Administration
* Allow major upgrades without dump/reload, perhaps using pg_upgrade
* Have SHOW ALL and pg_settings show descriptions for server-side variables
* Allow GRANT/REVOKE permissions to be given to all schema objects with one
* Allow GRANT/REVOKE permissions to be applied to all schema objects with one
command
* Remove unreferenced table files created by transactions that were
in-progress when the server terminated abruptly
......@@ -57,10 +57,10 @@ Administration
tablespace t2
All objects in the default database tablespace must have default tablespace
specifications. This is because new databases are created by copying
specifications. This is because new databases are created by copying
directories. If you mix default tablespace tables and tablespace-specified
tables in the same directory, creating a new database from such a mixed
directory would create a new database with tables that had incorrect
directory would create a new database with tables that had incorrect
explicit tablespaces. To fix this would require modifying pg_class in the
newly copied database, which we don't currently do.
......@@ -69,7 +69,7 @@ Administration
It could start with a random tablespace from a supplied list and cycle
through the list.
* Add "include file" functionality in postgresql.conf
* Add session start time and last statement time to pg_stat_activity
* Allow server logs to be remotely read using SQL commands
......@@ -82,13 +82,13 @@ Administration
* Un-comment all variables in postgresql.conf
By not showing commented-out variables, we discourage people from
By not showing commented-out variables, we discourage people from
thinking that re-commenting a variable returns it to its default.
This has to address environment variables that are then overridden
by config file values. Another option is to allow commented values
to return to their default values.
* Allow point-in-time recovery to archive partially filled write-ahead
* Allow point-in-time recovery to archive partially filled write-ahead
logs
Currently only full WAL files are archived. This means that the most
......@@ -99,7 +99,7 @@ Administration
transaction id for point-in-time recovery
* Set proper permissions on non-system schemas during db creation
Currently all schemas are owned by the super-user because they are
Currently all schemas are owned by the super-user because they are
copied from the template1 database.
* Add a function that returns the 'uptime' of the postmaster
......@@ -125,7 +125,7 @@ Data Types
* Remove Money type, add money formatting for decimal type
* Change NUMERIC to enforce the maximum precision, and increase it
* Add function to return compressed length of TOAST data values
* Allow INET subnet tests with non-constants to be indexed
* Allow INET subnet tests using non-constants to be indexed
* Add transaction_timestamp(), statement_timestamp(), clock_timestamp()
functionality
......@@ -140,10 +140,10 @@ Data Types
* Allow infinite dates just like infinite timestamps
* Have initdb set DateStyle based on locale?
* Add pg_get_acldef(), pg_get_typedefault(), and pg_get_attrdef()
* Allow to_char to print localized month names
* Allow functions to have a search path specified at creation time
* Allow to_char() to print localized month names
* Allow functions to have a schema search path specified at creation time
* Allow substring/replace() to get/set bit values
* Add GUC variable to allow output of interval values in ISO8601 format
* Add a GUC variable to allow output of interval values in ISO8601 format
* Fix data types where equality comparison isn't intuitive, e.g. box
* Merge hardwired timezone names with the TZ database; allow either kind
everywhere a TZ name is currently taken
......@@ -151,14 +151,14 @@ Data Types
present australian_timezones hack)
* Allow TIMESTAMP WITH TIME ZONE to store the original timezone
information, either by name or offset from UTC
* Prevent inet cast to cidr if the unmasked bits are not zero, or
zero bits
* Prevent INET cast to CIDR if the unmasked bits are not zero, or
zero the bits
* ARRAYS
o Allow nulls in arrays
o Allow NULLs in arrays
o Allow MIN()/MAX() on arrays
o Delay resolution of array expression type so assignment coercion
can be performed on empty array expressions
o Delay resolution of array expression's data type so assignment
coercion can be performed on empty array expressions
o Modify array literal representation to handle array index lower bound
of other than one
......@@ -215,10 +215,10 @@ Indexes
=======
* Allow inherited tables to inherit index, UNIQUE constraint, and primary
key, foreign key [inheritance]
* UNIQUE INDEX on base column not honored on inserts/updates from
key, foreign key
* UNIQUE INDEX on base column not honored on INSERTs/UPDATEs from
inherited table: INSERT INTO inherit_table (unique_index_col) VALUES
(dup) should fail [inheritance]
(dup) should fail
The main difficulty with this item is the problem of creating an index
that can span more than one table.
......@@ -243,7 +243,7 @@ Indexes
Uniqueness (index) checks are done when updating a column even if the
column is not modified by the UPDATE.
* Fetch heap pages matching index entries in sequential order [performance]
* Fetch heap pages matching index entries in sequential order
Rather than randomly accessing heap pages based on index entries, mark
heap pages needing access in a bitmap and do the lookups in sequential
......@@ -304,7 +304,7 @@ Commands
* Allow additional tables to be specified in DELETE for joins
UPDATE already allows this (UPDATE...FROM) but we need similar
functionality in DELETE. It's been agreed that the keyword should
functionality in DELETE. It's been agreed that the keyword should
be USING, to avoid anything as confusing as DELETE FROM a FROM b.
* Add CORRESPONDING BY to UNION/INTERSECT/EXCEPT
......@@ -315,7 +315,7 @@ Commands
* Allow SET CONSTRAINTS to be qualified by schema/table name
* Allow TRUNCATE ... CASCADE/RESTRICT
* Allow PREPARE of cursors
* Allow PREPARE to automatically determine parameter types based on the SQL
* Allow PREPARE to automatically determine parameter types based on the SQL
statement
* Allow finer control over the caching of prepared query plans
......@@ -337,30 +337,27 @@ Commands
message, perhaps indicating the row modified or other custom
information.
* Allow CREATE TABLE foo (f1 INT CHECK (f1 > 0) CHECK (f1 < 10)) to work
by searching for non-conflicting constraint names, and prefix with
table name?
* Use more reliable method for CREATE DATABASE to get a consistent copy
of db?
Currently the system uses the operating system COPY command to create
new database.
a new database.
* Add C code to copy directories for use in creating new databases
* Ignore temporary tables from other sessions when processing
inheritance?
* Have pg_ctl look at PGHOST in case it is a socket directory?
* Allow column-level GRANT/REVOKE privileges
* Add a session mode to warn about non-standard SQL usage in queries
* Add MERGE command that does UPDATE/DELETE, or on failure, INSERT (rules, triggers?)
* Add a GUC variable to warn about non-standard SQL usage in queries
* Add MERGE command that does UPDATE/DELETE, or on failure, INSERT (rules,
triggers?)
* Add ON COMMIT capability to CREATE TABLE AS SELECT
* Add NOVICE output level for helpful messages like automatic sequence/index creation
* Add COMMENT ON for all cluster global objects (users, groups,
databases and tablespaces)
* Add NOVICE output level for helpful messages like automatic sequence/index
creation
* Add COMMENT ON for all cluster global objects (users, groups, databases
and tablespaces)
* Add an option to automatically use savepoints for each statement in a
multi-statement transaction.
When enabled, this would allow errors in multi-statement transactions
When enabled, this would allow errors in multi-statement transactions
to be automatically ignored.
* Make row-wise comparisons work per SQL spec
......@@ -414,7 +411,7 @@ Commands
o Allow COPY to understand \x as a hex byte
o Have COPY return the number of rows loaded/unloaded (?)
o Allow COPY to optionally include column headings as the first line
o Allow COPY to optionally include column headings in the first line
* CURSOR
o Allow UPDATE/DELETE WHERE CURRENT OF cursor
......@@ -447,7 +444,7 @@ Commands
o Add SET PATH for schemas (?)
This is basically the same as SET search_path.
o Prevent conflicting SET options from being set
This requires a checking function to be called after the server
......@@ -459,14 +456,13 @@ Commands
Currently only constants are supported.
o Change PL/PgSQL to use palloc() instead of malloc()
o Handle references to temporary tables that are created, destroyed,
o Handle references to temporary tables that are created, destroyed,
then recreated during a session, and EXECUTE is not used
This requires the cached PL/PgSQL byte code to be invalidated when
an object referenced in the function is changed.
o Fix PL/pgSQL RENAME to work on variables other than OLD/NEW
o Improve PL/PgSQL exception handling using savepoints
o Allow function parameters to be passed by name,
get_employee_salary(emp_id => 12345, tax_year => 2001)
o Add Oracle-style packages
......@@ -485,7 +481,7 @@ Clients
We already allow XML to be stored in the database, and XPath queries
can be used on that data using /contrib/xml2. It also supports XSLT
transformations.
* Add a libpq function to support Parse/DescribeStatement capability
* Prevent libpq's PQfnumber() from lowercasing the column name (?)
* Allow libpq to access SQLSTATE so pg_ctl can test for connection failure
......@@ -500,7 +496,6 @@ Clients
the database as psql.
* Consistently display privilege information for all objects in psql
* pg_dump
o Have pg_dump use multi-statement transactions for INSERT dumps
o Allow pg_dump to use multiple -t and -n switches
......@@ -515,9 +510,9 @@ Clients
o Stop dumping CASCADE on DROP TYPE commands in clean mode
o Add full object name to the tag field. eg. for operators we need
'=(integer, integer)', instead of just '='.
o Add pg_dumpall custom format dumps.
o Add pg_dumpall custom format dumps.
This is probably best done by combining pg_dump and pg_dumpall
This is probably best done by combining pg_dump and pg_dumpall
into a single binary.
o Add CSV output format
......@@ -529,7 +524,6 @@ Clients
information about the Informix-compatibility module.
o Solve cardinality > 1 for input descriptors / variables (?)
o Improve error handling (?)
o Add a semantic check level, e.g. check if a table really exists
o fix handling of DB attributes that are arrays
o Use backend PREPARE/EXECUTE facility for ecpg where possible
......@@ -552,7 +546,7 @@ Referential Integrity
* Implement dirty reads or shared row locks and use them in RI triggers
Adding shared locks requires recording the table/rows numbers in a
Adding shared locks requires recording the table/rows numbers in a
shared area, and this could potentially be a large amount of data.
One idea is to store the table/row numbers in a separate table and set
a bit on the row indicating looking in this new table is required to
......@@ -640,7 +634,7 @@ Cache
* Allow free-behind capability for large sequential scans, perhaps using
posix_fadvise()
Posix_fadvise() can control both sequential/random file caching and
Posix_fadvise() can control both sequential/random file caching and
free-behind behavior, but it is unclear how the setting affects other
backends that also have the file open, and the feature is not supported
on all operating systems.
......@@ -700,7 +694,7 @@ Locking
contention, improving concurrency.
* Add code to detect an SMP machine and handle spinlocks accordingly
from distributted.net, http://www1.distributed.net/source,
from distributted.net, http://www1.distributed.net/source,
in client/common/cpucheck.cpp
On SMP machines, it is possible that locks might be released shortly,
......@@ -726,7 +720,7 @@ Startup Time
database startup overhead, but a few operating systems (WIn32,
Solaris) might benefit from threading.
* Add connection pooling [pool]
* Add connection pooling
It is unclear if this should be done inside the backend code or done
by something external like pgpool. The passing of file descriptors to
......@@ -752,11 +746,10 @@ Write-Ahead Log
* Add WAL index reliability improvement to non-btree indexes
* Allow the pg_xlog directory location to be specified during initdb
with a symlink back to the /data location
* Allow WAL information to recover corrupted pg_controldata
* Find a way to reduce rotational delay when repeatedly writing
last WAL page
Currently fsync of WAL requires the disk platter to perform a full
rotation to fsync again. One idea is to write the WAL to different
offsets that might reduce the rotational delay.
......@@ -765,7 +758,7 @@ Write-Ahead Log
Instead of guaranteeing recovery of all committed transactions, this
would provide improved performance by delaying WAL writes and fsync
so an abrupt operating system restart might lose a few seconds of
so an abrupt operating system restart might lose a few seconds of
committed transactions but still be consistent. We could perhaps
remove the 'fsync' parameter (which results in an an inconsistent
database) in favor of this capability.
......@@ -782,17 +775,15 @@ Optimizer / Executor
table. Instead a sequential scan could get the matching value.
* Precompile SQL functions to avoid overhead
* Add utility to compute accurate random_page_cost value
* Create utility to compute accurate random_page_cost value
* Improve ability to display optimizer analysis using OPTIMIZER_DEBUG
* Allow sorting, temp files, temp tables to use multiple work directories
This allows the I/O load to be spread across multiple disk drives.
* Have EXPLAIN ANALYZE highlight poor optimizer estimates
* Use CHECK constraints to influence optimizer decisions
CHECK constraints contain information about the distribution of values
within the table. This is also useful for implementing subtables where
a tables content is distributed across several subtables.
* Consider using hash buckets to do DISTINCT, rather than sorting
This would be beneficial when there are few distinct values.
......@@ -805,33 +796,33 @@ Miscellaneous
Async I/O allows multiple I/O requests to be sent to the disk with
results coming back asynchronously.
* Use mmap() rather than SYSV shared memory or to write WAL files (?) [mmap]
* Use mmap() rather than SYSV shared memory or to write WAL files (?)
This would remove the requirement for SYSV SHM but would introduce
portability issues. Anonymous mmap (or mmap to /dev/zero) is required
to prevent I/O overhead.
portability issues. Anonymous mmap (or mmap to /dev/zero) is required
to prevent I/O overhead.
* Consider mmap()'ing files into a backend?
Doing I/O to large tables would consume a lot of address space or
require frequent mapping/unmapping. Extending the file also causes
mapping problems that might require mapping only individual pages,
Doing I/O to large tables would consume a lot of address space or
require frequent mapping/unmapping. Extending the file also causes
mapping problems that might require mapping only individual pages,
leading to thousands of mappings. Another problem is that there is no
way to _prevent_ I/O to disk from the dirty shared buffers so changes
way to _prevent_ I/O to disk from the dirty shared buffers so changes
could hit disk before WAL is written.
* Add a script to ask system configuration questions and tune postgresql.conf
* Use a phantom command counter for nested subtransactions to reduce
tuple overhead
per-tuple overhead
* Consider parallel processing a single query
This would involve using multiple threads or processes to do optimization,
sorting, or execution of single query. The major advantage of such a
feature would be to allow multiple CPUs to work together to process a
This would involve using multiple threads or processes to do optimization,
sorting, or execution of single query. The major advantage of such a
feature would be to allow multiple CPUs to work together to process a
single query.
* Research the use of larger pages sizes
* Research the use of larger page sizes
Source Code
......@@ -840,26 +831,21 @@ Source Code
* Add use of 'const' for variables in source tree
* Rename some /contrib modules from pg* to pg_*
* Move some things from /contrib into main tree
* Move some /contrib modules out to their own project sites
* Remove warnings created by -Wcast-align
* Move platform-specific ps status display info from ps_status.c to ports
* Improve access-permissions check on data directory in Cygwin (Tom)
* Add optional CRC checksum to heap and index pages
* Clarify use of 'application' and 'command' tags in SGML docs
* Better document ability to build only certain interfaces (Marc)
* Improve documentation to build only interfaces (Marc)
* Remove or relicense modules that are not under the BSD license, if possible
* Remove memory/file descriptor freeing before ereport(ERROR)
* Acquire lock on a relation before building a relcache entry for it
* Research interaction of setitimer() and sleep() used by statement_timeout
* Rename /scripts directory because they are all C programs now
* Promote debug_query_string into a server-side function current_query()
* Allow the identifier length to be increased via a configure option
* Allow binaries to be statically linked so they are more easily relocated
* Move some /contrib modules out to their own project sites
* Remove Win32 rename/unlink looping if unnecessary
* Remove kerberos4 from source tree?
* Win32
o Remove per-backend parameter file and move into shared memory?
o Remove per-backend parameter file and move into shared memory
o Remove configure.in check for link failure when cause is found
o Remove readdir() errno patch when runtime/mingwex/dirent.c rev
1.4 is released
......@@ -874,8 +860,8 @@ Source Code
o Allow dynamic character set handling
o Add decoded type, length, precision
o Use compression?
o Update clients to use data types, typmod, schema.table.column names of
result sets using new query protocol
o Update clients to use data types, typmod, schema.table.column names
of result sets using new query protocol
---------------------------------------------------------------------------
......@@ -897,7 +883,6 @@ Developers who have claimed items are:
* Jan is Jan Wieck <JanWieck@Yahoo.com> of Afilias, Inc.
* Joe is Joe Conway <mail@joeconway.com>
* Karel is Karel Zak <zakkr@zf.jcu.cz>
* Kris is Kris Jurka
* Magnus is Magnus Hagander <mha@sollentuna.net>
* Marc is Marc Fournier <scrappy@hub.org> of PostgreSQL, Inc.
* Matthew T. O'Connor <matthew@zeut.net>
......@@ -907,8 +892,7 @@ Developers who have claimed items are:
* Peter is Peter Eisentraut <peter_e@gmx.net>
* Philip is Philip Warner <pjw@rhyme.com.au> of Albatross Consulting Pty. Ltd.
* Rod is Rod Taylor <pg@rbt.ca>
* Simon is Simon Riggs
* Simon is Simon Riggs <simon@2ndquadrant.com>
* Stephan is Stephan Szabo <sszabo@megazone23.bigpanda.com>
* Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp> of Software Research Assoc.
* Teodor is
* Tom is Tom Lane <tgl@sss.pgh.pa.us> of Red Hat
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册