mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-29 22:49:41 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			388 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			388 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| TODO list for PostgreSQL
 | |
| ========================
 | |
| Last updated:		Sat Aug 29 17:43:10 EDT 1998
 | |
| 
 | |
| Current maintainer:	Bruce Momjian (maillist@candle.pha.pa.us)
 | |
| 
 | |
| The most recent version of this document can be viewed at
 | |
| the PostgreSQL WWW site, http://www.postgreSQL.org.
 | |
| 
 | |
| THE CHANGES FOR 6.4 APPEAR AT THE END OF THIS DOCUMENT
 | |
| 
 | |
| A dash(-) marks changes to be in the next release.
 | |
| 
 | |
| Developers who have claimed items are:
 | |
| -------------------------------------
 | |
| 	* Billy is Billy G. Allie <Bill.Allie@mug.org>
 | |
| 	* Brook is Brook Milligan <brook@trillium.NMSU.Edu>
 | |
| 	* Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
 | |
| 	* Bryan is Bryan Henderson<bryanh@giraffe.netgate.net>
 | |
| 	* D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
 | |
| 	* Dan is Dan McGuirk <mcguirk@indirect.com>
 | |
| 	* Daniel is Daniel Kalchev <daniel@digsys.bg>
 | |
| 	* Darren is Darren King <darrenk@insightdist.com>
 | |
| 	* David is David Hartwig <daveh@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>
 | |
| 	* Goran is Goran Thyni <goran@bildbasen.se>
 | |
| 	* Henry is Henry B. Hotz <hotz@jpl.nasa.gov>
 | |
| 	* Igor is Igor <igor@sba.miami.edu>
 | |
| 	* Jan is Jan Wieck <wieck@sapserv.debis.de>
 | |
| 	* Jun is Jun Kuwamura <juk@rccm.co.jp>
 | |
| 	* Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com>
 | |
| 	* Maarten is Maarten Boekhold <maartenb@dutepp0.et.tudelft.nl>
 | |
|  	* Marc is Marc Fournier <scrappy@hub.org>
 | |
|  	* Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de>
 | |
| 	* Massimo Dal Zotto <dz@cs.unitn.it>
 | |
| 	* Michael is Michael Meskes <meskes@debian.org>
 | |
| 	* 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>
 | |
| 	* Peter is Peter T Mount <peter@retep.org.uk>
 | |
| 	* Phil is Phil Thompson <phil@river-bank.demon.co.uk>
 | |
| 	* Raymond is Raymond Toy <toy@rtp.ericsson.se>
 | |
| 	* Ryan is Ryan Kirkpatrick <rkirkpat@nag.cs.colorado.edu>
 | |
| 	* 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>
 | |
| 	* Todd is Todd Brandys is <brandys@eng3.hep.uiuc.edu>
 | |
| 	* TomH is Tom I Helbekkmo <tih@Hamartun.Priv.NO>
 | |
| 	* Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>
 | |
| 	* Vivek is Vivek Khera <khera@kci.kciLink.com>
 | |
| 
 | |
| Additional 6.4 developers include:
 | |
| ---------------------------------
 | |
| 	* Jun Kuwamura <juk@rccm.co.jp>
 | |
| 	* Zeugswetter Andreas SARZ <Andreas.Zeugswetter@telecom.at>
 | |
| 	* Soonmyung. Hong <hong@lunaris.hanmesoft.co.kr>
 | |
| 	* Anders Hammarquist <iko@netg.se>
 | |
| 	* Jeroen van Vianen <jeroenv@design.nl>
 | |
| 	* Aldrin L. <aldrin@americasnet.com>
 | |
| 	* Pascal ANDRE <andre@via.ecp.fr>
 | |
| 	* Magnus Hagander <mha@edu.sollentuna.se>
 | |
| 
 | |
| RELIABILITY
 | |
| -----------
 | |
| * Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
 | |
| * Overhaul bufmgr/lockmgr/transaction manager
 | |
| * Remove EXTEND?
 | |
| * -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 {}
 | |
| * GROUP BY in INSERT INTO table SELECT * FROM table2 fails
 | |
| * Prevent auto-table reference, like SELECT table.col WHERE col = 3 (?)
 | |
