TODO 13.1 KB
Newer Older
B
Bruce Momjian 已提交
1 2 3
TODO list for PostgreSQL
========================
Last updated:		Fri Oct 17 08:18:16 EDT 1997
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
THE CHANGES FOR 6.2 AND 6.2.1 APPEAR AT THE END OF THIS DOCUMENT
B
Bruce Momjian 已提交
11 12

Developers who have claimed items are:
B
Bruce Momjian 已提交
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
-------------------------------------
	* Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
	* Bryan is Bryan Henderson<bryanh@giraffe.netgate.net>
	* 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>
	* Igor is Igor <igor@sba.miami.edu>
	* Jun is Jun Kuwamura <juk@rccm.co.jp>
	* Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com>
 	* 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>
	* 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>
	* Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>
	* Vivek is Vivek Khera <khera@kci.kciLink.com>
M
Marc G. Fournier 已提交
37 38 39

RELIABILITY
-----------
B
Bruce Momjian 已提交
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
* -Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup(Erich)
* -Overhaul bufmgr/lockmgr/transaction manager(Vadim)
* Fix CLUSTER
* Remove EXTEND?
* Fix all NULL features, allow psql to print nulls meaningfully
* Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?)
* COUNT on VIEW always returns zero (maybe because there is no oid for views?)
* CREATE VIEW requires super-user priviledge
* can lo_export()/lo_import() read/write anywhere, causing a security problem?
* Tables that start with xinv confused to be large objects
* Two and three dimmensional arrays display improperly, missing {}
* Add GROUP BY and HAVING to INSERT INTO table SELECT * FROM table2
* lo_unlink() crashes server
* Allow variable casts with BETWEEN 'today'::asbtime AND 'today'::abstime
* Prevent auto-table reference, like SELECT table.col WHERE col = 3 (?)
* Remove un-needed malloc() calls and replace with palloc().
* SELECT * FROM table WHERE int4_column = '1' fails
* SELECT a[1] FROM test fails, it needs test.a[1]
* SELECT COUNT(*) FROM TAB1, TAB2 fails
* SELECT SUM(2+2) FROM table dumps core
* UPDATE table SET table.value = 3 fails
* UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab' fails
* INSERT INTO ... SELECT DISTINCT ... generates error on DISTINCT
* INSERT INTO table SELECT id, count(*) FROM table2 GROUP BY id generate error
M
Marc G. Fournier 已提交
64 65 66

ENHANCEMENTS
------------
B
Bruce Momjian 已提交
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
* Replace table-level locking with row or page-level locking(Vadim)
* PRIMARY KEY during table creation
* Add SERIAL type
* Preserve GRANT/REVOKE/pg_group in pg_dump
* Transaction log
* More access control over who can create tables and access the database
* Add full ANSI SQL capabilities (Stefan)
	* add subselects, possibility using temporary SQL functions
	* Implement HAVING clause
	* Implement EXISTS qualifier
	* report "Not implemented" if valid syntax is supplied
	* add OUTER joins, left and right (Thomas)
	* make VIEWs updateable where possible
	* add UNIONS, INTERSECTS, SUBTRACTS
	* add temporary tables
	* add sql3 recursive unions
	* add the concept of dataspaces
	* allow conversion type casts on SELECT target fields
	* add DECIMAL, NUMERIC, DOUBLE PRECISION, BIT, BIT VARYING
	 	* NCHAR (as distinguished from ordinary varchar),
* 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
	* overwriting blocks has problems
	* there are other problems, too.
	* Fix large object mapping scheme
	* 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
* Add other language types for built-in functions
	* expand to allow tcl, perl, java,
	* generalize the function manager switch to pass 
		* function sources to interpreter engines.
* remove time-travel feature(Vadim)
* reduce system column overhead(Vadmin)
* remove pg_time table(Vadim)
* allow row re-use without vacuum, maybe?(Vadim)
* can't vacuum large objects
* can't reduce index file size with vacuum
* Remove restriction that ORDER BY field must be in SELECT list(?)
* Allow queries about owner of tables, like:
        * SELECT u.usesysid FROM postgres.pg_user u;
* Add word index for text fields, maybe with trigrams, i.e.:
    * ' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox
