Skip to content
Snippets Groups Projects
TODO 10.5 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:		Thu Dec 26 09:03:38 EST 1996
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
Changes included in the 6.0 release are listed at the end of this page.

Dashed items(-) are being worked on for the post-6.0 release.

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>
	Darren is Darren King <darrenk@insightdist.com>
	Edmund is Edmund Mergl <E.Mergl@bawue.de>
	Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
	Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com>
 	Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de>
	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
Fix compile and security of Kerberos V code
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
SELECT on two tables where zero or one table in WHERE and target
	clause returns no rows
fix system to use oid index using constant without cast to oid
COUNT on VIEW always returns zero (maybe because there is no oid for views?)
SELECT ... INTO TABLE ... GROUP BY ... generates unlink error
	if done three times with same INTO TABLE name (failure cleanup problem?)
CREATE VIEW requires super-user priviledge
Marc G. Fournier's avatar
Marc G. Fournier committed

ENHANCEMENTS
------------
Bruce Momjian's avatar
Bruce Momjian committed
Add full ANSI SQL capabilities
Bruce Momjian's avatar
Bruce Momjian committed
	add subselects, possibility using temporary SQL functions
	Implement HAVING clause
	Implement EXISTS qualifier
Marc G. Fournier's avatar
Marc G. Fournier committed
	column constraints (using rules), esp. primary keys
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
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?)
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
	word searches, concat, upper/lower(), 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
Make multi-field indexes easier to create
	allow optimizer to effectively use parameters without accessing table
Add int8 type
Bruce Momjian's avatar
Bruce Momjian committed
Add MONEY/DECIMAL type with defined precision
Marc G. Fournier's avatar
Marc G. Fournier committed
Add table comments
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
Bruce Momjian's avatar
Bruce Momjian committed
	can't vacuum large objects
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
Add common-sense constant type promotions
Allow readline-type or editor command editing of multi-line SQL commands
Allow pg_dump to dump all databases at a site in one command
Allow function result to be used in GROUP BY
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
Allow aggregate for All types, like count(Darren)
Improve optimizer plan choice(Darren)
Add STDDEV/VARIANCE() function for standard deviation computation/variance
Add upper/lower functions
-Add table/column/function discription table indexed by oid
-make all identifiers case-insensitive(Bruce)
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
Speed up hash creation by using btree's fast sort/insert routines
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
Allow indexes to be used with OR clauses
-Add column optimization statistics to vacuum(Bruce)
-Change pg_attribute.attnvals name to attdispursion and change type float4
Marc G. Fournier's avatar
Marc G. Fournier committed

DOCUMENTATION
-------------
Update usermanual source
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
add DECLARE manual pages
add EXPLAIN manual page
Marc G. Fournier's avatar
Marc G. Fournier committed

PORTABILITY
-----------
Windows NT port
	Mariposa project at Berkeley has a person who's working on this
Bruce Momjian's avatar
Bruce Momjian committed
Win95 port, use GNU port or remove it?
Marc G. Fournier's avatar
Marc G. Fournier committed
Merge i386_solaris and sparc_solaris into solaris
Bruce Momjian's avatar
Bruce Momjian committed
Switch from PORTNAME to individual feature defines (use configure/autoconf?)
Bruce Momjian's avatar
Bruce Momjian committed
Change c.h "Index" and "bool" so they do not conflict with c++


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

			CHANGES IN 6.0 RELEASE


Restructured object file generation/location(Bryan, Marc)
Restructured port-specific file locations(Bryan, Marc)
Makefile restructuring(Bryan, Marc)
all functions now have prototypes that are compared against the calls
unused/uninialized variables corrected
gcc -Wall compiles cleanly with warnings only from unfixable constructs
major include file reorganization/reduction(Marc)
reduced the number of #define's, centeralized #define's
removed many os-specific #define's
fixed a few small memory leaks
removed duplicate system oid's
overhauled parser/analyze code to properly report errors and increase speed
properly report errors when INSERT ... SELECT columns did not match
properly report errors when insert column names were not correct
minor improvements to rules system
execute lowercase function names if not found with exact case
change oid constants used in code to #define names
Memory leaks (hunt and destroy with tools like Purify(Kurt)
fix unitialized reads of memory(Kurt)
fix array over-runs of memory writes(Kurt)
Change default decimal constant representation from float4 to float8(Bruce)
Allow libpq to distinguish between text value '' and null(Bruce)
Starting quote in insert string errors(Bruce)
ALTER TABLE bug - running postgress process needs to re-read table definition
Allow non-postgres users with createdb privs to destroydb's
Prevent SELECT NULL from crashing server (Bruce)
Fix elusive btree range/non-range bug(Dan)
Remove duplicate system catalog info or report mismatches(Dan)
Remove duplicate OIDS in system tables(Dan)
Prevent postmaster from being run as root
Implement IN qualifier(Bruce)
Implement BETWEEN qualifier(Bruce)
add synonym of != for <>(Bruce)
add UNIQUE index capability(Dan)
Re-visit and fix vacuum(Vadim)
speed up vacuum(Vadim)
can't shrink tables, pg_time and pg_log(Vadim & Erich)
allow actual compression, not just reuse on the same page(Vadim)
allow vacuum to be run on one table or entire database(Bruce)
Reverse meaning of HBA masks(Bryan)
Add hostname/user level access control rather than just hostname and user
Allow restriction on who can create C functions(Bryan)
Allow installation-configuration option to auto-add all local users(Bryan)
Allow restriction on who can do backend COPY(Bryan)
allow COPY from the frontend(Bryan)
Secure Authentication of local users(Bryan)
Idend authentication of local users(Bryan)
Change debug level 2 to print queries only, changed debug heading layout(Bruce)
Reduce size of regression diffs, remove timezone name difference(Bruce)
Remove compile-time parameters to enable binary distributions(Bryan)
Merge bsdi_2_1 to bsdi(Bruce)
pg_dump(Bruce)
	allow dump of oid's
	create indexes after tables are loaded for speed
	pg_dump -d now handles NULL's properly
psql(Bruce)
	fixed problem with multiple statements on one line with multiple outputs
	changed command prompt for lines in query or in quotes
	allow backslashed, semicolons anywhere on the line
	\h and \? is now readable
	\g filename now works
	updated help syntax
	char(3) now displays as (bp)char in \d output
	return code now more accurate(Bryan?)
new config.h file(Marc, Bryan)
fix permissions on lo_export()(Bruce)
Make now stops on compile failure(Bryan)
submiting an empty query now returns empty status, not just " " query(Bruce)
several fixes for queries that crashed the backend
portability additions, including Ultrix, DG/UX, AIX, and Solaris
fix for pg_log size explosion
decoupled sparc and solaris defines(Kurt)
new options to initdb(Bryan)
allow asserts to be disabled easly from Makefile.global(Bruce)
allow "select oid,* from table"
NOTIFY fixes
PG_VERSION now set to 6.0 and used by postmaster
libpq has PQgetisnull()(Bruce)
pginterface additions for NULL values(Bruce)
fixed ALTER TABLE ... char(3) bug(Bruce)
fixed output of group acl permissions
new asserts for run-checking
name change from Postgres95 to PostgreSQL
monitor program removed
fix for hash indexes on some types like time and date
gist now included in the distrubution(Marc)
array fixes
fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z'
libpq++ improvements
Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce)
Allow GROUP BY to use alias column name(Bruce)