11====================================================
22TODO list (FAQ) for PostgreSQL
33====================================================
4- last updated: Sat Sep 13 22:00:05 EDT 1997
4+ last updated: Mon Sep 29 22:45:43 EDT 1997
55
66current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
77
88The most recent version of this document can be viewed at
99the postgreSQL WWW site, http://www.postgreSQL.org.
1010
11- THE CHANGES FOR 6.1 and 6.1.1 APPEAR AT THE END OF THIS DOCUMENT
11+ THE CHANGES FOR 6.2 APPEAR AT THE END OF THIS DOCUMENT
1212
1313Developers who have claimed items are:
1414 Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
@@ -46,32 +46,34 @@ Fix all NULL features
4646Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?)
4747COUNT on VIEW always returns zero (maybe because there is no oid for views?)
4848CREATE VIEW requires super-user priviledge
49- SELECT a[1] FROM test fails, it needs test.a[1]
50- INSERT INTO ... SELECT DISTINCT ... generates error on DISTINCT
5149can lo_export()/lo_import() read/write anywhere, causing a security problem?
52- Fix UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab'
53- SELECT COUNT(*) FROM TAB1, TAB2 fails
5450Tables that start with xinv confused to be large objects
5551Two and three dimmensional arrays display improperly, missing {}
5652Add GROUP BY and HAVING to INSERT INTO table SELECT * FROM table2
57- Make timestamp type recognize DateStyle(Tom)
58- SELECT SUM(2+2) FROM table dumps core
5953lo_unlink() crashes server
60- UPDATE table SET table.value = 3 fails
6154Allow variable casts with BETWEEN 'today'::asbtime AND 'today'::abstime
6255Prevent auto-table reference, like SELECT table.col WHERE col = 3 (?)
6356Remove un-needed malloc() calls and replace with palloc().
6457SELECT * FROM table WHERE int4_column = '1' fails
65- Allow INSERT INTO table SELECT id, count(*) FROM table2 GROUP BY id
58+ SELECT a[1] FROM test fails, it needs test.a[1]
59+ SELECT COUNT(*) FROM TAB1, TAB2 fails
60+ SELECT SUM(2+2) FROM table dumps core
61+ UPDATE table SET table.value = 3 fails
62+ UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab' fails
63+ INSERT INTO ... SELECT DISTINCT ... generates error on DISTINCT
64+ INSERT INTO table SELECT id, count(*) FROM table2 GROUP BY id generate error
6665
6766ENHANCEMENTS
6867------------
68+ Replace table-level locking with row or page-level locking(Vadim)
69+ PRIMARY KEY during table creation
70+ Add SERIAL type
71+ Preserve GRANT/REVOKE/pg_group in pg_dump
72+ Transaction log
6973Add full ANSI SQL capabilities (Stefan)
7074 add subselects, possibility using temporary SQL functions
7175 Implement HAVING clause
7276 Implement EXISTS qualifier
73- column constraints (using rules), PRIMARY KEY during table creation
74- add DEFAULT, RESTRAINT, and CHECK capabilities
7577 report "Not implemented" if valid syntax is supplied
7678 add OUTER joins, left and right (Thomas)
7779 make VIEWs updateable where possible
@@ -89,7 +91,6 @@ Fix the rules system(Jan?,Soo-Ho)
8991 add CONSTRAINT
9092Full set of text operations and functions
9193 word searches, concat,max() on text, char
92- Replace table-level locking with row or page-level locking(Vadim)
9394Large objects
9495 overwriting blocks has problems
9596 there are other problems, too.
@@ -112,7 +113,7 @@ allow row re-use without vacuum, maybe?(Vadim)
112113can't vacuum large objects
113114can't reduce index file size with vacuum
114115Remove restriction that ORDER BY field must be in SELECT list(?)
115- Allow queries about owner of datbases, tables like:
116+ Allow queries about owner of tables, like:
116117 SELECT u.usesysid FROM postgres.pg_user u;
117118Add word index for text fields, maybe with trigrams, i.e.:
118119 ' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox
@@ -133,19 +134,19 @@ certain indexes will not shrink, i.e. oid indexes with many inserts
133134make NULL's come out at the beginning or end depending on the ORDER BY direction
134135change the library/backend interface to use network byte order
135136allow unix domain sockets for local connections for performance and security
136- Make operators for float8/int4 arithmetic
137+ Add PAGER for psql's \dt and \d tablename
137138
138139PERFORMANCE
139140-----------
141+ Use indexes in ORDER BY
142+ Allow LIKE/wildcard matches to use indexes if the wildcard character is not first
140143Optimizing disjunctive queries
141144Fix bushy-plans (Martin)
142145Other optimizer bugs
143146Is fsync use optimized?
144- Use indexes in ORDER BY
145- Profile engine in INSERT's and other operations
146147Cache most recent query plan(s?)
148+ Shared catalog cache, reduce lseek()'s by caching table size in shared area
147149Allow compression of log and meta data
148- Allow LIKE/wildcard matches to use indexes if the wildcard character is not first
149150Add FILLFACTOR to index creation
150151Allow indexes to be used with OR clauses(Vadim)
151152update pg_statistic table to remove operator column
@@ -156,135 +157,106 @@ Update usermanual source(many)
156157remove time-travel in documentation(Bruce)
157158added features used in grammer but not in docs, like :: and CAST
158159update libpq++ manual page
159- Add pg_password manual page
160160
161161PORTABILITY
162162-----------
163163
164164
165165---------------------------------------------------------------------------
166166
167- CHANGES IN THE 6.1.1 RELEASE
168-
169- Changes in this release
170- -----------------------
171- fix for SET with options (Thomas)
172- allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
173- new psql \connect option allows changing usernames without chaning databases
174- fix for initdb --debug option(Yoshihiko Ichikawa)
175- lextest cleanup(Bruce)
176- hash fixes(Vadim)
177- fix date/time month boundary arithmetic(Thomas)
178- fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo)
179- timestamp overhauled to use standard functions(Thomas)
180- other code cleanup in date/time routines(Thomas)
181- psql's \d now case-insensitive(Bruce)
182- psql's backslash commands can now have trailing semicolon(Bruce)
183- fix memory leak in psql when using \g(Bruce)
184- major fix for endian handling of communication to server(Thomas, Tatsuo)
185- Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
186- allow underscores in usernames(Bruce)
187- pg_dumpall now returns proper status, portability fix(Bruce)
188-
189-
190- ---------------------------------------------------------------------------
191-
192- CHANGES IN THE 6.1 RELEASE
193-
167+ CHANGES IN THE 6.2 RELEASE
194168Bug Fixes
195169---------
196- packet length checking in library routines
197- lock manager priority patch
198- check for under/over flow of float8(Bruce)
199- multi-table join fix(Vadim)
200- SIGPIPE crash fix(Darren)
201- large object fixes(Sven)
202- allow btree indexes to handle NULLs(Vadim)
203- timezone fixes(D'Arcy)
204- select SUM(x) can return NULL on no rows(Thomas)
205- internal optimizer, executor bug fixes(Vadim)
206- fix problem where inner loop in < or <= has no rows(Vadim)
207- prevent re-commuting join index clauses(Vadim)
208- fix join clauses for multiple tables(Vadim)
209- fix hash, hashjoin for arrays(Vadim)
210- fix btree for abstime type(Vadim)
211- large object fixes(Raymond)
212- fix buffer leak in hash indices (Vadim)
213- fix rtree for use in inner scan (Vadim)
214- fix gist for use in inner scan, cleanups (Vadim, Andrea)
215- avoid unnecessary local buffers allocation (Vadim, Massimo)
216- fix local buffers leak in transaction aborts (Vadim)
217- fix file manager memmory leaks, cleanups (Vadim, Massimo)
218- fix storage manager memmory leaks (Vadim)
219- fix btree duplicates handling (Vadim)
220- fix deleted tuples re-incarnation caused by vacuum (Vadim)
221- fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
222- many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
223- SELECT on two tables where zero or one table in WHERE and target
224- clause returns no rows(Vadim)
170+ Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce)
171+ Fix compile errors on overflow due to shifts, unsigned, and bad prototypes
172+ from Solaris(Diab Jerius)
173+ Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas)
174+ Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas)
175+ Catch non-functional delete attempts(Vadim)
176+ Change time function names to be more consistent(Michael Reifenberg)
177+ Check for zero divides(Michael Reifenberg)
178+ Fix very old bug which made tuples changed/inserted by a commnd
179+ visible to the command itself (so we had multiple update of
180+ updated tuples, etc)(Vadim)
181+ Fix for SELECT null, 'fail' FROM pg_am (Patrick)
182+ SELECT NULL as EMPTY_FIELD now allowed(Patrick)
183+ Remove un-needed signal stuff from contrib/pginterface
225184
226185Enhancements
227186------------
228- attribute optimization statistics(Bruce)
229- much faster new btree bulk load code(Paul)
230- BTREE UNIQUE added to bulk load code(Vadim)
231- new lock debug code(Massimo)
232- massive changes to libpg++(Leo)
233- new GEQO optimizer speeds table multi-table optimization(Martin)
234- new WARN message for non-unique insert into unique key(Marc)
235- update x=-3, no spaces, now valid(Bruce)
236- remove case-sensitive identifier handling(Bruce,Thomas,Dan)
237- debug backend now pretty-prints tree(Darren)
238- new Oracle character functions(Edmund)
239- new plaintext password functions(Dan)
240- no such class or insufficient privilege changed to distinct messages(Dan)
241- new ANSI timestamp function(Dan)
242- new ANSI Time and Date types (Thomas)
243- move large chunks of data in backend(Martin)
244- multi-column btree indexes(Vadim)
245- new SET var TO value command(Martin)
246- update transaction status on reads(Dan)
247- new locale settings for character types(Oleg)
248- new SEQUENCE serial number generator(Vadim)
249- GROUP BY function now possible(Vadim)
250- re-organize regression test(Thomas,Marc)
251- new optimizer operation weights(Vadim)
252- new psql \z grant/permit option(Marc)
253- new MONEY data type(D'Arcy,Thomas)
254- tcp socket communication speed improved(Vadim)
255- new VACUUM option for attribute statistics, and for certain columns (Vadim)
256- many geometric type improvements(Thomas,Keith)
257- additional regression tests(Thomas)
258- new datestyle variable(Thomas,Vadim,Martin)
259- more comparison operators for sorting types(Thomas)
260- new conversion functions(Thomas)
261- new more compact btree format(Vadim)
262- allow pg_dumpall to preserve database ownership(Bruce)
263- new SET GEQO=# and R_PLANS variable(Vadim)
264- old (!GEQO) optimizer can use right-sided plans (Vadim)
265- typechecking improvement in SQL parser(Bruce)
266- new SET, SHOW, RESET commands(Thomas,Vadim)
267- new \connect database USER option
268- new destroydb -i option (Igor)
269- new \dt and \di psql commands (Darren)
270- SELECT "\n" now escapes newline (A. Duursma)
271- new geometry conversion functions from old format (Thomas)
272- Improve optimizer plan choice(Vadim)
187+ Default genetic optimizer GEQO parameter is now 8(Bruce)
188+ Allow use parameters in target list having aggregates in functions(Vadim)
189+ Added JDBC driver as an interface(Adrian & Peter)
190+ pg_password utility
191+ Return number of tuples inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim)
192+ Triggers implemented with CREATE TRIGGER (SQL3)(Vadim)
193+ SPI (Server Programming Interface) implemented to support triggers(Vadim)
194+ NOT NULL implemented (SQL92)(Robson Paniago de Miranda)
195+ Include reserved words for string handling, outer joins, and unions(Thomas)
196+ Implement extended comments ("/* ... */") using exclusive states(Thomas)
197+ Add "//" single-line comments(Bruce)
198+ Remove some restrictions on characters in operator names(Thomas)
199+ DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas)
200+ Add text concatenation operator and function (SQL92)(Thomas)
201+ Support WITH TIME ZONE syntax (SQL92)(Thomas)
202+ Support INTERVAL <unit> TO <unit> syntax (SQL92)(Thomas)
203+ Define types DOUBLE PRECISION, INTERVAL, CHARACTER,
204+ and CHARACTER VARYING (SQL92)(Thomas)
205+ Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas)
206+ Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas)
207+ Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas)
208+ Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas)
209+ Add more reserved words, mostly for SQL92 compliance(Thomas)
210+ Allow hh:mm:ss time entry for timespan/reltime types(Thomas)
211+ Add center() routines for lseg, path, polygon(Thomas)
212+ Add distance() routines for circle-polygon, polygon-polygon(Thomas)
213+ Check explicitly for points and polygons contained within polygons
214+ using an axis-crossing algorithm(Thomas)
215+ Add routine to convert circle-box(Thomas)
216+ Merge conflicting operators for different geometric data types(Thomas)
217+ Replace distance operator "<===>" with "<->"(Thomas)
218+ Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas)
219+ Add routines for text trimming on both ends, substring, and string position(Thomas)
220+ Added conversion routines circle(box) and poly(circle)(Thomas)
221+ Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim)
222+ Allow functions and operators on internally-identical types to succeed(Bruce)
223+ Speed up backend startup after profiling analysis(Bruce)
224+ Inline frequently called functions for performance(Bruce)
225+ Reduce open() calls(Bruce)
226+ psql: Add PAGER for \h and \?,\C fix
227+ Fix for psql pager when no tty(Bruce)
228+ New entab utility(Bruce)
273229
274- Source tree changes
230+ Source Tree Changes
275231-------------------
276- new configuration script(Marc)
277- readline configuration option added(Marc)
278- OS-specific configuration options removed(Marc)
279- new OS-specific template files(Marc)
280- no more need to edit Makefile.global(Marc)
281- re-arrange include files(Marc)
282- nextstep patches (Gregor Hoffleit)
283- removed WIN32-specific code(Bruce)
284- removed postmaster -e option, now only postgres -e option (Bruce)
285- merge duplicate library code in front/backends(Martin)
286- now works with eBones, international Kerberos(Jun)
287- more shared library support
288- c++ include file cleanup(Bruce)
289- warn about buggy flex(Bruce)
290- DG-UX, Ultrix, Irix, AIX portability fixes
232+ HPUX 10 patches (Vladimir Turin)
233+ Added SCO support, (Daniel Harris)
234+ mkLinux patches (Tatsuo Ishii)
235+ Change geometric box terminology from "length" to "width"(Thomas)
236+ Deprecate temporary unstored slope fields in geometric code(Thomas)
237+ Remove restart instructions from INSTALL(Bruce)
238+ Look in /usr/ucb first for install(Bruce)
239+ Fix c++ copy example code(Thomas)
240+ Add -o to psql manual page(Bruce)
241+ Prevent relname unallocated string length from being copied into database(Bruce)
242+ Cleanup for NAMEDATALEN use(Bruce)
243+ Fix pg_proc names over 15 chars in output(Bruce)
244+ Add strNcpy() function(Bruce)
245+ remove some (void) casts that are unnecessary(Bruce)
246+ new interfaces directory(Marc)
247+ Replace fopen() calls with calls to fd.c functions(Bruce)
248+ Make functions static where possible(Bruce)
249+ enclose unused functions in #ifdef NOT_USED(Bruce)
250+ Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas)
251+ Changes for Digital Unix
252+ Portability fix for pg_dumpall(Bruce)
253+ Rename pg_attribute.attnvals to attdisbursion(Bruce)
254+ "intro/unix" manual page now "pgintro"(Bruce)
255+ "built-in" manual page now "pgbuiltin"(Bruce)
256+ "drop" manual page now "drop_table"(Bruce)
257+ Add "create_trigger", "drop_trigger" manual pages(Thomas)
258+ Add constraints regression test(Vadim & Thomas)
259+ Add comments syntax regression test(Thomas)
260+ Add PGINDENT and support program(Bruce)
261+ Massive commit to run PGINDENT on all *.c and *.h files(Bruce)
262+ Files moved to /src/tools directory(Bruce)
0 commit comments