TODO 16.8 KB
Newer Older
B
Bruce Momjian 已提交
1 2
TODO list for PostgreSQL
========================
B
Bruce Momjian 已提交
3
Last updated:		Sun Feb  1 15:08:57 EST 1998
M
Marc G. Fournier 已提交
4

B
Bruce Momjian 已提交
5
Current maintainer:	Bruce Momjian (maillist@candle.pha.pa.us)
M
Marc G. Fournier 已提交
6

B
Bruce Momjian 已提交
7
The most recent version of this document can be viewed at
B
Bruce Momjian 已提交
8
the PostgreSQL WWW site, http://www.postgreSQL.org.
B
Bruce Momjian 已提交
9

B
Bruce Momjian 已提交
10 11 12
THE CHANGES FOR 6.3 APPEAR AT THE END OF THIS DOCUMENT

A dash(-) marks changes to be in the next release.
B
Bruce Momjian 已提交
13 14

Developers who have claimed items are:
B
Bruce Momjian 已提交
15 16 17
-------------------------------------
	* Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
	* Bryan is Bryan Henderson<bryanh@giraffe.netgate.net>
B
Bruce Momjian 已提交
18
	* D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
B
Bruce Momjian 已提交
19 20 21 22 23 24
	* Dan is Dan McGuirk <mcguirk@indirect.com>
	* Daniel is Daniel Kalchev <daniel@digsys.bg>
	* Darren is Darren King <darrenk@insightdist.com>
	* Edmund is Edmund Mergl <E.Mergl@bawue.de>
	* Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
	* Gerhard is Gerhard Reithofer <gerhardr@tech-edv.co.at>
B
Bruce Momjian 已提交
25 26
	* Goran is Goran Thyni <goran@bildbasen.se>
	* Henry is Henry B. Hotz <hotz@jpl.nasa.gov>
B
Bruce Momjian 已提交
27
	* Igor is Igor <igor@sba.miami.edu>
B
Bruce Momjian 已提交
28
	* Jan is Jan Wieck <wieck@sapserv.debis.de>
B
Bruce Momjian 已提交
29 30
	* Jun is Jun Kuwamura <juk@rccm.co.jp>
	* Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com>
B
Bruce Momjian 已提交
31
 	* Marc is Marc Fournier <scrappy@hub.org>
B
Bruce Momjian 已提交
32 33 34 35
 	* Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de>
	* Oleg is Oleg Bartunov <oleg@sai.msu.su>
	* Paul is Paul M. Aoki <aoki@CS.Berkeley.EDU>
	* Patrick is Patrick van Kleef <pvk@pobox.com>
B
Bruce Momjian 已提交
36
	* Peter is Peter T Mount <psqlhack@maidast.demon.co.uk>
B
Bruce Momjian 已提交
37 38 39 40 41 42
	* Raymond is Raymond Toy <toy@rtp.ericsson.se>
	* Soo-Ho Ok <shok@detc.dongeui-tc.ac.kr>
	* Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at>
	* Sven is Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
	* Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
	* Thomas is Thomas Lockhart <tgl@mythos.jpl.nasa.gov>
B
Bruce Momjian 已提交
43
	* Todd is Todd Brandys is <brandys@eng3.hep.uiuc.edu>
B
Bruce Momjian 已提交
44 45
	* Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>
	* Vivek is Vivek Khera <khera@kci.kciLink.com>
M
Marc G. Fournier 已提交
46 47 48

