Skip to content
Snippets Groups Projects
TODO 9.78 KiB
Newer Older
Bruce Momjian's avatar
Bruce Momjian committed
====================================================
Bruce Momjian's avatar
Bruce Momjian committed
TODO list (FAQ) for PostgreSQL
Bruce Momjian's avatar
Bruce Momjian committed
====================================================
Bruce Momjian's avatar
Bruce Momjian committed
last updated:		Tue May 13 23:16:50 EDT 1997
Marc G. Fournier's avatar
Marc G. Fournier committed

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

Bruce Momjian's avatar
Bruce Momjian committed
The most recent version of this document can be viewed at
Bruce Momjian's avatar
Bruce Momjian committed
the postgreSQL WWW site, http://www.postgreSQL.org.
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
Dashed items(-) are being worked on for the 6.1 release.
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
THE CHANGES FOR 6.1 APPEAR AT THE END OF THIS DOCUMENT
Bruce Momjian's avatar
Bruce Momjian committed

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>
Bruce Momjian's avatar
Bruce Momjian committed
	Daniel is Daniel Kalchev <daniel@digsys.bg>
Bruce Momjian's avatar
Bruce Momjian committed
	Darren is Darren King <darrenk@insightdist.com>
	Edmund is Edmund Mergl <E.Mergl@bawue.de>
	Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
Bruce Momjian's avatar
Bruce Momjian committed
	Jun is Jun Kuwamura <juk@rccm.co.jp>
Bruce Momjian's avatar
Bruce Momjian committed
	Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com>
 	Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de>
Bruce Momjian's avatar
Bruce Momjian committed
	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>
Bruce Momjian's avatar
Bruce Momjian committed
	Thomas is Thomas Lockhart <tgl@mythos.jpl.nasa.gov>
Bruce Momjian's avatar
Bruce Momjian committed
	Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>
	Vivek is Vivek Khera <khera@kci.kciLink.com>
Marc G. Fournier's avatar
Marc G. Fournier committed

RELIABILITY
-----------
Bruce Momjian's avatar
Bruce Momjian committed
-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
Marc G. Fournier's avatar
Marc G. Fournier committed
Fix all NULL features
Bruce Momjian's avatar
Bruce Momjian committed
	allow psql to print nulls meaningfully
Bruce Momjian's avatar
Bruce Momjian committed
Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?)
Bruce Momjian's avatar
Bruce Momjian committed
Dropping a table twice causes corruption, drop/create not rollback-able
Bruce Momjian's avatar
Bruce Momjian committed
-SUM aggregate on no rows or null value should return NULL, not zero(Thomas)
Bruce Momjian's avatar
Bruce Momjian committed
SELECT on two tables where zero or one table in WHERE and target
Bruce Momjian's avatar
Bruce Momjian committed
 	clause returns no rows
Bruce Momjian's avatar
Bruce Momjian committed
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
Bruce Momjian's avatar
Bruce Momjian committed
fix array diffs in regression test
can lo_export()/lo_import() read/write anywhere, causing a security problem?
SELECT ... INTO TABLE ... with varchar()/char() types have zero-length fields
Fix UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab'
Marc G. Fournier's avatar
Marc G. Fournier committed

ENHANCEMENTS
------------
Bruce Momjian's avatar
Bruce Momjian committed
Add full ANSI SQL capabilities (Stefan)
Bruce Momjian's avatar
Bruce Momjian committed
	add subselects, possibility using temporary SQL functions
	Implement HAVING clause
	Implement EXISTS qualifier
	column constraints (using rules), PRIMARY KEY during table creation
Bruce Momjian's avatar
Bruce Momjian committed
	add DEFAULT, RESTRAINT, and CHECK capabilities
Marc G. Fournier's avatar
Marc G. Fournier committed
	report "Not implemented" if valid syntax is supplied
	add NOT NULL to CREATE statement
Bruce Momjian's avatar
Bruce Momjian committed
	add OUTER joins, left and right
Marc G. Fournier's avatar
Marc G. Fournier committed
	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