| * SELECT * FROM table WHERE int4_column = '1' fails
 | |
| * SELECT a[1] FROM test fails, it needs test.a[1]
 | |
| * UPDATE table SET table.value = 3 fails
 | |
| * -Make pg_dump preserve inheritance column order, do non-inherits first
 | |
| * User who can create databases can modify pg_database table
 | |
| * optimizer memory exhaustion with many OR's
 | |
| * elog() does not free all its memory(Jan)
 | |
| * views on subselects fail
 | |
| * disallow inherited columns with the same name as new columns
 | |
| * recover or force failure when disk space is exhausted
 | |
| * default char() value not to full length crashes server on some OS's
 | |
| * allow UPDATE using aggregate to affect all rows, not just one
 | |
| * computations in views fail:
 | |
| 	create view test as select usesysid * usesysid from pg_shadow;
 | |
| * select upper(usename), count(usesysid) from pg_shadow group by 1 fails 
 | |
| 
 | |
| ENHANCEMENTS
 | |
| ------------
 | |
| * Replace table-level locking with row or page-level locking(Vadim)
 | |
| * Add SERIAL type
 | |
| * Transaction log, so re-do log can be on a separate disk
 | |
| * Allow transaction commits with rollback with no-fsync performance
 | |
| * More access control over who can create tables and access the database
 | |
| * Add full ANSI SQL capabilities
 | |
| 	* -Implement HAVING clause(Stephan)
 | |
| 	* add OUTER joins, left and right (Thomas)
 | |
| 	* -make VIEWs updateable where possible(use Rules)
 | |
| 	* add INTERSECTS, SUBTRACTS(Stephan)
 | |
| 	* add temporary tables
 | |
| 	* add sql3 recursive unions
 | |
| 	* add the concept of dataspaces
 | |
| 	* add DECIMAL, NUMERIC, DOUBLE PRECISION, BIT, BIT VARYING
 | |
|  	* NCHAR (as distinguished from ordinary varchar),
 | |
| 	* DOMAIN capability
 | |
| * 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
 | |
| 	* Fix large object mapping scheme, own reltype(Peter)
 | |
| 	* Allow large text type to use large objects(Peter)
 | |
| 	* not to stuff everything as files in a single directory
 | |
| 	* Fix large object memory leaks
 | |
| 	* delete orphaned large objects
 | |
| * Better interface for adding to pg_group
 | |
| * Make MONEY/DECIMAL have a defined precision
 | |
| * Fix tables >2G, or report error when 2G size reached
 | |
| 	(fix lseek()/off_t, mdextend()/RELSEG_SIZE)
 | |
| * -Allow libpq to cancel query requests
 | |
| * Add REGEX internationalization
 | |
| * allow row re-use without vacuum, maybe?(Vadim)
 | |
| * -Remove restriction that ORDER BY field must be in SELECT list(David)
 | |
| * Add word index for text fields, maybe with trigrams, i.e.:
 | |
|     * ' (cat | dog) & ! fox ' meaning text has cat aor 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
 | |
| * Add syslog functionality(Marc)
 | |
| * Add STDDEV/VARIANCE() function for standard deviation computation/variance
 | |
| * 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
 | |
| * Restore unused oid's on backend exit if no one else has gotten oids
 | |
| * remove non-standard types from the system, and make them loadable
 | |
| * have UPDATE/DELETE clean out indexes
 | |
| * 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 INSERT INTO ... SELECT ... FROM view to work
 | |
| * Make VACUUM on database not lock pg_class
 | |
| * Make VACUUM ANALYZE only use a readlock
 | |
| * Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
 | |
| * Allow installation data block size and max tuple size configuration(Darren)
 | |
| * Allow views on a UNION
 | |
| * Allow DISTINCT on view
 | |
| * Allow views of aggregate columns
 | |
| * Allow variable block sizes(Darren)
 | |
| * System tables are now more update-able from SQL(Jan)
 | |
| * New pg_shadow file, pg_user is now a view of pg_shadow(Jan)
 | |
| * Allow flag to control COPY input/output of NULLs
 | |
| * Allow CLUSTER on all tables at once, and improve CLUSTER
 | |
| * Change all references of Postgres to PostgreSQL, including binary names
 | |
