Skip to content
Snippets Groups Projects
TODO 11.4 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:		Mon Sep 29 22:45:43 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
THE CHANGES FOR 6.2 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
	Gerhard is Gerhard Reithofer <gerhardr@tech-edv.co.at>
Bruce Momjian's avatar
Bruce Momjian committed
	Igor is Igor <igor@sba.miami.edu>
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>
	Patrick is Patrick van Kleef <pvk@pobox.com>
Bruce Momjian's avatar
Bruce Momjian committed
	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
	Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
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)
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
COUNT on VIEW always returns zero (maybe because there is no oid for views?)
CREATE VIEW requires super-user priviledge
Bruce Momjian's avatar
Bruce Momjian committed
can lo_export()/lo_import() read/write anywhere, causing a security problem?
Bruce Momjian's avatar
Bruce Momjian committed
Tables that start with xinv confused to be large objects
Bruce Momjian's avatar
Bruce Momjian committed
Two and three dimmensional arrays display improperly, missing {}
Add GROUP BY and HAVING to INSERT INTO table SELECT * FROM table2
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
Bruce Momjian's avatar
Bruce Momjian committed
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
Marc G. Fournier's avatar
Marc G. Fournier committed

ENHANCEMENTS
------------
Bruce Momjian's avatar
Bruce Momjian committed
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
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
Marc G. Fournier's avatar
Marc G. Fournier committed
	report "Not implemented" if valid syntax is supplied
	add OUTER joins, left and right (Thomas)
Marc G. Fournier's avatar
Marc G. Fournier committed
	make VIEWs updateable where possible
	add UNIONS, INTERSECTS, SUBTRACTS
	add temporary tables
	add sql3 recursive unions
	add the concept of dataspaces
Bruce Momjian's avatar
Bruce Momjian committed
	allow conversion type casts on SELECT target fields
	add DECIMAL, NUMERIC, DOUBLE PRECISION, BIT, BIT VARYING
	 	NCHAR (as distinguished from ordinary varchar),
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
	word searches, concat,max() on text, char
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 MONEY/DECIMAL have a defined precision
Bruce Momjian's avatar
Bruce Momjian committed
Add support for tables >2G, or test current version
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)
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 tables, like:
Bruce Momjian's avatar
Bruce Momjian committed
        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
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
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
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
make large objects have their own reltype
Bruce Momjian's avatar
Bruce Momjian committed
make number of backends a config parameter, storage/sinvaladt.h:MaxBackendId
certain indexes will not shrink, i.e. oid indexes with many inserts
Bruce Momjian's avatar
Bruce Momjian committed
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
Bruce Momjian's avatar
Bruce Momjian committed
Add PAGER for psql's \dt and \d tablename
Bruce Momjian's avatar
Bruce Momjian committed

PERFORMANCE
-----------
Bruce Momjian's avatar
Bruce Momjian committed
Use indexes in ORDER BY
Allow LIKE/wildcard matches to use indexes if the wildcard character is not first
Bruce Momjian's avatar
Bruce Momjian committed
Optimizing disjunctive queries
Bruce Momjian's avatar
Bruce Momjian committed
Fix bushy-plans (Martin)
Bruce Momjian's avatar
Bruce Momjian committed
Other optimizer bugs
Is fsync use optimized?
Cache most recent query plan(s?)
Bruce Momjian's avatar
Bruce Momjian committed
Shared catalog cache, reduce lseek()'s by caching table size in shared area
Bruce Momjian's avatar
Bruce Momjian committed
Allow compression of log and meta data
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)
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
update libpq++ manual page
Marc G. Fournier's avatar
Marc G. Fournier committed

PORTABILITY
-----------
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.2 RELEASE
Bug Fixes
---------
Bruce Momjian's avatar
Bruce Momjian committed
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

Enhancements
------------
Bruce Momjian's avatar
Bruce Momjian committed
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)
SPI (Server Programming Interface) implemented to support triggers(Vadim)
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)
Bruce Momjian's avatar
Bruce Momjian committed
Source Tree Changes
-------------------
Bruce Momjian's avatar
Bruce Momjian committed
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)