RELIABILITY
-----------
B
Bruce Momjian 已提交
49 50 51
* Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
* Overhaul bufmgr/lockmgr/transaction manager
* -Fix CLUSTER
B
Bruce Momjian 已提交
52
* Remove EXTEND?
B
Bruce Momjian 已提交
53
* -Aggregates on VIEW always returns zero (maybe because there is no oid for views?)
B
Bruce Momjian 已提交
54
* CREATE VIEW requires super-user priviledge
B
Bruce Momjian 已提交
55
* Can lo_export()/lo_import() read/write anywhere, causing a security problem?
B
Bruce Momjian 已提交
56 57
* Tables that start with xinv confused to be large objects
* Two and three dimmensional arrays display improperly, missing {}
B
Bruce Momjian 已提交
58
* -Add GROUP BY to INSERT INTO table SELECT * FROM table2
B
Bruce Momjian 已提交
59 60
* lo_unlink() crashes server
* Prevent auto-table reference, like SELECT table.col WHERE col = 3 (?)
B
Bruce Momjian 已提交
61
* -Remove un-needed malloc() calls and replace with palloc().
B
Bruce Momjian 已提交
62 63
* SELECT * FROM table WHERE int4_column = '1' fails
* SELECT a[1] FROM test fails, it needs test.a[1]
B
Bruce Momjian 已提交
64 65
* -SELECT COUNT(*) FROM TAB1, TAB2 fails
* -SELECT SUM(2+2) FROM table dumps core
B
Bruce Momjian 已提交
66
* UPDATE table SET table.value = 3 fails
B
Bruce Momjian 已提交
67 68 69 70 71
* -UPDATE key_table SET keyval=count(reftab.num) fails
* -INSERT INTO ... SELECT DISTINCT ... does not accept DISTINCT
* -INSERT INTO table SELECT id, count(*) FROM table2 GROUP BY id generates error
* Make pg_dump preserve inheritance column order, do non-inherits first
* User who can create databases can modify pg_database table
M
Marc G. Fournier 已提交
72 73 74

ENHANCEMENTS
------------
B
Bruce Momjian 已提交
75
* Replace table-level locking with row or page-level locking(Vadim)
B
Bruce Momjian 已提交
76
* -PRIMARY KEY during table creation(Thomas)
B
Bruce Momjian 已提交
77
* Add SERIAL type
B
Bruce Momjian 已提交
78 79 80
* -Preserve GRANT/REVOKE/pg_group in pg_dump
* Transaction log, so re-do log can be on a separate disk
* Allow transaction commits with rollback with no-fsync performance
B
Bruce Momjian 已提交
81
* More access control over who can create tables and access the database
B
Bruce Momjian 已提交
82 83
* Add full ANSI SQL capabilities
	* -add subselects(Vadim)
B
Bruce Momjian 已提交
84
	* Implement HAVING clause
B
Bruce Momjian 已提交
85 86
	* -Implement EXISTS qualifier
	* -report "Not implemented" if valid syntax is supplied
B
Bruce Momjian 已提交
87 88
	* add OUTER joins, left and right (Thomas)
	* make VIEWs updateable where possible
B
Bruce Momjian 已提交
89 90 91
	* -add UNIONS(Bruce)
	* add INTERSECTS, SUBTRACTS
	* add temporary tables(Bruce)
B
Bruce Momjian 已提交
92 93 94
	* add sql3 recursive unions
	* add the concept of dataspaces
	* add DECIMAL, NUMERIC, DOUBLE PRECISION, BIT, BIT VARYING
B
Bruce Momjian 已提交
95
 	* NCHAR (as distinguished from ordinary varchar),
B
Bruce Momjian 已提交
96 97 98 99 100 101 102 103
* Allow compression of large fields or a compressed field type
* Fix the rules system(Jan?,Soo-Ho)
	* robust
	* making INSTEAD rules work
	* add CONSTRAINT
* Full set of text operations and functions
	* word searches, concat,max() on text, char
* Large objects
B
Bruce Momjian 已提交
104 105 106
	* -overwriting blocks has problems(Peter)
	* -there are other problems, too.(Peter)
	* Fix large object mapping scheme, own reltype
B
Bruce Momjian 已提交
107 108 109 110 111 112 113
	* not to stuff everything as files in a single directory
* Better interface for adding to pg_group
* Make MONEY/DECIMAL have a defined precision
* Add support for tables >2G, or test current version
* Threaded version of the server or libpq
* Allow libpq to cancel query requests
* Add REGEX internationalization
B
Bruce Momjian 已提交
114 115
* -Add other language types for built-in functions
	* expand to allow tcl, perl, java
B
Bruce Momjian 已提交
116 117
	* generalize the function manager switch to pass 
		* function sources to interpreter engines.
B
Bruce Momjian 已提交
118 119 120
* -remove time-travel feature(Vadim)
* -reduce system column overhead(Vadmin)
* -remove pg_time table(Vadim)
B
Bruce Momjian 已提交
121
* allow row re-use without vacuum, maybe?(Vadim)
B
Bruce Momjian 已提交
122
* Remove restriction that ORDER BY field must be in SELECT list
B
Bruce Momjian 已提交
123 124 125 126 127
* Add word index for text fields, maybe with trigrams, i.e.:
    * ' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox
