TODO 11.4 KB
Newer Older
B
Bruce Momjian 已提交
1
====================================================
B
Bruce Momjian 已提交
2
TODO list (FAQ) for PostgreSQL
B
Bruce Momjian 已提交
3
====================================================
B
Bruce Momjian 已提交
4
last updated:		Mon Sep 29 22:45:43 EDT 1997
M
Marc G. Fournier 已提交
5 6 7

current maintainer:	Bruce Momjian (maillist@candle.pha.pa.us)

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

B
Bruce Momjian 已提交
11
THE CHANGES FOR 6.2 APPEAR AT THE END OF THIS DOCUMENT
B
Bruce Momjian 已提交
12 13 14 15 16

Developers who have claimed items are:
	Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
	Bryan is Bryan Henderson<bryanh@giraffe.netgate.net>
	Dan is Dan McGuirk <mcguirk@indirect.com>
B
Bruce Momjian 已提交
17
	Daniel is Daniel Kalchev <daniel@digsys.bg>
B
Bruce Momjian 已提交
18 19 20
	Darren is Darren King <darrenk@insightdist.com>
	Edmund is Edmund Mergl <E.Mergl@bawue.de>
	Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
B
Bruce Momjian 已提交
21
	Gerhard is Gerhard Reithofer <gerhardr@tech-edv.co.at>
B
Bruce Momjian 已提交
22
	Igor is Igor <igor@sba.miami.edu>
B
Bruce Momjian 已提交
23
	Jun is Jun Kuwamura <juk@rccm.co.jp>
B
Bruce Momjian 已提交
24 25
	Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com>
 	Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de>
B
Bruce Momjian 已提交
26 27
	Oleg is Oleg Bartunov <oleg@sai.msu.su>
	Paul is Paul M. Aoki <aoki@CS.Berkeley.EDU>
28
	Patrick is Patrick van Kleef <pvk@pobox.com>
B
Bruce Momjian 已提交
29 30 31 32
	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>
B
Bruce Momjian 已提交
33
	Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
B
Bruce Momjian 已提交
34
	Thomas is Thomas Lockhart <tgl@mythos.jpl.nasa.gov>
B
Bruce Momjian 已提交
35 36
	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
-Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup(Erich)
-Overhaul bufmgr/lockmgr/transaction manager(Vadim)
Fix CLUSTER
43
Remove EXTEND?
M
Marc G. Fournier 已提交
44
Fix all NULL features
B
Bruce Momjian 已提交
45
	allow psql to print nulls meaningfully
B
Bruce Momjian 已提交
46
Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?)
B
Bruce Momjian 已提交
47 48
COUNT on VIEW always returns zero (maybe because there is no oid for views?)
CREATE VIEW requires super-user priviledge
B
Bruce Momjian 已提交
49
can lo_export()/lo_import() read/write anywhere, causing a security problem?
B
Bruce Momjian 已提交
50
Tables that start with xinv confused to be large objects
B
Bruce Momjian 已提交
51 52
Two and three dimmensional arrays display improperly, missing {}
Add GROUP BY and HAVING to INSERT INTO table SELECT * FROM table2
53 54 55 56 57
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
B
Bruce Momjian 已提交
58 59 60 61 62 63 64
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 已提交
65 66 67

ENHANCEMENTS
------------
B
Bruce Momjian 已提交
68 69 70 71 72
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
B
Bruce Momjian 已提交
73
Add full ANSI SQL capabilities (Stefan)
B
Bruce Momjian 已提交
74 75 76
	add subselects, possibility using temporary SQL functions
	Implement HAVING clause
	Implement EXISTS qualifier
M
Marc G. Fournier 已提交
77
	report "Not implemented" if valid syntax is supplied
78
	add OUTER joins, left and right (Thomas)
M
Marc G. Fournier 已提交
79 80 81 82 83
	make VIEWs updateable where possible
	add UNIONS, INTERSECTS, SUBTRACTS
	add temporary tables
	add sql3 recursive unions
	add the concept of dataspaces
B
Bruce Momjian 已提交
84
	allow conversion type casts on SELECT target fields
85 86
	add DECIMAL, NUMERIC, DOUBLE PRECISION, BIT, BIT VARYING
	 	NCHAR (as distinguished from ordinary varchar),
