Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

TODO

Blame
  • TODO 12.54 KiB
    TODO list for PostgreSQL
    ========================
    Last updated:		Tue Oct  5 11:50:32 EDT 1999
    
    Current maintainer:	Bruce Momjian (maillist@candle.pha.pa.us)
    
    The most recent version of this document can be viewed at
    the PostgreSQL web site, http://www.PostgreSQL.org.
    
    A dash(-) marks changes that will appear in the next release.
    
    Names in brackets "[]" indicate more detailed information is available in
    the directory pgsql/doc/TODO.detail/ under that name.
    
    
    RELIABILITY
    -----------
    
    RESOURCES
    
    * Elog() does not free all its memory(Jan)
    * spinlock stuck problem when elog(FATAL) and elog(ERROR) inside bufmgr
    * Recover or force failure when disk space is exhausted
    
    PARSER
    
    * Disallow inherited columns with the same name as new columns
    * INSERT INTO ... SELECT with AS columns matching result columns problem
    * SELECT pg_class FROM pg_class generates strange error
    * Alter TABLE ADD COLUMN does not honor DEFAULT, add CONSTRAINT
    * Do not allow bpchar column creation without length
    * -Select a[1] FROM test fails, it needs test.a[1]
    * -Array index references without table name cause problems [array]
    * Update table SET table.value = 3 fails(SQL standard says this is OK)
    * Creating index of TIMESTAMP & RELTIME fails, or rename to DATETIME(Thomas)
    * SELECT foo UNION SELECT foo is incorrectly simplified to SELECT foo
    * -INSERT ... SELECT ... GROUP BY groups by target columns not source columns
    * -CREATE TABLE test (a char(5) DEFAULT text '', b int4) fails on INSERT
    * UNION with LIMIT fails
    * Unique index on base column not honored on inserts from inherited table
      INSERT INTO inherit_table (unique_index_col) VALUES (dup) should fail
      [inherit] 
    * CREATE TABLE x AS SELECT 1 UNION SELECT 2 fails
    * CREATE TABLE test(col char(2) DEFAULT user) fails in length restriction
    * mismatched types in CREATE TABLE ... DEFAULT causes problems [default]
    * SELECT ... UNION ... ORDER BY fails when sort expr not in result list
    * Be smarter about promoting types when UNION merges different data types
    * SELECT ... UNION ... GROUP BY fails if column types disagree
    * redesign INSERT ... SELECT to have two levels of target list
    * -select * from pg_class where oid in (0,-1)
    * have INTERSECT/EXCEPT prevent duplicates unless ALL is specified
    * prevent primary key of nine columns [primary]
    * SELECT COUNT('asdf') FROM pg_class WHERE oid=12 crashes
    * SELECT DISTINCT ON col1 col1 col2 FROM tab1 is broken [distinct]
    * -When using aggregates + GROUP BY, no rows in should yield no rows out
    
    VIEWS
    
    * Views containing aggregates sometimes fail(Jan)
    * Views with spaces in view name fail when referenced
    * Creating view and inheriting the view causes view* to show
      duplicates(inherit) 
    
    MISC
    
    * User who can create databases can modify pg_database table
    * Plpgsql does not handle quoted mixed-case identifiers
    * Fix btree to give a useful elog when key > 1/2 (page - overhead)
    * pg_dump should preserve primary key information
    * plpgsql regression tests fail on BSD/OS
    * line containing only comment fails in direct backend connection
    
    ENHANCEMENTS
    ------------
    
    URGENT
    
    * Add referential integrity(Jan?)[primary]
    * Add OUTER joins, left and right[outer](Thomas, Bruce)
    * Allow long tuples by chaining or auto-storing outside db (chaining,large objs)
    * Eliminate limits on query length
    * Fix memory leak for expressions?[memory](Tom?) 
    * -Fix memory leak for aggregates?
    
    ADMIN
    
    * Better interface for adding to pg_group
    * More access control over who can create tables and access the database
    * Test syslog functionality
    * Allow elog() to return error codes, not just messages
    * Allow international error message support and add error codes
    * Generate postmaster pid file and remove flock/fcntl lock code [flock]
    * Add ability to specifiy location of lock/socket files [flock]
    
    TYPES
    
    * Add BIT, BIT VARYING
    * Nchar (as distinguished from ordinary varchar),
    * Domain capability
    * Add STDDEV/VARIANCE() function for standard deviation computation/variance
    * Allow compression of large fields or a compressed field type
    * Large objects
    	o Fix large object mapping scheme, own typeid or reltype(Peter)
    	o Allow large text type to use large objects(Peter)
    	o Not to stuff everything as files in a single directory, hash dirs
    	o Allow large object vacuuming
    	o Tables that start with xinv confused to be large objects
    * Allow pg_descriptions when creating types, tables, columns, and functions
    * Add IPv6 capability to INET/CIDR types
    * Make a separate SERIAL type?
    * Store binary-compatible type information in the system
    * Allow user to define char1 column
    * Add support for & operator
    * Allow LOCALE on a per-column basis, default to ASCII
    * Allow array on int8[]
    * Allow nulls in arrays
    * Allow arrays to be ORDER'ed
    * Remove Money type, add money formatting for decimal type
    * Declare typein/out functions in pg_proc with a special "C string" data type
    * Add non-large-object binary field
    * -Add index on NUMERIC/DECIMAL type
    * Make Absolutetime/Relativetime int4 because time_t can be int8 on some ports
    * Functions returning sets don't really work right[function]
    
    VIEWS
    
    * Allow DISTINCT on views
    * Allow views of aggregate columns
    * Allow views with subselects
    
    INDEXES
    
    * Allow CREATE INDEX zman_index ON test (date_trunc( 'day', zman ) datetime_ops)
      fails index can't store constant parameters
    * Allow creation of functional indexes to use default types
    * Permissions on indexes - prevent them?
    * Allow SQL function indexes
    * Add FILLFACTOR to index creation
    * Allow indexing of LIKE with localle character sets
    * Allow indexing of more than eight columns
    
    COMMANDS
    
    * ALTER TABLE ADD COLUMN to inherited table put column in wrong place [inherit]
    * Add ALTER TABLE DROP/ALTER COLUMN feature
    * Allow CLUSTER on all tables at once, and improve CLUSTER, loses NOT
    	NULL specification on table [cluster]
    * Add SIMILAR TO to allow character classes, 'pg_[a-c]%'
    * Auto-destroy sequence on DROP of table with SERIAL(Ryan)
    * Allow LOCK TABLE tab1, tab2, tab3 so all tables locked in unison
    * Allow INSERT/UPDATE of system-generated oid value for a row
    * Allow ESCAPE '\' at the end of LIKE for ANSI compliance [like]
    * Rewrite the LIKE handling by rewriting the user string with the 
      supplied ESCAPE [like]
    * -Move LIKE index optimization handling to the optimizer
    * Allow RULE recompilation
    * Support UNION/INTERSECT/EXCEPT in sub-selects
    * Allow DELETE and UPDATE to use inheritance using tablename*
      
    CLIENTS
    
    * Make NULL's come out at the beginning or end depending on the 
      ORDER BY direction
    * Allow flag to control COPY input/output of NULLs
    * Update reltuples from COPY command
    * Allow psql \copy to allow delimiters
    * Add a function to return the last inserted oid, for use in psql scripts
    * Allow psql to print nulls as distinct from "" [null]
    
    EXOTIC FEATURES
    
    * Add sql3 recursive unions
    * Add the concept of dataspaces
    * Add replication of distributed databases
    * Allow queries across multiple databases
    * Allow nested transactions
    
    MISC
    
    * Increase identifier length(NAMEDATALEN) if small performance hit
    * Allow row re-use without vacuum(Vadim)
    * Create a background process for each database that runs while
      database is idle, finding superceeded rows, gathering stats and vacuuming
    * Add UNIQUE capability to non-btree indexes
    * -Certain indexes will not shrink, i.e. oid indexes with many inserts
    * Restore unused oid's on backend exit if no one else has gotten oids
    * Have UPDATE/DELETE clean out indexes
    * Allow WHERE restriction on ctid
    * Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions
    * Allow PQrequestCancel() to terminate when in waiting-for-lock state
    * -Transaction log, so re-do log can be on a separate disk by
      with after-row images(Vadim) [logging]
    * Populate backend status area and write program to dump status data
    * Make oid use unsigned int more reliably, pg_atoi()
    * Allow subqueries in target list
    * Put sort files, large objects in their own directory
    * Do autocommit so always in a transaction block(?)
    * Show location of syntax error in query [yacc]
    * Redesign the function call interface to handle NULLs better [function]
    * Document/trigger/rule so changes to pg_shadow recreate pg_pwd [pg_shadow]
    * Missing optimizer selectivities for date, r-tree, etc. [optimizer]
    * Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
    * Overhaul bufmgr/lockmgr/transaction manager
    * Add PL/Perl(Mark Hollomon)
    * Make postgres user have a password by default
    * Add configure test to check for C++ need for *.h and namespaces
    * Allow BLCKSZ <= 64k, not <= 32k
    * redesign UNION structures to have separarate target lists
    * Allow multi-level query trees for INSERT INTO ... SELECT
    
    PERFORMANCE
    -----------
    
    FSYNC
    
    * -Allow transaction commits with rollback with no-fsync performance [fsync]
    * -Prevent fsync in SELECT-only queries
    
    INDEXES
    
    * Use indexes in ORDER BY for restrictive data sets, min(), max()
    * Pull requested data directly from indexes, bypassing heap data
    * Use index to restrict rows returned by multi-key index when used with
      non-consecutive keys or OR clauses, so fewer heap accesses
    * -Convert function(constant) into a constant for index use
    * Allow LIMIT ability on single-table queries that have no ORDER BY to use
      a matching index [limit]
    * Improve LIMIT processing by using index to limit rows processed [limit]
    * Have optimizer take LIMIT into account when considering index scans [limit]
    * Make index creation use psort code, because it is now faster(Vadim)
    * Allow creation of sort temp tables > 1 Gig
    * Create more system table indexes for faster cache lookups
    * fix indexscan() so it does leak memory by not requiring caller to free
    * Improve _bt_binsrch() to handle equal keys better, remove _bt_firsteq()(Tom)
    * Allow SELECT * FROM tab WHERE int2col = 4 use int2col index, int8,
      float4, numeric/decimal too [optimizer]
    * -Allow optimizer to prefer plans that match ORDER BY
    
    CACHE
    
    * Cache most recent query plan(s) [prepare]
    * Shared catalog cache, reduce lseek()'s by caching table size in shared area
    * elog() flushes cache, try invalidating just entries from current xact,
      perhaps using invalidation cache
    
    
    MISC
    
    * Allow compression of log and meta data
    * Allow char() not to use variable-sized header to reduce disk size
    * Do async I/O to do better read-ahead of data
    * -Fix memory exhaustion when using many OR's [cnfify]
    * Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca>
      when it is available
    * Use mmap() rather than SYSV shared memory(?)
    * -Process const = const parts of OR clause in separate pass
    * Make oid use oidin/oidout not int4in/int4out in pg_type.h
    * Improve Subplan list handling
    * Allow Subplans to use efficient joins(hash, merge) with upper variable
      [subquery]
    * use fmgr_info()/fmgr_faddr() instead of fmgr() calls in high-traffic
      places, like GROUP BY, UNIQUE, index processing, etc.
    * improve dynamic memory allocation by introducing tuple-context memory
      allocation [memory]
    * fix memory leak in cache code when non-existant table is referenced
    * In WHERE tab1.x=3 AND tab1.x=tab2.y, add tab2.y=3
    * pass atttypmod through parser in more cases [atttypmod]
    * remove duplicate type in/out functions for disk and net
    * Allow persistent backends [persistent]
    * Misc [performance]
    
    SOURCE CODE
    -----------
    * Add use of 'const' for varibles in source tree
    * Fix C optimizer problem where fmgr_ptr calls return different types [alpha]
    * -Add needed includes and removed unneeded include files(Bruce)
    * Make configure --enable-debug add -g on compile line
    * Does Mariposa source contain any other bug fixes?
    * Remove SET KSQO option if OR processing is improved(Tom)
    
    ---------------------------------------------------------------------------
    
    
    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>
    	* David is David Hartwig <daveh@insightdist.com>
    	* Edmund is Edmund Mergl <E.Mergl@bawue.de>
    	* Goran is Goran Thyni <goran@kyla.kiruna.se>
    	* Hiroshi is Hiroshi Inoue<Inoue@tpf.co.jp>
    	* Jan is Jan Wieck <wieck@sapserv.debis.de>
     	* Marc is Marc Fournier <scrappy@hub.org>
    	* Massimo Dal Zotto <dz@cs.unitn.it>
    	* Michael is Michael Meskes <meskes@postgresql.org>
    	* Oleg is Oleg Bartunov <oleg@sai.msu.su>
    	* Peter is Peter T Mount <peter@retep.org.uk>
    	* Ryan is Ryan Bradetich <rbrad@hpb50023.boi.hp.com>
    	* Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at>
    	* Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
    	* Tom is Tom Lane <tgl@sss.pgh.pa.us>
    	* Thomas is Thomas Lockhart <lockhart@alumni.caltech.edu>
    	* TomH is Tom I Helbekkmo <tih@Hamartun.Priv.NO>
    	* Vadim is "Vadim B. Mikheev" <vadim@krs.ru>