mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 10:30:33 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			290 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			290 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ====================================================
 | |
| TODO list (FAQ) for PostgreSQL
 | |
| ====================================================
 | |
| last updated:		Mon Jul 21 18:01:37 EDT 1997
 | |
| 
 | |
| 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.1 and 6.1.1 APPEAR AT THE END OF THIS DOCUMENT
 | |
| 
 | |
| 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>
 | |
| 	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>
 | |
| 	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>
 | |
| 
 | |
| RELIABILITY
 | |
| -----------
 | |
| -Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup(Erich)
 | |
| -Overhaul bufmgr/lockmgr/transaction manager(Vadim)
 | |
| remove -S (stable memory) option or fix memory manager
 | |
| Fix CLUSTER
 | |
| Fix all NULL features
 | |
| 	allow psql to print nulls meaningfully
 | |
| Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?)
 | |
| Dropping a table twice causes corruption, drop/create not rollback-able
 | |
| COUNT on VIEW always returns zero (maybe because there is no oid for views?)
 | |
| CREATE VIEW requires super-user priviledge
 | |
| SELECT a[1] FROM test fails, it needs test.a[1]
 | |
| INSERT INTO ... SELECT DISTINCT ... generates error on DISTINCT
 | |
| pg_database.datdba is oid, should be int4
 | |
| can lo_export()/lo_import() read/write anywhere, causing a security problem?
 | |
| Fix UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab'
 | |
| SELECT COUNT(*) FROM TAB1, TAB2 fails
 | |
| 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
 | |
| Make timestamp type recognize DateStyle(Tom)
 | |
| 
 | |
| ENHANCEMENTS
 | |
| ------------
 | |
| Add full ANSI SQL capabilities (Stefan)
 | |
| 	add subselects, possibility using temporary SQL functions
 | |
| 	Implement HAVING clause
 | |
| 	Implement EXISTS qualifier
 | |
| 	column constraints (using rules), PRIMARY KEY during table creation
 | |
| 	add DEFAULT, RESTRAINT, and CHECK capabilities
 | |
| 	report "Not implemented" if valid syntax is supplied
 | |
| 	add NOT NULL to CREATE statement
 | |
| 	add OUTER joins, left and right
 | |
| 	make VIEWs updateable where possible
 | |
| 	add UNIONS, INTERSECTS, SUBTRACTS
 | |
| 	add temporary tables
 | |
| 	add assertions
 | |
| 	add domains
 | |
| 	add sql3 recursive unions
 | |
| 	add the concept of dataspaces
 | |
| 	allow conversion type casts on SELECT target fields
 | |
| 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
 | |
| Replace table-level locking with row or page-level locking(Vadim)
 | |
| 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
 | |
| Incorporate the PERL PG95 interface library into source tree(Edmund)
 | |
| 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 datbases, 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 pg_dumpall preserve table ownership, not just database ownership
 | |
| 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
 | |
| 
 | |
| PERFORMANCE
 | |
| -----------
 | |
| Optimizing disjunctive queries
 | |
| Fix bushy-plans (Martin)
 | |
| Other optimizer bugs
 | |
| Is fsync use optimized?
 | |
| Multi-representational types, a la Illustra. For example, have a
 | |
|        text type that is stored in-tuple when less than 8K and in large
 | |
|        objects, when greater than 8K.
 | |
| Use indexes in ORDER BY
 | |
| Profile engine in INSERT's and other operations
 | |
| Cache most recent query plan(s?)
 | |
| Allow compression of log and meta data
 | |
| Allow LIKE/wildcard matches to use indexes if the wildcard character is not first
 | |
| Add FILLFACTOR to index creation
 | |
| Allow indexes to be used with OR clauses(Vadim)
 | |
| Change pg_attribute.attnvals name to attdispursion and change type float4
 | |
| 	update pg_statistic table to remove operator column
 | |
| 
 | |
| DOCUMENTATION
 | |
| -------------
 | |
| Update usermanual source(many)
 | |
| remove time-travel in documentation(Bruce)
 | |
| added features used in grammer but not in docs, like :: and CAST
 | |
| add DECLARE manual page
 | |
| update libpq++ manual page
 | |
| 
 | |
| PORTABILITY
 | |
| -----------
 | |
|  
 | |
| 
 | |
| ---------------------------------------------------------------------------
 | |
| 
 | |
|                      CHANGES IN THE 6.1.1 RELEASE
 | |
| 
 | |
| Changes in this release
 | |
| -----------------------
 | |
| fix for SET with options (Thomas)
 | |
| allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
 | |
| new psql \connect option allows changing usernames without chaning databases
 | |
| fix for initdb --debug option(Yoshihiko Ichikawa)
 | |
| lextest cleanup(Bruce)
 | |
| hash fixes(Vadim)
 | |
| fix date/time month boundary arithmetic(Thomas)
 | |
| fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo)
 | |
| timestamp overhauled to use standard functions(Thomas)
 | |
| other code cleanup in date/time routines(Thomas)
 | |
| psql's \d now case-insensitive(Bruce)
 | |
| psql's backslash commands can now have trailing semicolon(Bruce)
 | |
| fix memory leak in psql when using \g(Bruce)
 | |
| major fix for endian handling of communication to server(Thomas, Tatsuo)
 | |
| Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
 | |
| allow underscores in usernames(Bruce)
 | |
| pg_dumpall now returns proper status, portability fix(Bruce)
 | |
| 
 | |
| 
 | |
| ---------------------------------------------------------------------------
 | |