M
Marc G. Fournier 已提交
87
Allow compression of large fields or a compressed field type
B
Bruce Momjian 已提交
88
Fix the rules system(Jan?,Soo-Ho)
M
Marc G. Fournier 已提交
89 90
	robust
	making INSTEAD rules work
B
Bruce Momjian 已提交
91
	add CONSTRAINT
M
Marc G. Fournier 已提交
92
Full set of text operations and functions
B
Bruce Momjian 已提交
93
	word searches, concat,max() on text, char
M
Marc G. Fournier 已提交
94 95 96
Large objects
	overwriting blocks has problems
	there are other problems, too.
B
Bruce Momjian 已提交
97 98
	Fix large object mapping scheme
	not to stuff everything as files in a single directory
M
Marc G. Fournier 已提交
99
Better interface for adding to pg_group
B
Bruce Momjian 已提交
100
Make MONEY/DECIMAL have a defined precision
B
Bruce Momjian 已提交
101
Add support for tables >2G, or test current version
M
Marc G. Fournier 已提交
102
Threaded version of the server or libpq
B
Bruce Momjian 已提交
103
Allow libpq to cancel query requests
M
Marc G. Fournier 已提交
104
Add REGEX internationalization
B
Bruce Momjian 已提交
105 106 107 108
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.
B
Bruce Momjian 已提交
109 110 111 112 113
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
B
Bruce Momjian 已提交
114
can't reduce index file size with vacuum
B
Bruce Momjian 已提交
115
Remove restriction that ORDER BY field must be in SELECT list(?)
B
Bruce Momjian 已提交
116
Allow queries about owner of tables, like:
B
Bruce Momjian 已提交
117 118 119 120
        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
B
Bruce Momjian 已提交
121 122 123 124 125 126 127
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
B
Bruce Momjian 已提交
128
Add table/column/function discription table indexed by oid
B
Bruce Momjian 已提交
129
add pg_type attribute to identify types that need length (bpchar, varchar)
130
add UNIQUE capability to non-btree indexes
B
Bruce Momjian 已提交
131
make large objects have their own reltype
B
Bruce Momjian 已提交
132 133
make number of backends a config parameter, storage/sinvaladt.h:MaxBackendId
certain indexes will not shrink, i.e. oid indexes with many inserts
B
Bruce Momjian 已提交
134 135
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
136
allow unix domain sockets for local connections for performance and security
B
Bruce Momjian 已提交
137
Add PAGER for psql's \dt and \d tablename
B
Bruce Momjian 已提交
138 139 140

PERFORMANCE
-----------
B
Bruce Momjian 已提交
141 142
Use indexes in ORDER BY
Allow LIKE/wildcard matches to use indexes if the wildcard character is not first
B
Bruce Momjian 已提交
143
Optimizing disjunctive queries
B
Bruce Momjian 已提交
144
Fix bushy-plans (Martin)
B
Bruce Momjian 已提交
145 146 147
Other optimizer bugs
Is fsync use optimized?
Cache most recent query plan(s?)
B
Bruce Momjian 已提交
148
Shared catalog cache, reduce lseek()'s by caching table size in shared area
B
Bruce Momjian 已提交
149
Allow compression of log and meta data
B
Bruce Momjian 已提交
150
Add FILLFACTOR to index creation
B
Bruce Momjian 已提交
151
Allow indexes to be used with OR clauses(Vadim)
152
update pg_statistic table to remove operator column
M
Marc G. Fournier 已提交
153 154 155

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

PORTABILITY
-----------
B
Bruce Momjian 已提交
163
 
B
Bruce Momjian 已提交
164

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

B
Bruce Momjian 已提交
167
                     CHANGES IN THE 6.2 RELEASE
168 169
Bug Fixes
---------
B
Bruce Momjian 已提交
170 171 172 173 174 175 176 177 178 179 180 181 182 183
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
184 185 186

Enhancements
------------
B
Bruce Momjian 已提交
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228
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)
SPI (Server Programming Interface) implemented to support triggers(Vadim)
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)
B
Bruce Momjian 已提交
229

B
Bruce Momjian 已提交
230
Source Tree Changes
231
-------------------
B
Bruce Momjian 已提交
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 257 258 259 260 261 262
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)