1
1
TODO list for PostgreSQL
2
2
========================
3
- Last updated: Fri Jun 4 23:16:01 EDT 1999
3
+ Last updated: Sun Jun 6 22:08:59 EDT 1999
4
4
5
5
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
6
6
@@ -19,6 +19,7 @@ Developers who have claimed items are:
19
19
* David is David Hartwig <daveh@insightdist.com>
20
20
* Edmund is Edmund Mergl <E.Mergl@bawue.de>
21
21
* Goran is Goran Thyni <goran@kyla.kiruna.se>
22
+ * Hiroshi is Hiroshi Inoue<Inoue@tpf.co.jp>
22
23
* Jan is Jan Wieck <wieck@sapserv.debis.de>
23
24
* Marc is Marc Fournier <scrappy@hub.org>
24
25
* Massimo Dal Zotto <dz@cs.unitn.it>
@@ -33,137 +34,160 @@ Developers who have claimed items are:
33
34
34
35
* Vadim is "Vadim B. Mikheev" <vadim@krs.ru>
35
36
37
+
36
38
RELIABILITY
37
39
-----------
38
40
* Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
39
41
* Overhaul bufmgr/lockmgr/transaction manager
40
42
* Remove EXTEND?
41
43
* Tables that start with xinv confused to be large objects
42
44
* Two and three dimensional arrays display improperly, missing {}
43
- * SELECT a[1] FROM test fails, it needs test.a[1]
44
- * UPDATE table SET table.value = 3 fails
45
+ * Select a[1] FROM test fails, it needs test.a[1]
46
+ * Update table SET table.value = 3 fails
45
47
* User who can create databases can modify pg_database table
46
- * elog() does not free all its memory(Jan)
47
- * views on subselects fail
48
- * disallow inherited columns with the same name as new columns
49
- * recover or force failure when disk space is exhausted
50
- * views containing aggregates sometimes fail(Jan)
51
- * ALTER TABLE ADD COLUMN does not honor DEFAULT, add CONSTRAINT
52
- * array index references without table name cause problems
53
- * views with spaces in view name fail when referenced
54
- * plpgsql does not handle quoted mixed-case identifiers
55
- * do not allow bpchar column creation without length
48
+ * Elog() does not free all its memory(Jan)
49
+ * Disallow inherited columns with the same name as new columns
50
+ * Recover or force failure when disk space is exhausted
51
+ * Views containing aggregates sometimes fail(Jan)
52
+ * Alter TABLE ADD COLUMN does not honor DEFAULT, add CONSTRAINT
53
+ * Array index references without table name cause problems
54
+ * Views with spaces in view name fail when referenced
55
+ * Plpgsql does not handle quoted mixed-case identifiers
56
+ * Do not allow bpchar column creation without length
56
57
* INSERT INTO ... SELECT with AS columns matching result columns problem
57
58
58
59
59
60
ENHANCEMENTS
60
61
------------
61
- * Transaction log, so re-do log can be on a separate disk
62
- * Allow transaction commits with rollback with no-fsync performance
62
+ * Add referential integrity
63
+ * Add OUTER joins, left and right(Thomas)
64
+ * Allow long tuples by chaining or auto-storing outside db (chaining,large objs)
65
+ * Fix memory leak for expressions?, aggregates?
66
+
67
+ Exotic features:
68
+ * Add sql3 recursive unions
69
+ * Add the concept of dataspaces
70
+ * Add replication of distributed databases
71
+ * Allow queries across multiple databases
72
+
73
+ Admin:
74
+ * Better interface for adding to pg_group
63
75
* More access control over who can create tables and access the database
64
- * Add full ANSI SQL capabilities
65
- * add OUTER joins, left and right(Thomas)
66
- * add sql3 recursive unions
67
- * add the concept of dataspaces
68
- * add BIT, BIT VARYING
69
- * NCHAR (as distinguished from ordinary varchar),
70
- * DOMAIN capability
76
+ * Add syslog functionality
77
+ * Allow elog() to return error codes, not just messages
78
+ * Allow international error message support and add error codes
79
+ * Generate postmaster pid file and remove flock/fcntl lock code
80
+ * Add ability to specifiy location of lock/socket files
81
+
82
+ Types:
83
+ * Add BIT, BIT VARYING
84
+ * Nchar (as distinguished from ordinary varchar),
85
+ * Domain capability
86
+ * Add STDDEV/VARIANCE() function for standard deviation computation/variance
71
87
* Allow compression of large fields or a compressed field type
72
88
* Large objects
73
89
* Fix large object mapping scheme, own typeid or reltype(Peter)
74
90
* Allow large text type to use large objects(Peter)
75
- * not to stuff everything as files in a single directory
76
- * Better interface for adding to pg_group
77
- * allow row re-use without vacuum, maybe?(Vadim)
78
- * Populate backend status area and write program to dump status data
79
- * Add ALTER TABLE DROP/ALTER COLUMN feature
80
- * Add syslog functionality
81
- * Add STDDEV/VARIANCE() function for standard deviation computation/variance
82
- * add UNIQUE capability to non-btree indexes
83
- * certain indexes will not shrink, i.e. oid indexes with many inserts
84
- * make NULL's come out at the beginning or end depending on the ORDER BY direction
85
- * Restore unused oid's on backend exit if no one else has gotten oids
86
- * have UPDATE/DELETE clean out indexes
87
- * allow WHERE restriction on ctid
88
- * allow pg_descriptions when creating types, tables, columns, and functions
89
- * Allow psql to print nulls as distinct from ""(?)
90
- * Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
91
+ * Not to stuff everything as files in a single directory
92
+ * Allow pg_descriptions when creating types, tables, columns, and functions
93
+ * Add IPv6 capability to INET/CIDR types
94
+ * Make a separate SERIAL type?
95
+ * Store binary-compatible type information in the system
96
+ * Allow user to define char1 column
97
+ * Add support for & operator
98
+
99
+ Views:
91
100
* Allow DISTINCT on views
92
101
* Allow views of aggregate columns
93
- * Allow flag to control COPY input/output of NULLs
94
- * Allow CLUSTER on all tables at once, and improve CLUSTER
95
- * Allow elog() to return error codes, not just messages
96
- * allow international error message support and add error codes
102
+ * Allow views with subselects
103
+
97
104
* Allow subqueries in target list
98
- * Allow queries across multiple databases
99
- * Add replication of distributed databases
105
+ * Put sort files, large objects in their on directory
106
+ * Do autocommit so always in a transaction block
107
+ * Show location of syntax error in query
108
+ * Redesign the function call interface to handle NULLs better(Jan)
109
+ * Document/trigger/rule so changes to pg_shadow create pg_pwd
110
+ * Missing optimizer selectivities for date, etc.
111
+
112
+ Indexes:
113
+ * Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
114
+ fails index can't store constant parameters
115
+ * Allow creation of functional indexes to use default types
116
+ * Permissions on indexes - prevent them?
117
+ * Allow SQL function indexes
118
+ * Add FILLFACTOR to index creation
119
+
120
+ Commands:
121
+ * ALTER TABLE ADD COLUMN to inherited table put column in wrong place
122
+ * Add ALTER TABLE DROP/ALTER COLUMN feature
123
+ * Allow CLUSTER on all tables at once, and improve CLUSTER
100
124
* Generate error on CREATE OPERATOR of ~~, ~ and and ~*
101
- * allow psql \copy to allow delimiters
102
- * add a function to return the last inserted oid, for use in psql scripts
103
- * allow creation of functional indexes to use default types
104
- * put sort files, large objects in their on directory
105
- * do autocommit so always in a transaction block
106
- * add SIMILAR TO to allow character classes, 'pg_[a-c]%'
107
- * improve reporting of syntax errors by showing location of error in query
108
- * allow chaining of pages to allow >8k tuples, auto-large object use
109
- * redesign the function call interface to handle NULLs better(Jan)
110
- * permissions on indexes - prevent them?
111
- * document/trigger/rule so changes to pg_shadow create pg_pwd
112
- * generate postmaster pid file and remove flock/fcntl lock code
113
- * add ability to specifiy location of lock/socket files
114
- * auto-destroy sequence on DROP of table with SERIAL
115
- * make a separate serial type?
116
- * allow user to define char1 column
117
- * allow LOCK TABLE tab1, tab2, tab3 so all tables locked in unison
118
- * allow INSERT/UPDATE of system-generated oid value for a row
119
- * missing optimizer selectivities for date, etc.
120
- * Add support for & operator
121
- * store binary-compatible type information in the system
125
+ * Add SIMILAR TO to allow character classes, 'pg_[a-c]%'
126
+ * Auto-destroy sequence on DROP of table with SERIAL
127
+ * Allow LOCK TABLE tab1, tab2, tab3 so all tables locked in unison
128
+ * Allow INSERT/UPDATE of system-generated oid value for a row
122
129
* Allow ESCAPE '\' at the end of LIKE for ANSI compliance
123
- * rewrite the LIKE handling by rewriting the user string with the
130
+ * Rewrite the LIKE handling by rewriting the user string with the
124
131
supplied ESCAPE
125
- * Fix memory leak for expressions?, aggregates?
126
- * Allow Subplans to use efficient joins(hash, merge) with upper variable
132
+ * Move LIKE index optimization handling to the optimizer
133
+
134
+ Clients:
135
+ * Make NULL's come out at the beginning or end depending on the
136
+ ORDER BY direction
137
+ * Allow flag to control COPY input/output of NULLs
127
138
* Update reltuples from COPY command
128
- * Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
129
- fails index can't store constant parameters
130
- * allow SQL function indexes
131
- * ALTER TABLE ADD COLUMN to inherited table put column in wrong place
132
- * Add IPv6 capability to INET/CIDR types
133
- * Allow PQrequestCancel() to terminate when in waiting-for-lock state
139
+ * Allow psql \copy to allow delimiters
140
+ * Add a function to return the last inserted oid, for use in psql scripts
141
+ * Allow psql to print nulls as distinct from ""(?)
142
+
134
143
* Increase identifier length(NAMEDATALEN) if small performance hit
135
- * Fix for long table/column name auto-sequence serial name
144
+ * Allow row re-use without vacuum, maybe?(Vadim)
145
+ * Add UNIQUE capability to non-btree indexes
146
+ * Certain indexes will not shrink, i.e. oid indexes with many inserts
147
+ * Restore unused oid's on backend exit if no one else has gotten oids
148
+ * Have UPDATE/DELETE clean out indexes
149
+ * Allow WHERE restriction on ctid
150
+ * Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
151
+ * Allow PQrequestCancel() to terminate when in waiting-for-lock state
152
+ * Transaction log, so re-do log can be on a separate disk
153
+ * Populate backend status area and write program to dump status data
154
+ * Make oid use unsigned int more reliably, pg_atoi()
155
+
156
+ * Add PL/Perl(Mark Hollomon)
136
157
137
158
138
159
PERFORMANCE
139
160
-----------
161
+ * Allow transaction commits with rollback with no-fsync performance
162
+ * Prevent fsync in SELECT-only queries
163
+
140
164
* Use indexes in ORDER BY for restrictive data sets, min(), max()
165
+ * Pull requested data directly from indexes, bypassing heap data
166
+ * Use index to restrict rows returned by multi-key index when used with
167
+ non-consecutive keys or OR clauses, so fewer heap accesses
168
+ * Use index with constants on functions
169
+
141
170
* Allow LIMIT ability on single-table queries that have no ORDER BY to use
142
171
a matching index
143
- * Pull requested data directly from indexes, bypassing heap data
144
- * Prevent fsync in SELECT-only queries
172
+ * Improve LIMIT processing by using index to limit rows processed
173
+
145
174
* Cache most recent query plan(s?)
146
175
* Shared catalog cache, reduce lseek()'s by caching table size in shared area
176
+
147
177
* Allow compression of log and meta data
148
- * Add FILLFACTOR to index creation
149
- * update pg_statistic table to remove operator column
150
- * make index creation use psort code, because it is now faster(Vadim)
178
+ * Update pg_statistic table to remove operator column
179
+ * Make index creation use psort code, because it is now faster(Vadim)
151
180
* Allow char() not to use variable-sized header to reduce disk size
152
181
* Do async I/O to do better read-ahead of data
153
182
* Fix memory exhaustion when using many OR's
154
183
* Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
155
184
when it is available
156
- * use mmap() rather than SYSV shared memory(?)
157
- * use index to restrict rows returned by multi-key index when used with
158
- non-consecutive keys or OR clauses, so fewer heap accesses
159
- * use index with constants on functions
160
- * process const = const parts of OR clause in separate pass
161
- * make oid use oidin/oidout not int4in/int4out in pg_type.h
162
- * make oid use unsigned int more reliably, pg_atoi()
163
- * create more system table indexes for faster cache lookups
164
- * Move LIKE index optimization handling to the optimizer
165
- * Improve LIMIT processing by using index to limit rows processed
185
+ * Use mmap() rather than SYSV shared memory(?)
186
+ * Process const = const parts of OR clause in separate pass
187
+ * Make oid use oidin/oidout not int4in/int4out in pg_type.h
188
+ * Create more system table indexes for faster cache lookups
166
189
* Improve Subplan list handling
190
+ * Allow Subplans to use efficient joins(hash, merge) with upper variable
167
191
168
192
169
193
DOCUMENTATION
0 commit comments