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