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
|
1997-01-29 08:26:59 +03:00
|
|
|
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
|
1997-01-29 08:26:59 +03:00
|
|
|
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
|
1997-01-29 08:26:59 +03:00
|
|
|
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)
|
1997-01-29 08:26:59 +03:00
|
|
|
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)
|
1997-01-29 08:26:59 +03:00
|
|
|
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)
|
1997-01-29 08:26:59 +03:00
|
|
|
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)
|
1997-01-29 08:26:59 +03:00
|
|
|
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
|