| * Add ELOG_TIMESTAMPS to elog()(?)
 | |
| * Change LOCK tablename to LOCK TABLE tablename(?)
 | |
| * Allow max tuple length to be changed(Darren)
 | |
| * Have psql with no database name not connect to username as default(?)
 | |
| * Allow subqueries in target list
 | |
| * Granting permissions to another user looses permissions for the owner
 | |
| * Allow queries across multiple databases
 | |
| * Add replication of distributed databases
 | |
| * Allow table destruction/alter to be rolled back
 | |
| * Add pg_attribute.atttypmod/Resdom->restypmod to PGresult structure
 | |
| * Generate error on CREATE OPERATOR of ~~, ~ and and ~*
 | |
| * Allow constraint NULL just as we honor NOT NULL
 | |
| * Add version number in startup banners for psql and postmaster
 | |
| * Restructure storing of GRANT permission information to allow +-=
 | |
| * allow psql \copy to allow delimiters
 | |
| * allow international error message support and add error codes
 | |
| * allow ORDER BY a function(David)
 | |
| * allow usernames with dashes(GRANT fails)
 | |
| * add a function to return the last inserted oid, for use in psql scripts
 | |
| * allow creation of functional indexes to use default types
 | |
| * put sort files, large objects in their on directory
 | |
| * CREATE VIEW myview (name) AS SELECT lname FROM wages fails
 | |
| 
 | |
| PERFORMANCE
 | |
| -----------
 | |
| * Use indexes in ORDER BY for restrictive data sets, min(), max()
 | |
| * Optimizing disjunctive queries
 | |
| * Fix bushy-plans
 | |
| * Other optimizer bugs
 | |
| * Prevent fsync in SELECT-only queries
 | |
| * 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(Bruce)
 | |
| * update pg_statistic table to remove operator column
 | |
| * make index creation use psort code, because it is now faster(Vadim)
 | |
| * remove fork()/exec() of backend and make it just fork()
 | |
| * Add base table name to \d index
 | |
| * Allow char() not to use variable-sized header to reduce disk size
 | |
| * Do async I/O to do better read-ahead of data
 | |
| * Fix optmizer problem with self-table joins
 | |
| * Fix memory exhaustion when using many OR's
 | |
| * Use spin locks only on multi-CPU systems, yield CPU instead
 | |
| * Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
 | |
| 	when it is available
 | |
| * use mmap() rather than SYSV shared memory(?)
 | |
| * use index to restrict rows returned by multi-key index when used with
 | |
| 	non-consecutive keys or OR clauses, so fewer heap accesses
 | |
| 
 | |
| DOCUMENTATION
 | |
| -------------
 | |
| * Update usermanual source(many)
 | |
| * added features used in grammer but not in docs, like :: and CAST
 | |
| * update libpq++ and pginterface manual page
 | |
| * Add keyword list to documentation, already in /tools
 | |
| * Add 'man pgsql' to show all manual page names
 | |
| 
 | |
| 
 | |
| 
 | |
| =============================================================================
 | |
| 
 | |
| CHANGES IN THE 6.4 RELEASE
 | |
| --------------------------
 | |
| 
 | |
| Bug Fixes
 | |
| ---------
 | |
| Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan)
 | |
| Remove char2-16 data types, use char/varchar(Darren)
 | |
| Pqfn not handles a NOTICE message(Anders)
 | |
| Short-term locks now retry locking at random times(David)
 | |
| Fix up "ISO-style" timespan decoding and encoding(Thomas)
 | |
| Fix problem with table drop after rollback of transaction(Vadim)
 | |
| Change error message and remove non-functional update message(Vadim)
 | |
| Fix for COPY array checking
 | |
| Fix for SELECT 1 UNION SELECT NULL
 | |
| Fix for buffer leaks in large object calls(Pascal)
 | |
| Change owner from oid to int4 type(Bruce)
 | |
| Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim()
 | |
| Fix for usernames longer than eight characters(Tom)
 | |
| Fix for shared invalidation cache overflow(Massimo)
 | |
| Prevent file descriptor leaks in failed COPY's(Bruce)
 | |
| 
 | |
| Enhancements
 | |