Bruce Momjian's avatar
Bruce Momjian committed
	allow conversion type casts on SELECT target fields
Marc G. Fournier's avatar
Marc G. Fournier committed
Allow compression of large fields or a compressed field type
Bruce Momjian's avatar
Bruce Momjian committed
Fix the rules system(Jan?,Soo-Ho)
Marc G. Fournier's avatar
Marc G. Fournier committed
	robust
	making INSTEAD rules work
Bruce Momjian's avatar
Bruce Momjian committed
	add CONSTRAINT
Marc G. Fournier's avatar
Marc G. Fournier committed
Full set of text operations and functions
Bruce Momjian's avatar
Bruce Momjian committed
-	upper/lower()
	word searches, concat,max() on text, char
Bruce Momjian's avatar
Bruce Momjian committed
Replace table-level locking with row or page-level locking(Vadim)
Marc G. Fournier's avatar
Marc G. Fournier committed
Large objects
	overwriting blocks has problems
	there are other problems, too.
Bruce Momjian's avatar
Bruce Momjian committed
	Fix large object mapping scheme
	not to stuff everything as files in a single directory
Marc G. Fournier's avatar
Marc G. Fournier committed
Better interface for adding to pg_group
Bruce Momjian's avatar
Bruce Momjian committed
-Make multi-field indexes easier to create(Vadim)
Marc G. Fournier's avatar
Marc G. Fournier committed
	allow optimizer to effectively use parameters without accessing table
Bruce Momjian's avatar
Bruce Momjian committed
-Add int8 type(Thomas)
-Add MONEY/DECIMAL type(Thomas)
Make MONEY/DECIMAL have a defined precision
Bruce Momjian's avatar
Bruce Momjian committed
Add support for tables >2G, or test current version
Incorporate the PERL PG95 interface library into source tree(Edmund)
Marc G. Fournier's avatar
Marc G. Fournier committed
Threaded version of the server or libpq
Bruce Momjian's avatar
Bruce Momjian committed
Allow libpq to cancel query requests
Marc G. Fournier's avatar
Marc G. Fournier committed
Add REGEX internationalization
Bruce Momjian's avatar
Bruce Momjian committed
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.
Bruce Momjian's avatar
Bruce Momjian committed
remove time-travel feature(Vadim)
reduce system column overhead(Vadmin)
remove pg_time table(Vadim)
allow row re-use without vacuum, maybe?(Vadim)
Bruce Momjian's avatar
Bruce Momjian committed
-split apart row removal function from statistics function(Vadim)
Bruce Momjian's avatar
Bruce Momjian committed
can't vacuum large objects
Bruce Momjian's avatar
Bruce Momjian committed
can't reduce index file size with vacuum
Bruce Momjian's avatar
Bruce Momjian committed
Remove restriction that ORDER BY field must be in SELECT list(?)
Bruce Momjian's avatar
Bruce Momjian committed
Allow queries about owner of datbases, tables like:
        SELECT u.usesysid FROM postgres.pg_user u;
Bruce Momjian's avatar
Bruce Momjian committed
DROP AGGREGATE should take in basetype as an arg(Darren)
Bruce Momjian's avatar
Bruce Momjian committed
Add word index for text fields, maybe with trigrams, i.e.:
    ' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox
Bruce Momjian's avatar
Bruce Momjian committed
-Add common-sense constant type promotions(Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
Allow readline-type or editor command editing of multi-line SQL commands
Bruce Momjian's avatar
Bruce Momjian committed
-Allow pg_dump to dump all databases at a site in one command(Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
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
Bruce Momjian's avatar
Bruce Momjian committed
Allow aggregate for all types, like count(Darren)
Bruce Momjian's avatar
Bruce Momjian committed
Improve optimizer plan choice(Darren)
Add STDDEV/VARIANCE() function for standard deviation computation/variance
Bruce Momjian's avatar
Bruce Momjian committed
Add table/column/function discription table indexed by oid
Bruce Momjian's avatar
Bruce Momjian committed
-make all identifiers case-insensitive(Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
add pg_type attribute to identify types that need length (bpchar, varchar)
add UNIQUE capability to non-btree indexes
Bruce Momjian's avatar
Bruce Momjian committed
-allow GROUP BY on columns that on functions(Vadim)
-add non-ascii collating strings with strcoll() and setlocale (Oleg)
-new DATE routines (Thomas)
-index NULL fields(Vadim)
-Add SERIAL column type(Vadim)
-Add multi-column indexes(Vadim)
-Add SET VAR TO command
Bruce Momjian's avatar
Bruce Momjian committed

PERFORMANCE
-----------
Optimizing disjunctive queries
Bruce Momjian's avatar
Bruce Momjian committed
-Add Genetic Query Optimzation for many tables (Martin)
-Fix bushy-plans (Martin)
Bruce Momjian's avatar
Bruce Momjian committed
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
Bruce Momjian's avatar
Bruce Momjian committed
-Speed up hash creation by using btree's fast sort/insert routines(done)
Bruce Momjian's avatar
Bruce Momjian committed
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
Bruce Momjian's avatar
Bruce Momjian committed
Add FILLFACTOR to index creation
Bruce Momjian's avatar
Bruce Momjian committed
Allow indexes to be used with OR clauses(Vadim)
Bruce Momjian's avatar
Bruce Momjian committed
-Add column optimization statistics to vacuum(Bruce)
-Change pg_attribute.attnvals name to attdispursion and change type float4
Bruce Momjian's avatar
Bruce Momjian committed
	update pg_statistic table to remove operator column
Marc G. Fournier's avatar
Marc G. Fournier committed

DOCUMENTATION
-------------
Bruce Momjian's avatar
Bruce Momjian committed
Update usermanual source(many)
Bruce Momjian's avatar
Bruce Momjian committed
remove time-travel in documentation(Bruce)
added features used in grammer but not in docs, like :: and CAST
Bruce Momjian's avatar
Bruce Momjian committed
add DECLARE manual page
Marc G. Fournier's avatar
Marc G. Fournier committed

PORTABILITY
-----------
Bruce Momjian's avatar
Bruce Momjian committed
Change c.h "Index" and "bool" so they do not conflict with c++
Bruce Momjian's avatar
Bruce Momjian committed
 
Bruce Momjian's avatar
Bruce Momjian committed

---------------------------------------------------------------------------

Bruce Momjian's avatar
Bruce Momjian committed
                      CHANGES IN THE 6.1 RELEASE
Bruce Momjian's avatar
Bruce Momjian committed
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)
attribute optimization statistics(Bruce)
re-arrange include files(Marc)
much faster new btree bulk load code(Paul)
BTREE UNIQUE added to bulk load code(Vadim) 
new lock debug code(Massimo)
packet length checking in library routines
lock manager priority patch
massing changes to libpg++(Leo)
nextstep patches (Gregor Hoffleit)
removed WIN32-specific code(Bruce)
new GEQO optimizer speeds table multi-table optimization(Martin)
removed postmaster -e option, now only postgres -e option (Bruce)
check for under/over flow of float8(Bruce)
multi-table join fix(Vadim)
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)
SIGPIPE crash fix(Darren)
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)
merge duplicate library code in front/backends(Martin)
move large chunks of data in backend(Martin)
multi-column btree indexes(Vadim)
new SET var TO value command(Martin)
now works with eBones, international Kerberos(Jun)
large object fixes(Sven)
allow btree indexes to handle NULLs(Vadim)
timezone fixes(D'Arcy)
more shared library support
auto-udpate transaction status on reads(Dan)
new locale settings for character types(Oleg)
new SEQUENCE serial number generator(Vadim)
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)
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)
c++ include file cleanup(Bruce)
tcp socket communication speed improved(Vadim)
large object fixes(Raymond)
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)
more comparison operators for sorting types(Thomas)
new conversion functions(Thomas)
new more compact btree format(Vadim)