* Allow readline-type or editor command editing of multi-line SQL commands
* Populate backend status area and write program to dump status data
* Add ALTER TABLE DROP COLUMN feature
* Remove stale files upon startup(Vivek)
* Add command to show privileges
* Allow INSERT INTO ... SELECT to convert column types
* Add syslog functionality
* Add STDDEV/VARIANCE() function for standard deviation computation/variance
* Add table/column/function discription table indexed by oid
* add pg_type attribute to identify types that need length (bpchar, varchar)
* add UNIQUE capability to non-btree indexes
* make large objects have their own reltype
* 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
* allow unix domain sockets for local connections for performance and security
* Add PAGER for psql's \dt and \d tablename
* Make timezone set-able by client applications(Thomas)
* Restore unused oid's on backend exit if no one else has gotten oids
B
Bruce Momjian 已提交
140 141 142

PERFORMANCE
-----------
B
Bruce Momjian 已提交
143 144 145 146 147 148 149 150 151 152 153 154
* Use indexes in ORDER BY
* Allow LIKE/wildcard matches to use indexes if the wildcard character is not first
* Optimizing disjunctive queries
* Fix bushy-plans (Martin)
* Other optimizer bugs
* Is fsync use optimized?
* 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
M
Marc G. Fournier 已提交
155 156 157

DOCUMENTATION
-------------
B
Bruce Momjian 已提交
158 159 160 161
* Update usermanual source(many)
* remove time-travel in documentation(Bruce)
* added features used in grammer but not in docs, like :: and CAST
* update libpq++ manual page
M
Marc G. Fournier 已提交
162 163 164

PORTABILITY
-----------
B
Bruce Momjian 已提交
165
 
B
Bruce Momjian 已提交
166

B
Bruce Momjian 已提交
167 168
---------------------------------------------------------------------------

169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
                     CHANGES IN THE 6.2.1 RELEASE

Changes in this release
-----------------------
Allow TIME and TYPE column names(Thomas)
Allow larger range of true/false as boolean values(Thomas)
Support output of "now" and "current"(Thomas)
Handle DEFAULT with INSERT of NULL properly(Vadim)
Fix for relation reference counts problem in buffer manager(Vadim)
Allow strings to span lines, like ANSI(Thomas)
Fix for backward cursor with ORDER BY(Vadim)
Fix avg(cash) computation(Thomas)
Fix for specifying a column twice in ORDER/GROUP BY(Vadim)
Documented new libpq function to return affected rows, PQcmdTuples(Bruce)
Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan)


B
Bruce Momjian 已提交
186
                     CHANGES IN THE 6.2 RELEASE
V
Vadim B. Mikheev 已提交
187

188 189
Bug Fixes
---------
B
Bruce Momjian 已提交
190 191 192 193 194 195 196 197 198 199 200 201 202 203
Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce)
Fix compile errors on overflow due to shifts, unsigned, and bad prototypes
	 from Solaris(Diab Jerius)
Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas)
Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas)
Catch non-functional delete attempts(Vadim)
Change time function names to be more consistent(Michael Reifenberg)
Check for zero divides(Michael Reifenberg)
Fix very old bug which made tuples changed/inserted by a commnd
	visible to the command itself (so we had multiple update of 
	updated tuples, etc)(Vadim)
Fix for SELECT null, 'fail' FROM pg_am (Patrick)
SELECT NULL as EMPTY_FIELD now allowed(Patrick)
Remove un-needed signal stuff from contrib/pginterface
V
Vadim B. Mikheev 已提交
204 205 206 207 208 209 210
Fix OR (where x <> 1 or x isnull didn't return tuples with x NULL) (Vadim)
Fix time_cmp function (Vadim)
Fix handling of functions with non-attribute first argument in 
	WHERE clauses (Vadim)
Fix GROUP BY when order of entries is different from order
	in target list (Vadim)
Fix pg_dump for aggregates without sfunc1 (Vadim)
211 212 213

Enhancements
------------
B
Bruce Momjian 已提交
214 215 216 217 218 219
Default genetic optimizer GEQO parameter is now 8(Bruce)
Allow use parameters in target list having aggregates in functions(Vadim)
Added JDBC driver as an interface(Adrian & Peter)
pg_password utility
Return number of tuples inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim)
Triggers implemented with CREATE TRIGGER (SQL3)(Vadim)
V
Vadim B. Mikheev 已提交
220 221
SPI (Server Programming Interface) allows execution of queries inside 
	C-functions (Vadim)