| 
 | |
|                       CHANGES IN THE 6.1 RELEASE
 | |
| 
 | |
| Bug Fixes
 | |
| ---------
 | |
| packet length checking in library routines
 | |
| lock manager priority patch
 | |
| check for under/over flow of float8(Bruce)
 | |
| multi-table join fix(Vadim)
 | |
| SIGPIPE crash fix(Darren)
 | |
| large object fixes(Sven)
 | |
| allow btree indexes to handle NULLs(Vadim)
 | |
| timezone fixes(D'Arcy)
 | |
| select SUM(x) can return NULL on no rows(Thomas)
 | |
| internal optimizer, executor bug fixes(Vadim)
 | |
| fix problem where inner loop in < or <= has no rows(Vadim)
 | |
| prevent re-commuting join index clauses(Vadim)
 | |
| fix join clauses for multiple tables(Vadim)
 | |
| fix hash, hashjoin for arrays(Vadim)
 | |
| fix btree for abstime type(Vadim)
 | |
| large object fixes(Raymond)
 | |
| fix buffer leak in hash indices (Vadim)
 | |
| fix rtree for use in inner scan (Vadim)
 | |
| fix gist for use in inner scan, cleanups (Vadim, Andrea)
 | |
| avoid unnecessary local buffers allocation (Vadim, Massimo)
 | |
| fix local buffers leak in transaction aborts (Vadim)
 | |
| fix file manager memmory leaks, cleanups (Vadim, Massimo)
 | |
| fix storage manager memmory leaks (Vadim)
 | |
| fix btree duplicates handling (Vadim)
 | |
| fix deleted tuples re-incarnation caused by vacuum (Vadim)
 | |
| fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
 | |
| many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
 | |
| SELECT on two tables where zero or one table in WHERE and target
 | |
|  	clause returns no rows(Vadim)
 | |
| 
 | |
| Enhancements
 | |
| ------------
 | |
| attribute optimization statistics(Bruce)
 | |
| much faster new btree bulk load code(Paul)
 | |
| BTREE UNIQUE added to bulk load code(Vadim) 
 | |
| new lock debug code(Massimo)
 | |
| massive changes to libpg++(Leo)
 | |
| new GEQO optimizer speeds table multi-table optimization(Martin)
 | |
| new WARN message for non-unique insert into unique key(Marc)
 | |
| update x=-3, no spaces, now valid(Bruce)
 | |
| remove case-sensitive identifier handling(Bruce,Thomas,Dan)
 | |
| debug backend now pretty-prints tree(Darren)
 | |
| new Oracle character functions(Edmund)
 | |
| new plaintext password functions(Dan)
 | |
| no such class or insufficient privilege changed to distinct messages(Dan)
 | |
| new ANSI timestamp function(Dan)
 | |
| new ANSI Time and Date types (Thomas)
 | |
| move large chunks of data in backend(Martin)
 | |
| multi-column btree indexes(Vadim)
 | |
| new SET var TO value command(Martin)
 | |
| update transaction status on reads(Dan)
 | |
| new locale settings for character types(Oleg)
 | |
| new SEQUENCE serial number generator(Vadim)
 | |
| GROUP BY function now possible(Vadim)
 | |
| re-organize regression test(Thomas,Marc)
 | |
| new optimizer operation weights(Vadim)
 | |
| new psql \z grant/permit option(Marc)
 | |
| new MONEY data type(D'Arcy,Thomas)
 | |
| tcp socket communication speed improved(Vadim)
 | |
| new VACUUM option for attribute statistics, and for certain columns (Vadim)
 | |
| many geometric type improvements(Thomas,Keith)
 | |
| additional regression tests(Thomas)
 | |
| new datestyle variable(Thomas,Vadim,Martin)
 | |
| more comparison operators for sorting types(Thomas)
 | |
| new conversion functions(Thomas)
 | |
| new more compact btree format(Vadim)
 | |
| allow pg_dumpall to preserve database ownership(Bruce)
 | |
| new SET GEQO=# and R_PLANS variable(Vadim)
 | |
| old (!GEQO) optimizer can use right-sided plans (Vadim)
 | |
| typechecking improvement in SQL parser(Bruce)
 | |
| new SET, SHOW, RESET commands(Thomas,Vadim)
 | |
| new \connect database USER option
 | |
| new destroydb -i option (Igor)
 | |
| new \dt and \di psql commands (Darren)
 | |
| SELECT "\n" now escapes newline (A. Duursma)
 | |
| new geometry conversion functions from old format (Thomas)
 | |
| Improve optimizer plan choice(Vadim)
 | |
| 
 | |
| Source tree changes
 | |
| -------------------
 | |
| new configuration script(Marc)
 | |
| readline configuration option added(Marc)
 | |
| OS-specific configuration options removed(Marc)
 | |
| new OS-specific template files(Marc)
 | |
| no more need to edit Makefile.global(Marc)
 | |
| re-arrange include files(Marc)
 | |
| nextstep patches (Gregor Hoffleit)
 | |
| removed WIN32-specific code(Bruce)
 | |
| removed postmaster -e option, now only postgres -e option (Bruce)
 | |
| merge duplicate library code in front/backends(Martin)
 | |
| now works with eBones, international Kerberos(Jun)
 | |
| more shared library support
 | |
| c++ include file cleanup(Bruce)
 | |
| warn about buggy flex(Bruce)
 | |
| DG-UX, Ultrix, Irix, AIX portability fixes
 |