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-10-02 22:17:56 +04:00
|
|
|
last updated: Thu Oct 2 14:08:20 EDT 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
|
|
|
|
1997-09-30 07:01:39 +04:00
|
|
|
THE CHANGES FOR 6.2 APPEAR AT THE END OF THIS DOCUMENT
|
1996-12-27 01:15:15 +03:00
|
|
|
|
|
|
|
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>
|
1997-07-14 00:00:14 +04:00
|
|
|
Gerhard is Gerhard Reithofer <gerhardr@tech-edv.co.at>
|
1997-06-04 00:29:57 +04:00
|
|
|
Igor is Igor <igor@sba.miami.edu>
|
1997-05-14 07:20:26 +04:00
|
|
|
Jun is Jun Kuwamura <juk@rccm.co.jp>
|
1996-12-27 01:15:15 +03:00
|
|
|
Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com>
|
|
|
|
Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de>
|
1997-05-14 07:20:26 +04:00
|
|
|
Oleg is Oleg Bartunov <oleg@sai.msu.su>
|
|
|
|
Paul is Paul M. Aoki <aoki@CS.Berkeley.EDU>
|
1997-09-14 06:09:10 +04:00
|
|
|
Patrick is Patrick van Kleef <pvk@pobox.com>
|
1997-05-14 07:20:26 +04:00
|
|
|
Raymond is Raymond Toy <toy@rtp.ericsson.se>
|
|
|
|
Soo-Ho Ok <shok@detc.dongeui-tc.ac.kr>
|
|
|
|
Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at>
|
|
|
|
Sven is Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
|
1997-07-14 00:00:14 +04:00
|
|
|
Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
|
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)
|
|
|
|
Fix CLUSTER
|
1997-09-14 06:09:10 +04:00
|
|
|
Remove EXTEND?
|
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-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-03-02 05:40:01 +03:00
|
|
|
can lo_export()/lo_import() read/write anywhere, causing a security problem?
|
1997-06-07 22:43:50 +04:00
|
|
|
Tables that start with xinv confused to be large objects
|
1997-07-14 00:00:14 +04:00
|
|
|
Two and three dimmensional arrays display improperly, missing {}
|
|
|
|
Add GROUP BY and HAVING to INSERT INTO table SELECT * FROM table2
|
1997-09-14 06:09:10 +04:00
|
|
|
lo_unlink() crashes server
|
|
|
|
Allow variable casts with BETWEEN 'today'::asbtime AND 'today'::abstime
|
|
|
|
Prevent auto-table reference, like SELECT table.col WHERE col = 3 (?)
|
|
|
|
Remove un-needed malloc() calls and replace with palloc().
|
|
|
|
SELECT * FROM table WHERE int4_column = '1' fails
|
1997-09-30 07:01:39 +04:00
|
|
|
SELECT a[1] FROM test fails, it needs test.a[1]
|
|
|
|
SELECT COUNT(*) FROM TAB1, TAB2 fails
|
|
|
|
SELECT SUM(2+2) FROM table dumps core
|
|
|
|
UPDATE table SET table.value = 3 fails
|
|
|
|
UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab' fails
|
|
|
|
INSERT INTO ... SELECT DISTINCT ... generates error on DISTINCT
|
|
|
|
INSERT INTO table SELECT id, count(*) FROM table2 GROUP BY id generate error
|
1996-08-19 02:14:33 +04:00
|
|
|
|
|
|
|
ENHANCEMENTS
|
|
|
|
------------
|
1997-09-30 07:01:39 +04:00
|
|
|
Replace table-level locking with row or page-level locking(Vadim)
|
|
|
|
PRIMARY KEY during table creation
|
|
|
|
Add SERIAL type
|
|
|
|
Preserve GRANT/REVOKE/pg_group in pg_dump
|
|
|
|
Transaction log
|
1997-05-14 07:20:26 +04:00
|
|
|
Add full ANSI SQL capabilities (Stefan)
|
1996-10-04 19:15:24 +04:00
|
|
|
add subselects, possibility using temporary SQL functions
|
|
|
|
Implement HAVING clause
|
|
|
|
Implement EXISTS qualifier
|
1996-08-19 02:14:33 +04:00
|
|
|
report "Not implemented" if valid syntax is supplied
|
1997-09-14 06:09:10 +04:00
|
|
|
add OUTER joins, left and right (Thomas)
|
1996-08-19 02:14:33 +04:00
|
|
|
make VIEWs updateable where possible
|
|
|
|
add UNIONS, INTERSECTS, SUBTRACTS
|
|
|
|
add temporary tables
|
|
|
|
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
|
1997-09-14 06:09:10 +04:00
|
|
|
add DECIMAL, NUMERIC, DOUBLE PRECISION, BIT, BIT VARYING
|
|
|
|
NCHAR (as distinguished from ordinary varchar),
|
1996-08-19 02:14:33 +04:00
|
|
|
Allow compression of large fields or a compressed field type
|
1997-05-14 07:20:26 +04:00
|
|
|
Fix the rules system(Jan?,Soo-Ho)
|
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
|
1997-05-14 07:20:26 +04:00
|
|
|
word searches, concat,max() on text, char
|
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
|
1997-05-14 07:20:26 +04:00
|
|
|
Make MONEY/DECIMAL have a defined precision
|
1996-12-27 01:15:15 +03:00
|
|
|
Add support for tables >2G, or test current version
|
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)
|
|
|
|
can't vacuum large objects
|
1997-05-14 07:20:26 +04:00
|
|
|
can't reduce index file size with vacuum
|
1996-12-27 01:15:15 +03:00
|
|
|
Remove restriction that ORDER BY field must be in SELECT list(?)
|
1997-09-30 07:01:39 +04:00
|
|
|
Allow queries about owner of tables, like:
|
1996-10-04 19:15:24 +04:00
|
|
|
SELECT u.usesysid FROM postgres.pg_user u;
|
|
|
|
Add word index for text fields, maybe with trigrams, i.e.:
|
|
|
|
' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox
|
|
|
|
Allow readline-type or editor command editing of multi-line SQL commands
|
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
|
|
|
|
Add STDDEV/VARIANCE() function for standard deviation computation/variance
|
1997-03-02 05:40:01 +03:00
|
|
|
Add table/column/function discription table indexed by oid
|
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-06-07 22:43:50 +04:00
|
|
|
make large objects have their own reltype
|
1997-06-11 18:57:39 +04:00
|
|
|
make number of backends a config parameter, storage/sinvaladt.h:MaxBackendId
|
|
|
|
certain indexes will not shrink, i.e. oid indexes with many inserts
|
1997-07-14 00:00:14 +04:00
|
|
|
make NULL's come out at the beginning or end depending on the ORDER BY direction
|
|
|
|
change the library/backend interface to use network byte order
|
1997-07-22 02:29:41 +04:00
|
|
|
allow unix domain sockets for local connections for performance and security
|
1997-09-30 07:01:39 +04:00
|
|
|
Add PAGER for psql's \dt and \d tablename
|
1996-10-04 19:15:24 +04:00
|
|
|
|
|
|
|
PERFORMANCE
|
|
|
|
-----------
|
1997-09-30 07:01:39 +04:00
|
|
|
Use indexes in ORDER BY
|
|
|
|
Allow LIKE/wildcard matches to use indexes if the wildcard character is not first
|
1996-10-04 19:15:24 +04:00
|
|
|
Optimizing disjunctive queries
|
1997-06-07 22:43:50 +04:00
|
|
|
Fix bushy-plans (Martin)
|
1996-10-04 19:15:24 +04:00
|
|
|
Other optimizer bugs
|
|
|
|
Is fsync use optimized?
|
|
|
|
Cache most recent query plan(s?)
|
1997-09-30 07:01:39 +04:00
|
|
|
Shared catalog cache, reduce lseek()'s by caching table size in shared area
|
1996-10-04 19:15:24 +04:00
|
|
|
Allow compression of log and meta data
|
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)
|
1997-09-14 06:09:10 +04:00
|
|
|
update pg_statistic table to remove operator column
|
1996-08-19 02:14:33 +04:00
|
|
|
|
|
|
|
DOCUMENTATION
|
|
|
|
-------------
|
1997-05-14 07:20:26 +04:00
|
|
|
Update usermanual source(many)
|
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-07-14 00:00:14 +04:00
|
|
|
update libpq++ manual page
|
1996-08-19 02:14:33 +04:00
|
|
|
|
|
|
|
PORTABILITY
|
|
|
|
-----------
|
1997-05-14 07:20:26 +04:00
|
|
|
|
1996-12-27 01:15:15 +03:00
|
|
|
|
1997-07-14 00:00:14 +04:00
|
|
|
---------------------------------------------------------------------------
|
|
|
|
|
1997-09-30 07:01:39 +04:00
|
|
|
CHANGES IN THE 6.2 RELEASE
|
1997-10-02 22:17:56 +04:00
|
|
|
|
1997-05-15 00:18:53 +04:00
|
|
|
Bug Fixes
|
|
|
|
---------
|
1997-09-30 07:01:39 +04:00
|
|
|
Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce)
|
|
|
|
Fix compile errors on overflow due to shifts, unsigned, and bad prototypes
|
|
|
|
from Solaris(Diab Jerius)
|
|
|
|
Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas)
|
|
|
|
Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas)
|
|
|
|
Catch non-functional delete attempts(Vadim)
|
|
|
|
Change time function names to be more consistent(Michael Reifenberg)
|
|
|
|
Check for zero divides(Michael Reifenberg)
|
|
|
|
Fix very old bug which made tuples changed/inserted by a commnd
|
|
|
|
visible to the command itself (so we had multiple update of
|
|
|
|
updated tuples, etc)(Vadim)
|
|
|
|
Fix for SELECT null, 'fail' FROM pg_am (Patrick)
|
|
|
|
SELECT NULL as EMPTY_FIELD now allowed(Patrick)
|
|
|
|
Remove un-needed signal stuff from contrib/pginterface
|
1997-10-02 22:17:56 +04:00
|
|
|
Fix OR (where x <> 1 or x isnull didn't return tuples with x NULL) (Vadim)
|
|
|
|
Fix time_cmp function (Vadim)
|
|
|
|
Fix handling of functions with non-attribute first argument in
|
|
|
|
WHERE clauses (Vadim)
|
|
|
|
Fix GROUP BY when order of entries is different from order
|
|
|
|
in target list (Vadim)
|
|
|
|
Fix pg_dump for aggregates without sfunc1 (Vadim)
|
1997-05-15 00:18:53 +04:00
|
|
|
|
|
|
|
Enhancements
|
|
|
|
------------
|
1997-09-30 07:01:39 +04:00
|
|
|
Default genetic optimizer GEQO parameter is now 8(Bruce)
|
|
|
|
Allow use parameters in target list having aggregates in functions(Vadim)
|
|
|
|
Added JDBC driver as an interface(Adrian & Peter)
|
|
|
|
pg_password utility
|
|
|
|
Return number of tuples inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim)
|
|
|
|
Triggers implemented with CREATE TRIGGER (SQL3)(Vadim)
|
1997-10-02 22:17:56 +04:00
|
|
|
SPI (Server Programming Interface) allows execution of queries inside
|
|
|
|
C-functions (Vadim)
|
1997-09-30 07:01:39 +04:00
|
|
|
NOT NULL implemented (SQL92)(Robson Paniago de Miranda)
|
|
|
|
Include reserved words for string handling, outer joins, and unions(Thomas)
|
|
|
|
Implement extended comments ("/* ... */") using exclusive states(Thomas)
|
|
|
|
Add "//" single-line comments(Bruce)
|
|
|
|
Remove some restrictions on characters in operator names(Thomas)
|
|
|
|
DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas)
|
|
|
|
Add text concatenation operator and function (SQL92)(Thomas)
|
|
|
|
Support WITH TIME ZONE syntax (SQL92)(Thomas)
|
|
|
|
Support INTERVAL <unit> TO <unit> syntax (SQL92)(Thomas)
|
|
|
|
Define types DOUBLE PRECISION, INTERVAL, CHARACTER,
|
|
|
|
and CHARACTER VARYING (SQL92)(Thomas)
|
|
|
|
Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas)
|
|
|
|
Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas)
|
|
|
|
Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas)
|
|
|
|
Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas)
|
|
|
|
Add more reserved words, mostly for SQL92 compliance(Thomas)
|
|
|
|
Allow hh:mm:ss time entry for timespan/reltime types(Thomas)
|
|
|
|
Add center() routines for lseg, path, polygon(Thomas)
|
|
|
|
Add distance() routines for circle-polygon, polygon-polygon(Thomas)
|
|
|
|
Check explicitly for points and polygons contained within polygons
|
|
|
|
using an axis-crossing algorithm(Thomas)
|
|
|
|
Add routine to convert circle-box(Thomas)
|
|
|
|
Merge conflicting operators for different geometric data types(Thomas)
|
|
|
|
Replace distance operator "<===>" with "<->"(Thomas)
|
|
|
|
Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas)
|
|
|
|
Add routines for text trimming on both ends, substring, and string position(Thomas)
|
|
|
|
Added conversion routines circle(box) and poly(circle)(Thomas)
|
|
|
|
Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim)
|
|
|
|
Allow functions and operators on internally-identical types to succeed(Bruce)
|
|
|
|
Speed up backend startup after profiling analysis(Bruce)
|
|
|
|
Inline frequently called functions for performance(Bruce)
|
|
|
|
Reduce open() calls(Bruce)
|
|
|
|
psql: Add PAGER for \h and \?,\C fix
|
|
|
|
Fix for psql pager when no tty(Bruce)
|
|
|
|
New entab utility(Bruce)
|
1997-10-02 22:17:56 +04:00
|
|
|
General trigger functions for referential integrity (Vadim)
|
|
|
|
General trigger functions for time travel (Vadim)
|
|
|
|
General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim)
|
|
|
|
MOVE implementation (Vadim)
|
1996-12-28 05:01:58 +03:00
|
|
|
|
1997-09-30 07:01:39 +04:00
|
|
|
Source Tree Changes
|
1997-05-15 00:18:53 +04:00
|
|
|
-------------------
|
1997-09-30 07:01:39 +04:00
|
|
|
HPUX 10 patches (Vladimir Turin)
|
|
|
|
Added SCO support, (Daniel Harris)
|
|
|
|
mkLinux patches (Tatsuo Ishii)
|
|
|
|
Change geometric box terminology from "length" to "width"(Thomas)
|
|
|
|
Deprecate temporary unstored slope fields in geometric code(Thomas)
|
|
|
|
Remove restart instructions from INSTALL(Bruce)
|
|
|
|
Look in /usr/ucb first for install(Bruce)
|
|
|
|
Fix c++ copy example code(Thomas)
|
|
|
|
Add -o to psql manual page(Bruce)
|
|
|
|
Prevent relname unallocated string length from being copied into database(Bruce)
|
|
|
|
Cleanup for NAMEDATALEN use(Bruce)
|
|
|
|
Fix pg_proc names over 15 chars in output(Bruce)
|
|
|
|
Add strNcpy() function(Bruce)
|
|
|
|
remove some (void) casts that are unnecessary(Bruce)
|
|
|
|
new interfaces directory(Marc)
|
|
|
|
Replace fopen() calls with calls to fd.c functions(Bruce)
|
|
|
|
Make functions static where possible(Bruce)
|
|
|
|
enclose unused functions in #ifdef NOT_USED(Bruce)
|
|
|
|
Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas)
|
|
|
|
Changes for Digital Unix
|
|
|
|
Portability fix for pg_dumpall(Bruce)
|
|
|
|
Rename pg_attribute.attnvals to attdisbursion(Bruce)
|
|
|
|
"intro/unix" manual page now "pgintro"(Bruce)
|
|
|
|
"built-in" manual page now "pgbuiltin"(Bruce)
|
|
|
|
"drop" manual page now "drop_table"(Bruce)
|
|
|
|
Add "create_trigger", "drop_trigger" manual pages(Thomas)
|
|
|
|
Add constraints regression test(Vadim & Thomas)
|
|
|
|
Add comments syntax regression test(Thomas)
|
|
|
|
Add PGINDENT and support program(Bruce)
|
|
|
|
Massive commit to run PGINDENT on all *.c and *.h files(Bruce)
|
|
|
|
Files moved to /src/tools directory(Bruce)
|
1997-10-02 22:17:56 +04:00
|
|
|
SPI and Trigger programming guides (Vadim & D'Arcy)
|