postgres/doc/TODO

274 lines
12 KiB
Plaintext
Raw Normal View History

1996-10-04 19:15:24 +04:00
====================================================
1996-12-27 01:15:15 +03:00
TODO list (FAQ) for PostgreSQL
1996-10-04 19:15:24 +04:00
====================================================
1997-03-02 05:40:01 +03:00
last updated: Sat Mar 1 21:28:10 EST 1997
1996-08-19 02:14:33 +04:00
current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
1996-10-04 19:15:24 +04:00
The most recent version of this document can be viewed at
1996-12-27 01:15:15 +03:00
the postgreSQL WWW site, http://www.postgreSQL.org.
1996-10-04 19:15:24 +04:00
1996-12-27 01:15:15 +03:00
Changes included in the 6.0 release are listed at the end of this page.
Dashed items(-) are being worked on for the post-6.0 release.
Developers who have claimed items are:
Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
Bryan is Bryan Henderson<bryanh@giraffe.netgate.net>
Dan is Dan McGuirk <mcguirk@indirect.com>
1997-03-02 05:40:01 +03:00
Daniel is Daniel Kalchev <daniel@digsys.bg>
1996-12-27 01:15:15 +03:00
Darren is Darren King <darrenk@insightdist.com>
Edmund is Edmund Mergl <E.Mergl@bawue.de>
Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com>
Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de>
1997-01-03 18:50:08 +03:00
Thomas is Thomas Lockhart <tgl@mythos.jpl.nasa.gov>
1996-12-27 01:15:15 +03:00
Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>
Vivek is Vivek Khera <khera@kci.kciLink.com>
1996-08-19 02:14:33 +04:00
RELIABILITY
-----------
1996-12-27 01:15:15 +03:00
-Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup(Erich)
-Overhaul bufmgr/lockmgr/transaction manager(Vadim)
remove -S (stable memory) option or fix memory manager
Fix CLUSTER
1996-08-19 02:14:33 +04:00
Fix all NULL features
1996-10-04 19:15:24 +04:00
allow psql to print nulls meaningfully
1997-03-02 05:40:01 +03:00
Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?)
1996-10-04 19:15:24 +04:00
Dropping a table twice causes corruption, drop/create not rollback-able
1997-01-03 18:50:08 +03:00
-SUM aggregate on no rows or null value should return NULL, not zero(Thomas)
1996-12-27 01:15:15 +03:00
SELECT on two tables where zero or one table in WHERE and target
1997-03-02 05:40:01 +03:00
clause returns no rows
1996-12-27 01:15:15 +03:00
COUNT on VIEW always returns zero (maybe because there is no oid for views?)
CREATE VIEW requires super-user priviledge
SELECT a[1] FROM test fails, it needs test.a[1]
INSERT INTO ... SELECT DISTINCT ... generates error on DISTINCT
pg_database.datdba is oid, should be int4
1997-03-02 05:40:01 +03:00
fix array diffs in regression test
can lo_export()/lo_import() read/write anywhere, causing a security problem?
SELECT ... INTO TABLE ... with varchar()/char() types have zero-length fields
Fix UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab'
1996-08-19 02:14:33 +04:00
ENHANCEMENTS
------------
1996-12-27 01:15:15 +03:00
Add full ANSI SQL capabilities
1996-10-04 19:15:24 +04:00
add subselects, possibility using temporary SQL functions
Implement HAVING clause
Implement EXISTS qualifier
column constraints (using rules), PRIMARY KEY during table creation
1996-10-04 19:15:24 +04:00
add DEFAULT, RESTRAINT, and CHECK capabilities
1996-08-19 02:14:33 +04:00
report "Not implemented" if valid syntax is supplied
add NOT NULL to CREATE statement
1996-10-04 19:15:24 +04:00
add OUTER joins, left and right
1996-08-19 02:14:33 +04:00
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
1997-03-02 05:40:01 +03:00
allow conversion type casts on SELECT target fields
1996-08-19 02:14:33 +04:00
Allow compression of large fields or a compressed field type
1996-12-27 01:15:15 +03:00
Fix the rules system(Jan?)
1996-08-19 02:14:33 +04:00
robust
making INSTEAD rules work
1996-12-27 01:15:15 +03:00
add CONSTRAINT
1996-08-19 02:14:33 +04:00
Full set of text operations and functions
word searches, concat, upper/lower(), max() on text, char
1996-12-27 01:15:15 +03:00
Replace table-level locking with row or page-level locking(Vadim)
1996-08-19 02:14:33 +04:00
Large objects
overwriting blocks has problems
there are other problems, too.
1996-10-04 19:15:24 +04:00
Fix large object mapping scheme
not to stuff everything as files in a single directory
1996-08-19 02:14:33 +04:00
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
1996-12-27 01:15:15 +03:00
Add MONEY/DECIMAL type with defined precision
1996-08-19 02:14:33 +04:00
Add table comments
1996-12-27 01:15:15 +03:00
Add support for tables >2G, or test current version
Incorporate the PERL PG95 interface library into source tree(Edmund)
1996-08-19 02:14:33 +04:00
Threaded version of the server or libpq
1996-10-04 19:15:24 +04:00
Allow libpq to cancel query requests
1996-08-19 02:14:33 +04:00
Add REGEX internationalization
1996-10-04 19:15:24 +04:00
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.
1997-03-02 05:40:01 +03:00
remove time-travel feature(Vadim)
reduce system column overhead(Vadmin)
remove pg_time table(Vadim)
allow row re-use without vacuum, maybe?(Vadim)
split apart row removal function from statistics function
can't vacuum large objects
1996-12-27 01:15:15 +03:00
Remove restriction that ORDER BY field must be in SELECT list(?)
1996-10-04 19:15:24 +04:00
Allow queries about owner of datbases, tables like:
SELECT u.usesysid FROM postgres.pg_user u;
1996-12-27 01:15:15 +03:00
DROP AGGREGATE should take in basetype as an arg(Darren)
1996-10-04 19:15:24 +04:00
Add word index for text fields, maybe with trigrams, i.e.:
' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox
1997-03-02 05:40:01 +03:00
-Add common-sense constant type promotions(Bruce)
1996-10-04 19:15:24 +04:00
Allow readline-type or editor command editing of multi-line SQL commands
1997-03-02 05:40:01 +03:00
-Allow pg_dump to dump all databases at a site in one command(Bruce)
1996-12-27 01:15:15 +03:00
Populate backend status area and write program to dump status data
Add ALTER TABLE DROP COLUMN feature
Remove stale files upon startup(Vivek)
Add command to show privileges
Allow INSERT INTO ... SELECT to convert column types
Add syslog functionality
Allow aggregate for All types, like count(Darren)
Improve optimizer plan choice(Darren)
Add STDDEV/VARIANCE() function for standard deviation computation/variance
Add upper/lower functions
1997-03-02 05:40:01 +03:00
Add table/column/function discription table indexed by oid
1996-12-27 01:15:15 +03:00
-make all identifiers case-insensitive(Bruce)
1997-01-03 18:50:08 +03:00
add pg_type attribute to identify types that need length (bpchar, varchar)
add UNIQUE capability to non-btree indexes
1997-03-02 05:40:01 +03:00
allow GROUP BY on columns that are functions
add non-ascii collating strings with strcoll() and setlocale()
new DATE routines (Thomas)
1996-10-04 19:15:24 +04:00
PERFORMANCE
-----------
Optimizing disjunctive queries
1996-12-27 01:15:15 +03:00
-Add Genetic Query Optimzation for many tables (Martin)
-Fix bushy-plans (Martin)
1996-10-04 19:15:24 +04:00
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
1997-03-02 05:40:01 +03:00
-Speed up hash creation by using btree's fast sort/insert routines(done)
1996-10-04 19:15:24 +04:00
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
1996-12-27 01:15:15 +03:00
Add FILLFACTOR to index creation
1997-03-02 05:40:01 +03:00
Allow indexes to be used with OR clauses(Vadim)
1996-12-27 01:15:15 +03:00
-Add column optimization statistics to vacuum(Bruce)
-Change pg_attribute.attnvals name to attdispursion and change type float4
1997-01-03 18:50:08 +03:00
update pg_statistic table to remove operator column
1996-08-19 02:14:33 +04:00
DOCUMENTATION
-------------
Update usermanual source
1996-12-27 01:15:15 +03:00
remove time-travel in documentation(Bruce)
added features used in grammer but not in docs, like :: and CAST
1997-03-02 05:40:01 +03:00
add DECLARE manual page
1996-08-19 02:14:33 +04:00
PORTABILITY
-----------
1996-12-27 01:15:15 +03:00
Change c.h "Index" and "bool" so they do not conflict with c++
---------------------------------------------------------------------------
CHANGES IN 6.0 RELEASE
1996-12-28 05:01:58 +03:00
Bug Fixes
---------
1996-12-27 01:15:15 +03:00
ALTER TABLE bug - running postgress process needs to re-read table definition
1996-12-28 05:01:58 +03:00
Allow vacuum to be run on one table or entire database(Bruce)
Array fixes
Fix array over-runs of memory writes(Kurt)
1996-12-27 01:15:15 +03:00
Fix elusive btree range/non-range bug(Dan)
1996-12-28 05:01:58 +03:00
Fix for hash indexes on some types like time and date
Fix for pg_log size explosion
Fix permissions on lo_export()(Bruce)
Fix unitialized reads of memory(Kurt)
Fixed ALTER TABLE ... char(3) bug(Bruce)
Fixed a few small memory leaks
1997-01-03 18:50:08 +03:00
Fixed EXPLAIN handling of options and changed full_path option name
1996-12-28 05:01:58 +03:00
Fixed output of group acl permissions
Memory leaks (hunt and destroy with tools like Purify(Kurt)
Minor improvements to rules system
NOTIFY fixes
New asserts for run-checking
Overhauled parser/analyze code to properly report errors and increase speed
Pg_dump -d now handles NULL's properly(Bruce)
Prevent SELECT NULL from crashing server (Bruce)
Properly report errors when INSERT ... SELECT columns did not match
Properly report errors when insert column names were not correct
Psql \g filename now works(Bruce)
Psql fixed problem with multiple statements on one line with multiple outputs
Removed duplicate system oid's
1997-01-03 18:50:08 +03:00
SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table exists(Bruce)
1996-12-28 05:01:58 +03:00
Several fixes for queries that crashed the backend
Starting quote in insert string errors(Bruce)
Submiting an empty query now returns empty status, not just " " query(Bruce)
Enhancements
------------
1997-01-03 18:50:08 +03:00
Add EXPLAIN manual page(Bruce)
1996-12-28 05:01:58 +03:00
Add UNIQUE index capability(Dan)
1996-12-27 01:15:15 +03:00
Add hostname/user level access control rather than just hostname and user
1996-12-28 05:01:58 +03:00
Add synonym of != for <>(Bruce)
Allow "select oid,* from table"
Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce)
Allow COPY from the frontend(Bryan)
Allow GROUP BY to use alias column name(Bruce)
Allow actual compression, not just reuse on the same page(Vadim)
1996-12-27 01:15:15 +03:00
Allow installation-configuration option to auto-add all local users(Bryan)
1996-12-28 05:01:58 +03:00
Allow libpq to distinguish between text value '' and null(Bruce)
Allow non-postgres users with createdb privs to destroydb's
Allow restriction on who can create C functions(Bryan)
1996-12-27 01:15:15 +03:00
Allow restriction on who can do backend COPY(Bryan)
1997-03-02 05:40:01 +03:00
Allow system to use oid index using constant without cast to oid(Bruce)
Auto-cast numeric constants to type of non-constant(Bruce)
1996-12-28 05:01:58 +03:00
Can shrink tables, pg_time and pg_log(Vadim & Erich)
1996-12-27 01:15:15 +03:00
Change debug level 2 to print queries only, changed debug heading layout(Bruce)
1996-12-28 05:01:58 +03:00
Change default decimal constant representation from float4 to float8(Bruce)
European date format now set when postmaster is started
1996-12-28 05:01:58 +03:00
Execute lowercase function names if not found with exact case
Fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z'
Gist now included in the distrubution(Marc)
Idend authentication of local users(Bryan)
Implement BETWEEN qualifier(Bruce)
Implement IN qualifier(Bruce)
Libpq has PQgetisnull()(Bruce)
Libpq++ improvements
New options to initdb(Bryan)
Pg_dump allow dump of oid's(Bruce)
Pg_dump create indexes after tables are loaded for speed(Bruce)
Pg_dumpall dumps all databases, and the user table
1996-12-28 05:01:58 +03:00
Pginterface additions for NULL values(Bruce)
Prevent postmaster from being run as root
Psql \h and \? is now readable(Bruce)
Psql allow backslashed, semicolons anywhere on the line(Bruce)
Psql changed command prompt for lines in query or in quotes(Bruce)
Psql char(3) now displays as (bp)char in \d output(Bruce)
Psql return code now more accurate(Bryan?)
Psql updated help syntax(Bruce)
Re-visit and fix vacuum(Vadim)
1996-12-27 01:15:15 +03:00
Reduce size of regression diffs, remove timezone name difference(Bruce)
Remove compile-time parameters to enable binary distributions(Bryan)
1996-12-28 05:01:58 +03:00
Reverse meaning of HBA masks(Bryan)
Secure Authentication of local users(Bryan)
Speed up vacuum(Vadim)
Vacuum now had VERBOSE option(Bruce)
1996-12-28 05:01:58 +03:00
Source tree changes
-------------------
All functions now have prototypes that are compared against the calls
Allow asserts to be disabled easly from Makefile.global(Bruce)
Change oid constants used in code to #define names
Decoupled sparc and solaris defines(Kurt)
Gcc -Wall compiles cleanly with warnings only from unfixable constructs
Major include file reorganization/reduction(Marc)
1996-12-27 01:15:15 +03:00
Make now stops on compile failure(Bryan)
1996-12-28 05:01:58 +03:00
Makefile restructuring(Bryan, Marc)
Merge bsdi_2_1 to bsdi(Bruce)
Monitor program removed
Name change from Postgres95 to PostgreSQL
New config.h file(Marc, Bryan)
1996-12-27 01:15:15 +03:00
PG_VERSION now set to 6.0 and used by postmaster
1996-12-28 05:01:58 +03:00
Portability additions, including Ultrix, DG/UX, AIX, and Solaris
Reduced the number of #define's, centeralized #define's
Remove duplicate OIDS in system tables(Dan)
Remove duplicate system catalog info or report mismatches(Dan)
Removed many os-specific #define's
Restructured object file generation/location(Bryan, Marc)
Restructured port-specific file locations(Bryan, Marc)
Unused/uninialized variables corrected