| ------------
 | |
| Upgrade ECPG to 2.0, see src/interfaces/ecpc/ChangeLog(Michael)
 | |
| Show the index used in an explain(Zeugswetter)
 | |
| Multi-byte awareness of many data data types and functions(Tatsuo)
 | |
| New configure --with-mb option(Tatsuo)
 | |
| New initdb --pgencoding option(Tatsuo)
 | |
| New createdb -E multibyte option(Tatsuo)
 | |
| Select version(); now returns PostgreSQL version(Jeroen)
 | |
| Libpq now allows asynchronous clients(Tom)
 | |
| Allow cancel from client of backend query(Tom)
 | |
| Psql now cancels query with Control-C(Tom)
 | |
| Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas)
 | |
| Add routines to convert between varchar and bpchar(Thomas)
 | |
| Add routines to allow sizing of varchar and bpchar into target columns(Thomas)
 | |
| Add bit flags to support timezonehour and minute in data retrieval(Thomas)
 | |
| Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas)
 | |
| Fixes for unary minus parsing with leading spaces(Thomas)
 | |
| Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas)
 | |
| Check for and properly ignore FOREIGN KEY column constraints(Thomas)
 | |
| Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas)
 | |
| Enable HAVING clause but no fixes elsewhere yet.
 | |
| Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas)
 | |
| Save string type if specified for DEFAULT clause handling(Thomas)
 | |
| Coerce operations involving different data types(Thomas)
 | |
| Allow some index use for columns of different types(Thomas)
 | |
| Add capabilities for automatic type conversion(Thomas)
 | |
| Cleanups for large objects, so file is truncated on open(Peter)
 | |
| Readline cleanups(Tom)
 | |
| Allow psql  \f \ to make spaces as delimiter(Bruce)
 | |
| Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce)
 | |
| Msql compatibility library in /contrib(Aldrin)
 | |
| Remove the requirement that ORDER/GROUP BY clause identifiers be 
 | |
| included in the target list(David)
 | |
| Convert columns to match columns in UNION clauses(Thomas)
 | |
| Remove fork()/exec() and only do fork()(Bruce)
 | |
| Jdbc cleanups(Peter)
 | |
| Show backend status on ps command line(only works on some platforms)(Bruce)
 | |
| Pg_hba.conf now has a sameuser option in the database field
 | |
| Make lo_unlink take oid param, not int4
 | |
| New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce)
 | |
| Libpgtcl now gets async notifies from libpq(Tom)
 | |
| New locale patch, see docs/README/locale(Oleg)
 | |
| Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb)
 | |
| New contrib/lo code for large object orphan removal(Peter)
 | |
| New psql command "SET CLIENT_ENCODING TO 'encoding'" for multi-bytes
 | |
| feature, see /doc/README.mb(Tatsuo)
 | |
| /contrib/noupdate code to revoke update permission on a column
 | |
| Libpq can now be compiled on win32(Magnus)
 | |
| Add PQsetdbLogin() in libpq
 | |
| Two styles we agreed upon for database descriptors(Thomas)
 | |
| New 8-byte integer type, checked by configure for OS support(Thomas)
 | |
| Surround table and column names with double-quotes(Thomas) in generated 
 | |
| sql code to preserve case (SQL92 syntax)(Thomas)
 | |
| New libpqrequestCancel(Tom)
 | |
| PQreset() now works with passwords(Tom)
 | |
| Handle case of GROUP BY target list column number out of range(David)
 | |
| Allow UNION in subselects
 | |
| Add auto-size to screen to \d? commands(Bruce)
 | |
| Use UNION to show all \d? results in one query(Bruce)
 | |
| Add \d? field search feature(Bruce)
 | |
| Pg_dump issues fewer \connect requests(Tom)
 | |
| Document pg_dump -z flag in manual page(Tom)
 | |
| Add HAVING clause with full support for subselects and unions(Stephan)
 | |
| Full text indexing routines in contrib/fulltextindex(Marteen)
 | |
| Transaction ids now stored in shared memory(Vadim)
 | |
| New PGCLIENTENCODING when issuing COPY command(Tatsuo)
 | |
| Support for SQL92 syntax "SET NAMES"(Tatsuo)
 | |