B
Bruce Momjian 已提交
222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256
NOT NULL implemented (SQL92)(Robson Paniago de Miranda)
Include reserved words for string handling, outer joins, and unions(Thomas)
Implement extended comments ("/* ... */") using exclusive states(Thomas)
Add "//" single-line comments(Bruce)
Remove some restrictions on characters in operator names(Thomas)
DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas)
Add text concatenation operator and function (SQL92)(Thomas)
Support WITH TIME ZONE syntax (SQL92)(Thomas)
Support INTERVAL <unit> TO <unit> syntax (SQL92)(Thomas)
Define types DOUBLE PRECISION, INTERVAL, CHARACTER,
	and CHARACTER VARYING (SQL92)(Thomas)
Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas)
Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas)
Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas)
Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas)
Add more reserved words, mostly for SQL92 compliance(Thomas)
Allow hh:mm:ss time entry for timespan/reltime types(Thomas)
Add center() routines for lseg, path, polygon(Thomas)
Add distance() routines for circle-polygon, polygon-polygon(Thomas)
Check explicitly for points and polygons contained within polygons
	using an axis-crossing algorithm(Thomas)
Add routine to convert circle-box(Thomas)
Merge conflicting operators for different geometric data types(Thomas)
Replace distance operator "<===>" with "<->"(Thomas)
Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas)
Add routines for text trimming on both ends, substring, and string position(Thomas)
Added conversion routines circle(box) and poly(circle)(Thomas)
Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim)
Allow functions and operators on internally-identical types to succeed(Bruce)
Speed up backend startup after profiling analysis(Bruce)
Inline frequently called functions for performance(Bruce)
Reduce open() calls(Bruce)
psql:  Add PAGER for \h and \?,\C fix
Fix for psql pager when no tty(Bruce)
New entab utility(Bruce)
V
Vadim B. Mikheev 已提交
257 258 259 260
General trigger functions for referential integrity (Vadim)
General trigger functions for time travel (Vadim)
General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim)
MOVE implementation (Vadim)
B
Bruce Momjian 已提交
261

B
Bruce Momjian 已提交
262
Source Tree Changes
263
-------------------
B
Bruce Momjian 已提交
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
HPUX 10 patches (Vladimir Turin)
Added SCO support, (Daniel Harris)
mkLinux patches (Tatsuo Ishii)
Change geometric box terminology from "length" to "width"(Thomas)
Deprecate temporary unstored slope fields in geometric code(Thomas)
Remove restart instructions from INSTALL(Bruce)
Look in /usr/ucb first for install(Bruce)
Fix c++ copy example code(Thomas)
Add -o to psql manual page(Bruce)
Prevent relname unallocated string length from being copied into database(Bruce)
Cleanup for NAMEDATALEN use(Bruce)
Fix pg_proc names over 15 chars in output(Bruce)
Add strNcpy() function(Bruce)
remove some (void) casts that are unnecessary(Bruce)
new interfaces directory(Marc)
Replace fopen() calls with calls to fd.c functions(Bruce)
Make functions static where possible(Bruce)
enclose unused functions in #ifdef NOT_USED(Bruce)
Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas)
Changes for Digital Unix
Portability fix for pg_dumpall(Bruce)
Rename pg_attribute.attnvals to attdisbursion(Bruce)
"intro/unix" manual page now "pgintro"(Bruce)
"built-in" manual page now "pgbuiltin"(Bruce)
"drop" manual page now "drop_table"(Bruce)
Add "create_trigger", "drop_trigger" manual pages(Thomas)
Add constraints regression test(Vadim & Thomas)
Add comments syntax regression test(Thomas)
Add PGINDENT and support program(Bruce)
Massive commit to run PGINDENT on all *.c and *.h files(Bruce)
Files moved to /src/tools directory(Bruce)
V
Vadim B. Mikheev 已提交
295
SPI and Trigger programming guides (Vadim & D'Arcy)