TODO 12.9 KB
Newer Older
B
Bruce Momjian 已提交
1
====================================================
B
Bruce Momjian 已提交
2
TODO list (FAQ) for PostgreSQL
B
Bruce Momjian 已提交
3
====================================================
4
last updated:		Fri Oct 17 08:18:16 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

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

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

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

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

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

170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
                     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 已提交
187
                     CHANGES IN THE 6.2 RELEASE
V
Vadim B. Mikheev 已提交
188

189 190
Bug Fixes
---------
B
Bruce Momjian 已提交
191 192 193 194 195 196 197 198 199 200 201 202 203 204
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 已提交
205 206 207 208 209 210 211
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)
212 213 214

Enhancements
------------
B
Bruce Momjian 已提交
215 216 217 218 219 220
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 已提交
221 222
SPI (Server Programming Interface) allows execution of queries inside 
	C-functions (Vadim)
B
Bruce Momjian 已提交
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 257
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 已提交
258 259 260 261
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 已提交
262

B
Bruce Momjian 已提交
263
Source Tree Changes
264
-------------------
B
Bruce Momjian 已提交
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
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 已提交
296
SPI and Trigger programming guides (Vadim & D'Arcy)