| Support for LATIN2-5(Tatsuo)
 | |
| Add UNICODE regression test case(Tatsuo)
 | |
| Lock manager cleanup, new locking modes for LLL(Vadim)
 | |
| Allow index use with OR clauses(Bruce)
 | |
| Allows "SELECT NULL ORDER BY 1;"
 | |
| Explain VERBOSE prints the plan, and now pretty-prints the plan to
 | |
| the postmaster log file(Bruce)
 | |
| Add Indices display to \d command(Bruce)
 | |
| Allow GROUP BY on functions(David)
 | |
| New pg_class.relkind for large objects(Bruce)
 | |
| New way to send libpq NOTICE messages to a different location(Tom)
 | |
| New \w write command to psql(Bruce)
 | |
| New /contrib/findoidjoins scans oid columns to find join relationships(Bruce)
 | |
| Allow binary-compatible indices to be considered when checking for valid
 | |
| indices for restriction clauses containing a constant(Thomas)
 | |
| New ISBN/ISSN code in /contrib/isbn_issn
 | |
| Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas)
 | |
| New rewrite system fixes many problems with rules and views(Jan)
 | |
| 	* Rules on relations work
 | |
| 	* Event qualifications on insert/update/delete work
 | |
| 	* New OLD variable to reference CURRENT, CURRENT will be remove in future
 | |
| 	* Update rules can reference NEW and OLD in rule qualifications/actions
 | |
| 	* Insert/update/delete rules on views work
 | |
| 	* Multiple rule actions are now supported, surrounded by parentheses
 | |
| 	* Regular users can create views/rules on tables they have RULE permits
 | |
| 	* Rules and views inherit the permissions on the creator
 | |
| 	* No rules at the column level
 | |
| 	* No UPDATE NEW/OLD rules
 | |
| 	* New pg_rule and pg_view system views
 | |
| 	* Only a single action on SELECT rules
 | |
| 	* Total rewrite overhaul, perhaps for 6.5
 | |
| 
 | |
| System indexes are now multi-key(Bruce)
 | |
| Oidint2, oidint4, and oidname types are removed(Bruce)
 | |
| Use system cache for more system table lookups(Bruce)
 | |
| New backend programming language PL/pgSQL in backend/pl(Jan)
 | |
| New SERIAL data type, auto-creates sequence/index(Thomas)
 | |
| Enable assert checking without a recompile(Massimo)
 | |
| User lock enhancements(Massimo)
 | |
| New setval() command to set sequence value(Massimo)
 | |
| Auto-remove unix socket file on startup if no postmaster running(Massimo)
 | |
| Conditional trace package(Massimo)
 | |
| New UNLISTEN command(Massimo)
 | |
| Psql now compiles under win32 using win32.mak(Magnus)
 | |
| Lo_read no longer stores trailing NULL(Bruce)
 | |
| Identifiers are now truncated to 31 characters internally(Bruce)
 | |
| 
 | |
| Source Tree Changes
 | |
| -------------------
 | |
| /contrib cleanup(Jun)
 | |
| Inline some small functions called for every row(Bruce)
 | |
| Alpha/linux fixes
 | |
| Hp/UX cleanups(Tom)
 | |
| Multi-byte regression tests(Soonmyung.)
 | |
| Remove --disabled options from configure
 | |
| Define PGDOC to use POSTGRESDIR by default
 | |
| Make regression optional
 | |
| Remove extra braces code to pgindent(Bruce)
 | |
| Add bsdi shared library support(Bruce)
 | |
| New --without-CXX support configure option(Brook)
 | |
| New FAQ_CVS
 | |
| Update backend flowchart in tools/backend(Bruce)
 | |
| Change atttypmod from int16 to int32(Bruce, Tom)
 | |
| Getrusage() fix for platforms that do not have it(Tom)
 | |
| Add PGUSER to libpq man page
 | |
| Ns32k platform fixes(Phil Nelson)
 | |
| Sco 7/UnixWare 2.x fixes(Billy,others)
 | |
| Sparc/Solaris 2.5 fixes(Ryan)
 | |
| Pgbuiltin.3 is obsolete, move to doc files(Thomas)
 | |
| Even more documention(Thomas)
 |