* Populate backend status area and write program to dump status data
* Add ALTER TABLE DROP COLUMN feature
* Allow INSERT INTO ... SELECT to convert column types
B
Bruce Momjian 已提交
128
* Add syslog functionality(Marc)
B
Bruce Momjian 已提交
129
* Add STDDEV/VARIANCE() function for standard deviation computation/variance
B
Bruce Momjian 已提交
130 131
* -Add table/column/function discription table indexed by oid
* -add pg_type attribute to identify types that need length (bpchar, varchar)
B
Bruce Momjian 已提交
132 133 134 135 136
* add UNIQUE capability to non-btree indexes
* make number of backends a config parameter, storage/sinvaladt.h:MaxBackendId
* certain indexes will not shrink, i.e. oid indexes with many inserts
* make NULL's come out at the beginning or end depending on the ORDER BY direction
* change the library/backend interface to use network byte order
B
Bruce Momjian 已提交
137 138 139
* -allow unix domain sockets for local connections for performance and security
* -Add PAGER for psql's \dt, \d, \z tablename
* -Make timezone set-able by client applications(Thomas)
B
Bruce Momjian 已提交
140
* Restore unused oid's on backend exit if no one else has gotten oids
B
Bruce Momjian 已提交
141 142 143 144 145 146 147 148 149 150 151 152 153
* remove non-standard types from the system, and make them loadable
* -make reads queue behind a write waiting for a lock(Bruce)
* -add LOCK statement(Bruce)
* -add report of offending line when COPY command fails
* have UPDATE/DELETE clean out indexes
* -allow varchar() to only store used bytes, not maximum
* allow WHERE restriction on ctid
* allow pg_descriptions when creating types, tables, columns, and functions
* Fix compile and security of Kerberos/GSSAPI code
* Allow psql to print nulls as distinct from ""(?)
* Allow variable casts with BETWEEN 'today'::asbtime AND 'today'::abstime
* Allow VIEW permissions to be set separately from the underlying tables
* Allow text, char(), and varchar() overhead to be only 2 bytes, not 4 bytes
B
Bruce Momjian 已提交
154 155 156

PERFORMANCE
-----------
B
Bruce Momjian 已提交
157 158
* Use indexes in ORDER BY, min(), max()
* -Allow LIKE/wildcard matches to use indexes if the wildcard character is not first
B
Bruce Momjian 已提交
159 160 161
* Optimizing disjunctive queries
* Fix bushy-plans (Martin)
* Other optimizer bugs
B
Bruce Momjian 已提交
162
* Prevent fsync in SELECT-only queries
B
Bruce Momjian 已提交
163 164 165 166 167 168
* Cache most recent query plan(s?)
* Shared catalog cache, reduce lseek()'s by caching table size in shared area
* Allow compression of log and meta data
* Add FILLFACTOR to index creation
* Allow indexes to be used with OR clauses(Vadim)
* update pg_statistic table to remove operator column
B
Bruce Momjian 已提交
169 170
* make index creation use psort code, because it is now faster(Vadim)
* remove fork()/exec() of backend and make it just fork()
M
Marc G. Fournier 已提交
171 172 173

DOCUMENTATION
-------------
B
Bruce Momjian 已提交
174 175
* Update usermanual source(many)
* added features used in grammer but not in docs, like :: and CAST
B
Bruce Momjian 已提交
176 177
* update libpq++ and pginterface manual page
* Add keyword list to documentation, already in /tools
M
Marc G. Fournier 已提交
178

B
Bruce Momjian 已提交
179

B
Bruce Momjian 已提交
180
=============================================================================
B
Bruce Momjian 已提交
181

B
Bruce Momjian 已提交
182 183
CHANGES IN THE 6.3 RELEASE
--------------------------
184

