11TODO list for PostgreSQL
22========================
3- Last updated: Sat Apr 14 21:55:58 EDT 2001
3+ Last updated: Sun Apr 15 21:32:39 EDT 2001
44
55Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
66
77The most recent version of this document can be viewed at
88the PostgreSQL web site, http://www.PostgreSQL.org.
99
10- A dash (-) marks changes that will appear in the upcoming 7.1 release.
10+ A dash (-) marks changes that will appear in the upcoming 7.2 release.
1111
1212Bracketed items "[]" have more detailed information at
1313http://www.postgresql.org/docs/todo.html.
@@ -20,34 +20,13 @@ PARSER
2020
2121* SELECT pg_class FROM pg_class generates strange error
2222* Alter TABLE ADD COLUMN does not honor DEFAULT, add CONSTRAINT
23- * -Creating index of TIMESTAMP & RELTIME fails, or rename to DATETIME (Thomas)
24- * -SELECT foo UNION SELECT foo is incorrectly simplified to SELECT foo
2523* Unique index on base column not honored on inserts from inherited table
2624 INSERT INTO inherit_table (unique_index_col) VALUES (dup) should fail
2725 [inheritance]
28- * -Be smarter about promoting types when UNION merges different data types
29- * -redesign INSERT ... SELECT to have two levels of target list
30- * -have INTERSECT/EXCEPT prevent duplicates unless ALL is specified (Tom)
31- * -SELECT col::DECIMAL(12,10); fails
32-
33- VIEWS
34-
35- * -Views containing aggregates sometimes fail (Jan)
36- * -Creating view and inheriting the view causes view* to show
37- duplicates [inheritance]
38- * -Disallow LOCK on view (Mark Hollomon)
3926
4027MISC
4128
4229* Plpgsql does not handle quoted mixed-case identifiers
43- * -Buffer reference counting bugfixes (Tom)
44- * -Fix libpq bug that causes it to drop backend error message sent
45- just before connection closure (ie, any FATAL error message)
46- * -SELECT ... UNION ... ORDER BY fails when sort expr not in result list
47- * -SELECT ... UNION ... GROUP BY fails if column types disagree, no type
48- promotion occurs
49- * -Modification of pg_class can happen while table in use by
50- another backend. Might lead to MVCC inside of syscache
5130* Permission to DELETE table allows UPDATE also
5231* SELECT cash_out(1) causes crash
5332
@@ -56,9 +35,6 @@ ENHANCEMENTS
5635
5736URGENT
5837
59- * -Add OUTER joins, left and right (Tom, Thomas)
60- * -Allow long tuples by chaining or auto-storing outside db (TOAST) (Jan)
61- * -Fix memory leak for expressions (Tom)
6238* Add replication of distributed databases [replication]
6339 o automatic fallover
6440 o load balancing
@@ -73,32 +49,19 @@ URGENT
7349ADMIN
7450
7551* More access control over who can create tables and use locks (Karel)
76- * -Test syslog functionality
7752* Allow elog() to return error codes, module name, file name, line
7853 number, not just messages [elog]
7954* Allow international error message support and add error codes [elog]
80- * -Unify configuration into one configuration file (Peter E)
81- * -use setproctitle() if it exists for 'ps' display of status
82- * -Prevent initdb from running wrong version of postmaster/postgres (Peter E)
8355* Remove unused files during database vacuum or postmaster startup
8456
8557TYPES
8658
8759* Nchar (as distinguished from ordinary varchar),
8860* Domain capability
89- * -Add STDDEV/VARIANCE() function for standard deviation computation/variance
90- * -Allow compression of large fields or a compressed field type
91- * -Large objects
92- o -Fix large object mapping scheme, own typeid or reltype (Peter E)
93- o -Not to stuff everything as files in a single directory, hash dirs
94- o -Allow large object vacuuming
95- o -Tables that start with xinv confused to be large objects
9661* Add IPv6 capability to INET/CIDR types
97- * -Fix improper masking of some inet/cidr types
9862* Add conversion function from text to inet
9963* Make a separate SERIAL type?
10064* Store binary-compatible type information in the system
101- * -Add support for & operator (Peter E)
10265* Allow LOCALE on a per-column basis, default to ASCII
10366* Add SHOW command to see locale
10467* Allow nulls in arrays
@@ -110,15 +73,12 @@ TYPES
11073* Declare typein/out functions in pg_proc with a special "C string" data type
11174* Add non-large-object binary field
11275* Functions returning sets do not totally work
113- * -Add hash for int8 (Tom)
11476* SELECT col FROM tab WHERE numeric_col = 10.1 fails
115- * -Get BIT type working
11677* Allow better handling of numeric constants, type conversion [typeconv]
11778* Support multiple simultaneous character sets, per SQL92
11879* Reject character sequences those are not valid in their charset
11980* Make functions more multi-byte aware, i.e. trim()
12081* Make n of CHAR(n)/VARCHAR(n) the number of letters, not bytes
121- * -Update macaddr manufacturer numbers, or remove the function macaddr_manuf()
12282* Add btree index support for reltime, tinterval, regproc
12383* Add rtree index support for line, lseg, path, point
12484* Make binary/file in/out interface for TOAST columns
@@ -129,11 +89,7 @@ TYPES
12989
13090VIEWS
13191
132- * -Allow DISTINCT on views
133- * -Allow views of aggregate columns
134- * -Allow views with subselects
13592* Automatically create rules on views so they are updateable, per SQL92
136- * -Change elog for complex view ins|upd|del to "cannot {ins|upd|del}
13793* Add the functionality for "with check option" clause of create view
13894* Allow NOTIFY in rules involving conditionals
13995* Evaluate INSERT rules at end of query, rather than beginning
@@ -142,7 +98,6 @@ INDEXES
14298
14399* Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
144100 fails index can't store constant parameters
145- * -Allow SQL function indexes
146101* Add FILLFACTOR to index creation
147102* Re-enable partial indexes
148103* Allow inherited tables to inherit index, UNIQUE constraint, and primary key
@@ -156,12 +111,9 @@ COMMANDS
156111
157112* ALTER TABLE ADD COLUMN to inherited table put column in wrong place
158113 [inheritance]
159- * -Add ALTER TABLE ALTER COLUMN feature (Peter E)
160114* Add ALTER TABLE DROP COLUMN feature [drop]
161- * -Add ALTER TABLE command to change table ownership (Mark H)
162115* Add ALTER FUNCTION
163116* Add ALTER TABLE ... DROP CONSTRAINT
164- * -Add ALTER USER command to change user db attributes (Peter E)
165117* Automatically drop constraints/functions when object is dropped
166118* CLUSTER
167119 * cluster all tables at once
@@ -175,14 +127,7 @@ COMMANDS
175127* Allow INSERT/UPDATE of system-generated oid value for a row
176128* Allow INSERT INTO my_table VALUES (a, b, c, DEFAULT, x, y, z, ...)
177129* Allow INSERT INTO tab (col1, ..) VALUES (val1, ..), (val2, ..)
178- * -Allow multi-level query trees for INSERT INTO ... SELECT
179- * -Allow ORDER BY...LIMIT in INSERT INTO ... SELECT (Tom)
180- * -Allow ESCAPE '\' at the end of LIKE for ANSI compliance (Thomas)
181- * -Rewrite the LIKE handling by rewriting the user string with the
182- supplied ESCAPE
183130* Allow RULE recompilation
184- * -Support UNION/INTERSECT/EXCEPT in sub-selects
185- * -Allow DELETE and UPDATE to use inheritance
186131* Allow BINARY option to SELECT, like we do with DECLARE
187132* MOVE 0 should not move to end of cursor
188133* Overhaul ACL (access control) code
@@ -191,7 +136,6 @@ COMMANDS
191136 columns, allow DEFAULT
192137* Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
193138* Allow DELETE WHERE CURRENT OF cursor
194- * -redesign UNION structures to have separarate target lists
195139* Add BETWEEN ASYMMETRIC/SYMMETRIC
196140
197141CLIENTS
@@ -203,14 +147,11 @@ CLIENTS
203147 * Allow specification of column names
204148 * Allow dump/load of CSV format
205149* fix array handling for ECPG
206- * -add pg_dump option to dump type names as standard ANSI types
207150* have pg_dump use LEFT OUTER JOIN in multi-table SELECTs
208151 or multiple SELECTS to avoid bad system catalog entries
209- * -make pg_dump dump in oid order, so dependencies are resolved (Philip)
210152* allow psql \d to show primary and foreign keys
211153* allow psql \d to show temporary table structure
212154* add XML interface capability
213- * -Allow dumping of users/groups separately
214155* Add a global RESET command for use with connection pooling
215156* Remove <=6.3 version compatibility in ODBC?
216157* Add SET REAL_FORMAT and SET DOUBLE_PRECISION_FORMAT using printf args
@@ -221,8 +162,6 @@ REFERENTIAL INTEGRITY
221162* Check that primary key exists at foreign key definition time
222163* Prevent column dropping if column is used by foreign key
223164* Propagate column or table renaming to foreign key constraints
224- * -Emit a warning at foreign key creation time if no UNIQUE index
225- exists on referenced primary key attributes
226165* Add deferred trigger queue file (Jan)
227166* Allow oid to act as a foreign key
228167* Implement dirty reads and use them in RI triggers
@@ -252,18 +191,13 @@ MISCELLANEOUS
252191* Increase identifier length(NAMEDATALEN) if small performance hit
253192* Create a background process for each database that runs while
254193 database is idle, finding superceeded rows, gathering stats and vacuuming
255- * -Transaction log, so re-do log can be on a separate disk with after-row
256- images (Vadim)
257194* Implement UNDO using transaction log
258195* Populate backend status area and write program to dump status data
259196* Put sort files in their own directory
260197* Allow autocommit so always in a transaction block
261198* Show location of syntax error in query [yacc]
262- * -Redesign the function call interface to handle NULLs better (Tom)
263199* Overhaul bufmgr/lockmgr/transaction manager
264- * -Use IPC_EXCL when creating shared memory and semaphores (Tom)
265200* Encrpyt passwords in pg_shadow table using MD5 (Vince)
266- * -Use flock() to prevent multiple postmasters on the same port (Tom)
267201* Allow Java server-side programming [java]
268202* Add sed-like regular expression search/replace capability
269203
@@ -272,8 +206,6 @@ PERFORMANCE
272206
273207-FSYNC
274208
275- * -Allow transaction commits with rollback with no-fsync performance
276- (Vadim)
277209* Delay fsync() when other backends are about to commit too [fsync]
278210 * Determine optimal commit_delay value
279211* Determine optimal fdatasync/fsync, O_SYNC/O_DSYNC options
@@ -286,8 +218,6 @@ INDEXES
286218 non-consecutive keys or OR clauses, so fewer heap accesses
287219* Allow SELECT * FROM tab WHERE int2col = 4 use int2col index, int8,
288220 float4, numeric/decimal too [optimizer]
289- * -Include heap CTID in btree index keys, remove equal-key cruft from
290- btree (Tom)
291221* Use indexes with CIDR '<<' (contains) operator
292222* Allow LIKE indexing optimization for non-ASCII locales
293223* Be smarter about insertion of already-ordered data into btree index
@@ -305,7 +235,6 @@ VACUUM
305235* Improve speed with indexes (perhaps recreate index instead) [vacuum]
306236* Reduce lock time by moving tuples with read lock, then write
307237 lock and truncate table [vacuum]
308- * -Redesign ANALYZE in VACUUM so it can be run separately without locks
309238* Make ANALYZE a separate command
310239* Allow ANALYZE to ESTIMATE based on certain random precentage of rows
311240* Add LAZY VACUUM (Vadim)
@@ -317,14 +246,10 @@ MISCELLANEOUS
317246* Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
318247 when it is available
319248* Use mmap() rather than SYSV shared memory(?) [mmap]
320- * -Make oid use oidin/oidout not int4in/int4out in pg_type.h (Tom)
321249* Improve Subplan list handling
322250* Allow Subplans to use efficient joins(hash, merge) with upper variable
323- * -use fmgr_info()/fmgr_faddr() instead of fmgr() calls in high-traffic
324- places, like GROUP BY, UNIQUE, index processing, etc.
325251* improve dynamic memory allocation by introducing tuple-context memory
326252 allocation (Tom)
327- * -In WHERE tab1.x=3 AND tab1.x=tab2.y, add tab2.y=3
328253* allow configuration of maximum number of open files
329254* Remove pg_listener index
330255* Improve statistics storage in pg_class [performance]
@@ -341,14 +266,9 @@ MISCELLANEOUS
341266SOURCE CODE
342267-----------
343268* Add use of 'const' for variables in source tree
344- * -Fix C optimizer problem where fmgr_ptr calls return different types (Tom)
345269* Does Mariposa source contain any other bug fixes?
346270* Remove SET KSQO option now that OR processing is improved (Tom)
347- * -Use macros to define NT open() file parameters, remove NT-specific defines
348- * -Change CURRENT to OLD internally for rules (Bruce)
349271* Convert remaining fprintf(stderr,...)/perror() to elog()
350- * -Allow libedit to be used in place of libreadline
351- * -BSD/OS does not support locale because there is no LC_MESSAGES (Bruce)
352272* Remove unused pg_variable, pg_inheritproc, pg_ipl tables
353273* Experiment with multi-threaded backend [thread]
354274* Fix problems with libpq non-blocking/async code [async]
0 commit comments