==================================================== TODO list (FAQ) for Postgres95 ==================================================== last updated: Thu Oct 3 17:59:06 EDT 1996 current maintainer: Bruce Momjian (maillist@candle.pha.pa.us) The most recent version of this document can be viewed at the postgres95 WWW site, http://www.ki.net/postgres95. Dashed items(-) are being worked on or are ready for the 2.0 release. RELIABILITY ----------- -Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup -Overhaul bufmgr/lockmgr/transaction manager - remove -S (stable memory) option or fix memory manager -Memory leaks (hunt and destroy with tools like Purify) - fix unitialized reads of memory - fix array over-runs of memory writes -Fix CLUSTER -Prevent improper index creation -Change default decimal constant representation from float4 to float8 -Allow libpq to distinguish between text value '' and null - using null bitmask returned from backend? Fix all NULL features allow psql to print nulls meaningfully -Starting quote in insert string errors ALTER TABLE bug - running postgress process needs to re-read table definition Allow non-postgres users with createdb privs to destroydb's Prevent SELECT NULL from crashing server (error on first attempt, crash after another query) -Fix elusive btree range/non-range bug -Remove duplicate system catalog info or report mismatches Fix compile and security of Kerberos V code -Remove duplicate OIDS in system tables Dropping a table twice causes corruption, drop/create not rollback-able Change index creation to process deleted and current rows ENHANCEMENTS ------------ Add full ANSI SQL capabilities ( a vendor has offered to help) add subselects, possibility using temporary SQL functions Implement HAVING clause Implement IN qualifier Implement EXISTS qualifier Implement BETWEEN qualifier add synonym of != for <> column constraints (using rules), esp. primary keys add DEFAULT, RESTRAINT, and CHECK capabilities -add UNIQUE index capability report "Not implemented" if valid syntax is supplied add OUTER joins, left and right make VIEWs updateable where possible add UNIONS, INTERSECTS, SUBTRACTS add temporary tables add assertions add domains add sql3 recursive unions add the concept of dataspaces allow conversion type casts on select target fields Allow compression of large fields or a compressed field type Fix the rules system robust making INSTEAD rules work Full set of text operations and functions word searches, concat, upper/lower(), max() on text, char -Replace table-level locking with row or page-level locking Large objects overwriting blocks has problems there are other problems, too. Fix large object mapping scheme not to stuff everything as files in a single directory Better interface for adding to pg_group Make multi-field indexes easier to create allow optimizer to effectively use parameters without accessing table Add int8 type Add table comments Add support for tables >2G Incorporate the PERL PG95 interface library into source tree Threaded version of the server or libpq Allow libpq to cancel query requests Add REGEX internationalization 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. -Re-visit and fix vacuum - can't vacuum large objects - can't shrink tables, pg_time and pg_log - allow actual compression, not just reuse on the same page - allow vacuum to be run on one table or entire database split apart row removal function from statistics function allow time-travel to be turned off so superceeded/deleted row are reused -Reverse meaning of HBA masks Add hostname/user level access control rather than just hostname and user Allow BY,ORDER BY to specify columns by number, or by non-alias table.column Allow GROUP BY to use alias column name Remove restriction that ORDER BY field must be in SELECT list? Allow queries about owner of datbases, tables like: SELECT u.usesysid FROM postgres.pg_user u; DROP AGGREGATE should take in basetype as an arg Add word index for text fields, maybe with trigrams, i.e.: ' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox Add common-sense constant type promotions -Allow uppercase agregates by lowercasing function names on input Allow readline-type or editor command editing of multi-line SQL commands Allow pg_dump to dump all databases at a site in one command -Allow restriction on who can create C functions Allow restriction on who can create copy tables -Allow installation-configuration option to auto-add all local users Allow function result to be used in GROUP BY -Fontend COPY -Secure Authentication of local users -Idend authentication of local users PERFORMANCE ----------- Optimizing disjunctive queries Other optimizer bugs Is fsync use optimized? Multi-representational types, a la Illustra. For example, have a text type that is stored in-tuple when less than 8K and in large objects, when greater than 8K. Use indexes in ORDER BY Profile engine in INSERT's and other operations Speed up hash creation by using btree's fast sort/insert routines Cache most recent query plan(s?) Allow compression of log and meta data Allow LIKE/wildcard matches to use indexes if the wildcard character is not first DOCUMENTATION ------------- Update usermanual source Reduce size of regression diffs PORTABILITY ----------- Windows NT port Mariposa project at Berkeley has a person who's working on this Win95 port, use GNU port or remove it? Binary distributions for linux Merge bsdi_2_1 to bsdi Merge i386_solaris and sparc_solaris into solaris Switch from PORTNAME to individual feature defines (use configure/autoconf?)