B
Bruce Momjian 已提交
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
Developers who have claimed items are:
-------------------------------------
	* Billy is Billy G. Allie <Bill.Allie@mug.org>
	* Brook is Brook Milligan
	* Bruce is Bruce Momjian <maillist@candle.pha.pa.us>
	* D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
	* Dan is Dan McGuirk <mcguirk@indirect.com>
	* Darren is Darren King <darrenk@insightdist.com>
	* Goran is Goran Thyni <goran@bildbasen.se>
	* Henry is Henry B. Hotz <hotz@jpl.nasa.gov>
	* James is James Hughes <jamesh@interpath.com>
	* Jan is Jan Wieck <wieck@sapserv.debis.de>
	* Jeroen is Jeroen van Vianen <jeroenv@design.nl>
	* Marc is Marc Fournier <scrappy@hub.org>
	* Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de>
	* Matt is Matt Maycock <maycock@intelliquest.com>
	* Peter is Peter T Mount <psqlhack@maidast.demon.co.uk>
	* Phil is Phil Thompson <phil@river-bank.demon.co.uk>
	* Ryan is Ryan Kirkpatrick <rkirkpat@nag.cs.colorado.edu>
	* Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
	* Thomas is Thomas Lockhart <lockhart@alumni.caltech.edu>
	* TomH is Tom I Helbekkmo <tih@Hamartun.Priv.NO>
	* TomS is Tom Szybist
	* Todd is Todd Brandys is <brandys@eng3.hep.uiuc.edu>
	* Travis is Travis Melhiser <melhiser@viper.co.union.nc.us>
	* Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>
V
Vadim B. Mikheev 已提交
211

212 213
Bug Fixes
---------
B
Bruce Momjian 已提交
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244
Fix binary cursors broken by MOVE implementation(Vadim)
Fix for tcl library crash(Jan)
Fix for array handling, from Gerhard Hintermayer
Fix acl error, and remove duplicate pqtrace(Bruce)
Fix psql \e for empty file(Bruce)
Fix for textcat on varchar() fields(Bruce)
Fix for DBT Sendproc (Zeugswetter Andres)
Fix vacuum analyze syntax problem(Bruce)
Fix for international identifiers(Tatsuo)
Fix aggregates on inherited tables(Bruce)
Fix substr() for out-of-bounds data
Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce)
Fix notty output to show status result.  -q option still turns it off(Bruce)
Fix for count(*), aggs with views and multiple tables and sum(3)(Bruce)
Fix cluster(Bruce)
Fix for PQtrace start/stop several times(Bruce)
Fix a variety of locking problems like newer lock waiters getting
	lock before older waiters, and having readlock people not share
	locks if a writer is waiting for a lock, and waiting writers not
	getting priority over waiting readers(Bruce)
Fix crashes in psql when executing queries from external files(James)
Fix problem with multiple order by columns, with the first one having
	NULL values(Jeroen)
Use correct hash table support functions for float8 and int4(Thomas)
Re-enable JOIN= option in CREATE OPERATOR statement (Thomas)
Change precedence for boolean operators to match expected behavior(Thomas)
Generate elog(ERROR) on over-large integer(Bruce)
Allow multiple-argument functions in constraint clauses(Thomas)
Check boolean input literals for 'true','false','yes','no','1','0'
	and throw elog(ERROR) if unrecognized(Thomas)

245 246 247

Enhancements
------------
B
Bruce Momjian 已提交
248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327
Real deadlock detection, no more timeouts(Bruce)
<NOT DONE YET> Subselects with EXISTS, IN, ALL, ANY keywords (Vadim, Bruce, Thomas)
Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, 
	CURRENT_USER(Thomas)
Speedup by inlining some frequently-called functions
Modify constraint syntax to be SQL92-compliant(Thomas)
Implement SQL92 PRIMARY KEY and UNIQUE clauses using indices(Thomas)
Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas)
Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas)
Allow Postgres-style casting ("::") of non-constants(Thomas)
Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)
Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas)
Allow SQL92 delimited identifiers(Thomas)
Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas)
Support SQL92 syntax for type coercion of literal strings
	(e.g. "DATETIME 'now'")(Thomas)
Add conversions for int2, int4, and OID types to and from text(Thomas)
Use shared lock when building indices(Vadim)
Free memory allocated for an user query inside transaction block after
	this query is done, was turned off in <= 6.2.1(Vadim)
New SQL statement CREATE PROCEDURAL LANGUAGE(Jan)
New PostgreSQL Procedural Language (PL) backend interface(Jan)
Rename pg_dump -H option to -h(Bruce)
Add Java support for passwords, European dates(Peter)
Use indices for LIKE and ~, !~ operations(Bruce)
Add hash functions for datetime and timespan(Thomas)
Time Travel removed(Vadim, Bruce)
Add paging for \d and \z, and fix \i(Bruce)
Add Unix domain socket support to backend and to frontend library(Goran)
Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas)
Allow more SQL92 and/or Postgres reserved words as column identifiers(Thomas)
Augment support for SQL92 SET TIME ZONE...(Thomas)
SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas)
Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas)
Enable SET TIME ZONE using TZ environment variable(Thomas)
Add PGDATESTYLE environment variable to frontend and backend initialization(Thomas)
Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO
	frontend library initialization environment variables(Thomas)
Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas)
Add pg_description table for info on tables, columns, operators, types, and
	aggregates(Bruce)
Increase 16 char limit on system table/index names to 32 characters(Bruce)
Rename system indices(Bruce)
Add 'GERMAN' option to SET DATESTYLE(Thomas)
Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas)
Allow fractional values for delta times (e.g. '2.5 days')(Thomas)
Validate numeric input more carefully for delta times(Thomas)
Implement day of year as possible input to date_part()(Thomas)
Define timespan_finite() and text_timespan() functions(Thomas)
Remove archive stuff(Bruce)
Allow for a pg_password authentication database that is separate from
	the system password file(Todd)
Dump ACLs, GRANT, REVOKE permissions(Matt)
Define text, varchar, and bpchar string length functions(Thomas)
Fix Query handling for inheritance, and cost computations(Bruce)
Implement CREATE TABLE/AS SELECT (alternative to SELECT/INTO)(Thomas)
Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas)
Implement UNIONs for SELECT(Bruce)
Add UNION, GROUP, DISTINCT to INSERT(Bruce)
varchar() stores only necessary bytes on disk(Bruce)
Fix for BLOBs(Peter)
Mega-Patch for JDBC...see README_6.3 for list of changes(Peter)
Allow installation data block size and max tuple size configuration(Darren)
Remove unused "option" from PQconnectdb()
New LOCK command and lock manual page describing deadlocks(Bruce)
Add new psql \da, \dd, \df, \do, \dS, and \dT commands(Bruce)
Enhance psql \z to show sequences(Bruce)
Show NOT NULL and DEFAULT in psql \d table(Bruce)
New psql .psqlrc file startup(Andrew)
Modify sample startup script in contrib/linux to show syslog(Thomas)
New types for IP and MAC addresses in contrib/ip_and_mac(TomH)
Unix system time conversions with date/time types in contrib/unixdate(Thomas)
Update of contrib stuff(Massimo)
Add Unix socket support to DBD::Pg(Goran)
New python interface (PyGreSQL 2.0)(D'Arcy)
New frontend/backend protocol has a version number, network byte order(Phil)
Security features in pg_hba.conf enhanced and documented, many cleanups(Phil)
New HTML and Postscript documentation(Thomas)

B
Bruce Momjian 已提交
328

B
Bruce Momjian 已提交
329
Source Tree Changes
330
-------------------
B
Bruce Momjian 已提交
331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363
Add new html development tools, and flow chart in /tools/backend
Fix for SCO compiles
Stratus computer port "Gillies, Robert" <GilliesR@Nichols.com>
Added support for shlib for BSD44_derived & i386_solaris
Make configure more automated(Brook)
Add script to check regression test results
Break parser functions into smaller files, group together(Bruce)
Rename heap_create to heap_create_and_catalog, rename heap_creatr
	to heap_create()(Bruce)
Sparc/Linux patch for locking(TomS)
Remove PORTNAME and reorganize port-specific stuff(Marc)
Add optimizer README file(Bruce)
Remove some recursion in optimizer and clean up some code there(Bruce)
Fix for NetBSD locking(Henry)
Fix for libptcl make(Tatsuo)
AIX patch(Darren)
Change IS TRUE, IS FALSE, ... to expressions using "=" rather than
	function calls to istrue() or isfalse() to allow optimization(Thomas)
Various fixes NetBSD/Sparc related(TomH)
Alpha linux locking(Travis,Ryan)
Change elog(WARN) to elog(ERROR)(Bruce)
FAQ for FreeBSD(Marc)
Bring in the PostODBC source tree as part of our standard distribution(Marc)
A minor patch for HP/UX 10 vs 9(Stan)
New pg_attribute.atttypmod for type-specific info like varchar length(Bruce)
Unixware patches(Billy)
New i386 'lock' for spin lock asm(Billy)
Support for multiplexed backends is removed
Start an OpenBSD port
Start an AUX port
Start a Cygnus port
Add string functions to regression suite(Thomas)
Expand a few function names formerly truncated to 16 characters(Thomas)