Commit Graph

1938 Commits

Author SHA1 Message Date
Bruce Momjian
1c02144731 Done though the second is default so off in 8.2:
> * -Eventually enable escape_string_warning and standard_conforming_strings
2006-03-06 22:51:20 +00:00
Bruce Momjian
ebdc35822d Add:
> 	o Prevent parent tables from altering or dropping constraints
> 	  like CHECK that are inherited by child tables
>
> 	  Dropping constraints should only be possible with CASCADE.
>
2006-03-06 17:10:31 +00:00
Bruce Momjian
d2eb1d12a0 Add for Win32:
> 	o Check WSACancelBlockingCall() for interrupts (win32intr)
>
2006-03-06 15:19:45 +00:00
Bruce Momjian
e166574a1d Add for ecpg:
> 	o Add COPY TO STDIN / STDOUT handling
2006-03-06 15:13:38 +00:00
Bruce Momjian
2f01703f90 Update:
< * %Disallow changing sequence characteristics like INCREMENT for SERIAL columns
> * %Disallow ALTER SEQUENCE changes for SERIAL sequences because pg_dump
>   does not dump the changes
2006-03-06 05:22:31 +00:00
Bruce Momjian
1ad126314f Add:
> * %Disallow changing sequence characteristics like INCREMENT for SERIAL columns
2006-03-06 05:16:21 +00:00
Bruce Momjian
f9520ac110 Add:
> 	o Port contrib/xml2
2006-03-05 18:28:46 +00:00
Bruce Momjian
5173b1a40f Done:
> 	o -Add "include file" functionality in postgresql.conf
2006-03-05 15:16:58 +00:00
Bruce Momjian
18bc9ea561 Add:
> * Allow FSM page return free space based on table clustering, to assist
>   in maintaining clustering?
2006-03-04 05:02:03 +00:00
Bruce Momjian
f4a4755734 Done:
> * -Allow TRUNCATE ... CASCADE/RESTRICT
2006-03-03 20:43:00 +00:00
Bruce Momjian
c776fba1e1 Done:
< 	o %Have COPY return the number of rows loaded/unloaded?
> 	o -Have COPY return the number of rows loaded/unloaded?
2006-03-03 20:37:29 +00:00
Bruce Momjian
2a0ba3f8dd Add:
> * Allow FSM to return free space toward the beginning of the heap file,
>   in hopes that empty pages at the end can be truncated by VACUUM
2006-03-03 03:13:04 +00:00
Bruce Momjian
66eccb466e Add:
> * Add missing parameter handling in to_char()
>
> 	http://archives.postgresql.org/pgsql-hackers/2005-12/msg00948.php
>
2006-03-03 02:38:57 +00:00
Bruce Momjian
d65b4e30f0 Add:
> * Allow to_date() and to_timestamp() accept localized month names
2006-03-03 02:18:09 +00:00
Bruce Momjian
f79df7fcc9 Add:
> * Improve port/qsort() to handle sorts with 50% unique and 50% duplicate
>   value [qsort]
>
>   This involves choosing better pivot points for the quicksort.
2006-03-02 18:18:00 +00:00
Bruce Momjian
c6b6f7ad64 Add:
* Split out libpq pgpass and environment documentation sections to make
  it easier for non-developers to find
2006-02-28 19:48:03 +00:00
Bruce Momjian
52d010d857 Done:
> * -Add 'tid != tid ' operator for use in corruption recovery
2006-02-26 21:22:47 +00:00
Neil Conway
f33d3bc0bf TODO updates:
- "Add ON COMMIT capability to CREATE TABLE AS ... SELECT" is done

- "Allow PREPARE to automatically determine parameter types" is done

- "Clean up compiler warnings (especially with gcc version 4)" is done:
  AFAIK there are no remaining gcc4 compiler warnings to be fixed.

- Creating rules to do view updates is *not* an easy TODO item
2006-02-26 01:21:57 +00:00
Bruce Momjian
305c82e6bb Add intervals:
> 	o Allow infinite dates and intervals just like infinite timestamps
2006-02-25 16:34:52 +00:00
Bruce Momjian
8e8972832a Remove duplicate:
< 	o %Disallow dropping of an inherited constraint
2006-02-25 03:40:14 +00:00
Bruce Momjian
589b67d34b Add:
>
> 	o Allow pg_hba.conf to specify host names along with IP addresses
>
> 	  Host name lookup could occur when the postmaster reads the
> 	  pg_hba.conf file, or when the backend starts.  Another
> 	  solution would be to reverse lookup the connection IP and
> 	  check that hostname against the host names in pg_hba.conf.
> 	  We could also then check that the host name maps to the IP
> 	  address.
2006-02-13 03:55:02 +00:00
Bruce Momjian
3694e70682 Not done:
> 	o %Allow ALTER TABLE ... ALTER CONSTRAINT ... RENAME
2006-02-12 19:13:19 +00:00
Bruce Momjian
20b508308a Done:
> * -Add COMMENT ON for all cluster global objects (roles, databases
2006-02-12 06:51:14 +00:00
Bruce Momjian
136c3b87ac Done:
> * -Allow to_char() to print localized month names
2006-02-12 04:44:17 +00:00
Bruce Momjian
3884ede663 Done:
> * -Add system view to show free space map contents
2006-02-12 03:56:13 +00:00
Bruce Momjian
3fcb38f031 Done:
> 	o -Allow ALTER TABLE ... ALTER CONSTRAINT ... RENAME
2006-02-11 22:17:17 +00:00
Bruce Momjian
97d37b7a22 Done:
< 	o Improve psql's handling of multi-line statements
> 	o -Improve psql's handling of multi-line statements
2006-02-11 21:55:49 +00:00
Bruce Momjian
642c8cc470 Done:
> * -Allow INET + INT8 to increment the host part of the address or
2006-02-11 03:33:36 +00:00
Bruce Momjian
af03b689dd Done:
< 	o Allow multi-line column values to align in the proper columns
> 	o -Allow multi-line column values to align in the proper columns
2006-02-10 04:14:17 +00:00
Bruce Momjian
15be0b8cd1 Remove question mark:
< * %Disallow changing default expression of a SERIAL column?
> * %Disallow changing default expression of a SERIAL column
2006-02-07 14:49:17 +00:00
Bruce Momjian
04a942e31e Split up wal-logging items:
< * Allow control over which tables are WAL-logged [walcontrol]
> * Allow WAL logging to be turned off for a table, but the table
>   might be dropped or truncated during crash recovery [walcontrol]
<   commit.  To do this, only a single writer can modify the table, and
<   writes must happen only on new pages.  Readers can continue accessing
<   the table.  This would affect COPY, and perhaps INSERT/UPDATE too.
<   Another option is to avoid transaction logging entirely and truncate
<   or drop the table on crash recovery.  These should be implemented
<   using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP | TRUNCATE |
<   STABLE | DEFAULT ].  Tables using non-default logging should not use
<   referential integrity with default-logging tables, and tables using
<   stable logging probably can not have indexes.  One complexity is
<   the handling of indexes on TOAST tables.
>   commit.  This should be implemented using ALTER TABLE, e.g. ALTER
>   TABLE PERSISTENCE [ DROP | TRUNCATE | DEFAULT ].  Tables using
>   non-default logging should not use referential integrity with
>   default-logging tables.  A table without dirty buffers during a
>   crash could perhaps avoid the drop/truncate.
>
> * Allow WAL logging to be turned off for a table, but the table would
>   avoid being truncated/dropped [walcontrol]
>
>   To do this, only a single writer can modify the table, and writes
>   must happen only on new pages so the new pages can be removed during
>   crash recovery.  Readers can continue accessing the table.  Such
>   tables probably cannot have indexes.  One complexity is the handling
>   of indexes on TOAST tables.
2006-02-07 02:08:08 +00:00
Peter Eisentraut
3fa9c416ed Issue a warning if a change-on-restart-only postgresql.conf value is
modified  and the server config files are reloaded
2006-02-04 12:50:47 +00:00
Bruce Momjian
bc6a824ca6 Update walcontrol item:
< * Allow control over which tables are WAL-logged
> * Allow control over which tables are WAL-logged [walcontrol]
1038c1038,1039
<   stable logging probably can not have indexes.  [walcontrol]
>   stable logging probably can not have indexes.  One complexity is
>   the handling of indexes on TOAST tables.
2006-02-04 03:23:21 +00:00
Bruce Momjian
bd5d12a16b Add:
> * Allow statistics collector information to be pulled from the collector
>   process directly, rather than requiring the collector to write a
>   filesystem file twice a second?
2006-02-01 17:32:45 +00:00
Bruce Momjian
c6ef3264be Move items:
> * Add SQL99 WITH clause to SELECT
> * Add SQL99 WITH RECURSIVE to SELECT
< * Add SQL99 WITH clause to SELECT
< * Add SQL99 WITH RECURSIVE to SELECT
2006-02-01 00:07:26 +00:00
Bruce Momjian
5eb29fea25 Add:
>
> 	o Prevent tab completion of SET TRANSACTION from querying the
> 	  database and therefore preventing the transaction isolation
> 	  level from being set.
>
> 	  Currently, SET <tab> causes a database lookup to check all
> 	  supported session variables.  This query causes problems
> 	  because setting the transaction isolation level must be the
> 	  first statement of a transaction.
2006-02-01 00:03:09 +00:00
Bruce Momjian
3125321934 Done:
< * %Prevent INET cast to CIDR if the unmasked bits are not zero, or
<   zero the bits
< * %Prevent INET cast to CIDR from dropping netmask, SELECT '1.1.1.1'::inet::cidr
> * -Zero umasked bits in conversion from INET cast to CIDR
> * -Prevent INET cast to CIDR from dropping netmask, SELECT '1.1.1.1'::inet::cidr
2006-01-26 02:50:11 +00:00
Bruce Momjian
1bdc5ab2da Done:
< 	o Allow an alias to be provided for the target table in
< 	  UPDATE/DELETE
<
< 	  This is not SQL-spec but many DBMSs allow it.
<
> 	o -Allow an alias to be provided for the target table in
> 	  UPDATE/DELETE (Neil)
2006-01-23 02:59:27 +00:00
Bruce Momjian
e1af35afac Done:
> 	o -Allow pooled connections to list all open WITH HOLD cursors
2006-01-18 14:20:22 +00:00
Bruce Momjian
9545d66a97 Done:
> * -Add sleep() function, remove from regress.c
2006-01-11 20:28:21 +00:00
Bruce Momjian
42ff6a04d8 Done:
< * %Allow pooled connections to list all prepared statements
> * -%Allow pooled connections to list all prepared statements
2006-01-09 22:43:23 +00:00
Bruce Momjian
6d41b144e9 Add:
>
> 	* Allow SERIAL sequences to inherit permissions from the base table?
2006-01-05 17:47:53 +00:00
Bruce Momjian
db6cb1a9a9 Update:
<   stable logging probably can not have indexes.  [wallog]
>   stable logging probably can not have indexes.  [walcontrol]
2006-01-05 16:39:54 +00:00
Bruce Momjian
ac9e14d064 Update wording:
<   STABLE | DEFAULT ].  [wallog]
>   STABLE | DEFAULT ].  Tables using non-default logging should not use
>   referential integrity with default-logging tables, and tables using
>   stable logging probably can not have indexes.  [wallog]
2006-01-05 16:35:19 +00:00
Bruce Momjian
e7893db5cf Update wording:
<   the table. Another option is to avoid transaction logging entirely
<   and truncate or drop the table on crash recovery.  These should be
<   implemented using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP |
<   TRUNCATE | STABLE | DEFAULT ].  [wallog]
>   the table.  This would affect COPY, and perhaps INSERT/UPDATE too.
>   Another option is to avoid transaction logging entirely and truncate
>   or drop the table on crash recovery.  These should be implemented
>   using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP | TRUNCATE |
>   STABLE | DEFAULT ].  [wallog]
2006-01-05 16:26:49 +00:00
Bruce Momjian
1b736817d0 Add:
>
> * Allow control over which tables are WAL-logged
>
>   Allow tables to bypass WAL writes and just fsync() dirty pages on
>   commit.  To do this, only a single writer can modify the table, and
>   writes must happen only on new pages.  Readers can continue accessing
>   the table. Another option is to avoid transaction logging entirely
>   and truncate or drop the table on crash recovery.  These should be
>   implemented using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP |
>   TRUNCATE | STABLE | DEFAULT ].  [wallog]
2006-01-05 16:23:48 +00:00
Bruce Momjian
3002492fc7 Update item:
< * %Remove behavior of postmaster -o after making postmaster/postgres
<   flags unique
> * %Remove behavior of postmaster -o
2006-01-05 15:13:32 +00:00
Bruce Momjian
9be5beb918 Done:
> * -Remove BeOS and QNX-specific code
2006-01-05 03:02:03 +00:00
Bruce Momjian
7211ff7d32 Add:
> * Make CLUSTER preserve recently-dead tuples per MVCC requirements
2005-12-30 03:24:58 +00:00
Bruce Momjian
e135d9631b Update:
< * Add missing rtree optimizer selectivity
> * Improve selectivity functions for geometric operators
2005-12-29 16:45:11 +00:00
Bruce Momjian
6fa335721a Update:
< * Add missing optimizer selectivities for date, r-tree, etc
> * Add missing rtree optimizer selectivity
2005-12-28 03:59:39 +00:00
Bruce Momjian
1b184c990f Done:
< * %Make row-wise comparisons work per SQL spec
> * -Make row-wise comparisons work per SQL spec
2005-12-28 02:12:25 +00:00
Bruce Momjian
5c9a46f605 Add:
* %Make row-wise comparisons work per SQL spec

  Right now, '(a, b) < (1, 2)' is processed as 'a < 1 and b < 2', but
  the SQL standard requires it to be processed as a column-by-column
  comparison, so the proper comparison is '(a < 1) OR (a = 1 AND b < 2)'.
2005-12-26 05:14:52 +00:00
Bruce Momjian
2f1a78e200 Update item:
>
>   A more complex solution would be to save multiple plans for different
>   cardinality and use the appropriate plan based on the EXECUTE values.
>
2005-12-22 23:05:32 +00:00
Bruce Momjian
25af534ea1 Remove item:
< * Allow star join optimizations
<
<   While our bitmap scan allows multiple indexes to be joined to get
<   to heap rows, a star joins allows multiple dimension _tables_ to
<   be joined to index into a larger main fact table.  The join is
<   usually performed by either creating a cartesian product of all
<   the dimmension tables and doing a single join on that product or
<   using subselects to create bitmaps of each dimmension table match
<   and merge the bitmaps to perform the join on the fact table.  Some
<   of these algorithms might be patented.
2005-12-17 19:03:24 +00:00
Bruce Momjian
3282b6338b Update:
< * Flush cached query plans when the dependent objects change or
<   when the cardinality of parameters changes dramatically
> * Flush cached query plans when the dependent objects change,
>   when the cardinality of parameters changes dramatically, or
>   when new ANALYZE statistics are available
2005-12-17 18:07:01 +00:00
Bruce Momjian
16843ba33c Add mention of possible patent problems with star joins, per Joshua
Drake:

<   and merge the bitmaps to perform the join on the fact table.
>   and merge the bitmaps to perform the join on the fact table.  Some
>   of these algorithms might be patented.
2005-12-17 17:04:41 +00:00
Bruce Momjian
9e9a844f55 Add:
* Allow star join optimizations

  While our bitmap scan allows multiple indexes to be joined to get
  to heap rows, a star joins allows multiple dimension _tables_ to
  be joined to index into a larger main fact table.  The join is
  usually performed by either creating a cartesian product of all
  the dimmension tables and doing a single join on that product or
  using subselects to create bitmaps of each dimmension table match
  and merge the bitmaps to perform the join on the fact table.
2005-12-17 16:43:11 +00:00
Bruce Momjian
927f57687f Add more function to TODO:
< * %Add pg_get_acldef(), pg_get_typedefault(), and pg_get_attrdef()
> * %Add pg_get_acldef(), pg_get_typedefault(), pg_get_attrdef(),
>   pg_get_tabledef(), pg_get_domaindef(), pg_get_functiondef()
2005-12-17 14:18:33 +00:00
Bruce Momjian
eae75beb71 Update:
< * Flush cached query plans when the dependent objects change
> * Flush cached query plans when the dependent objects change or
>   when the cardinality of parameters changes dramatically
2005-12-17 04:10:47 +00:00
Bruce Momjian
56ea9ad11f Add:
> * Allow the count returned by SELECT, etc to be to represent as an int64
>   to allow a higher range of values
2005-12-17 01:48:37 +00:00
Bruce Momjian
cb77a9ea53 Force update. 2005-12-16 18:56:55 +00:00
Neil Conway
1c7347f897 Fix some typos in the TODO list. 2005-12-16 18:44:07 +00:00
Bruce Momjian
baf4e187ef Update wording, query -> statement:
< * %Allow pooled connections to list all prepared queries
> * %Allow pooled connections to list all prepared statements
28c28
<   the queries prepared in the current session.
>   the statements prepared in the current session.
143c143
< 	  o Allow a warm standby system to also allow read-only queries
> 	  o Allow a warm standby system to also allow read-only statements
404c404
< * Add GUC to issue notice about queries that use unjoined tables
> * Add GUC to issue notice about statements that use unjoined tables
490c490
< 	  Another idea would be to allow actual SELECT queries in a COPY.
> 	  Another idea would be to allow actual SELECT statements in a COPY.
554c554
< 	o Allow function argument names to be queries from PL/PgSQL
> 	o Allow function argument names to be statements from PL/PgSQL
591c591
< 	o Improve psql's handling of multi-line queries
> 	o Improve psql's handling of multi-line statements
< 	  Currently, while \e saves a single query as one entry, interactive
< 	  queries are saved one line at a time.  Ideally all queries
> 	  Currently, while \e saves a single statement as one entry, interactive
> 	  statements are saved one line at a time.  Ideally all statements
665c665
< 	o Allow query results to be automatically batched to the client
> 	o Allow statement results to be automatically batched to the client
667c667
< 	  Currently, all query results are transfered to the libpq
> 	  Currently, all statement results are transfered to the libpq
672c672
< 	  One complexity is that a query like SELECT 1/col could error
> 	  One complexity is that a statement like SELECT 1/col could error
739c739
< * Allow queries across databases or servers with transaction
> * Allow statements across databases or servers with transaction
<   inheritance, allow it to work for UPDATE and DELETE queries, and allow
<   it to be used for all queries with little performance impact
>   inheritance, allow it to work for UPDATE and DELETE statements, and allow
>   it to be used for all statements with little performance impact
876c876
< * Consider automatic caching of queries at various levels:
> * Consider automatic caching of statements at various levels:
947c947
<   a single session using multiple threads to execute a query faster.
>   a single session using multiple threads to execute a statement faster.
1025c1025
< * Log queries where the optimizer row estimates were dramatically
> * Log statements where the optimizer row estimates were dramatically
1146c1146
< 	  of result sets using new query protocol
> 	  of result sets using new statement protocol
2005-12-12 13:36:36 +00:00
Bruce Momjian
c10593149a Remove item:
< * Add GUC variable to run a command on database panic or
<   smart/fast/immediate shutdown
2005-12-11 02:16:25 +00:00
Bruce Momjian
ecf4df6116 Done:
< * Allow installing to directories containing spaces
> * -Allow installing to directories containing spaces
2005-12-09 21:46:07 +00:00
Bruce Momjian
07044f5d6f Completed:
* -Have initdb set the input DateStyle (MDY or DMY) based on locale
2005-12-09 16:35:20 +00:00
Peter Eisentraut
625d4b38e0 Let initdb detect the date order of the lc_time locale and initialize the
datestyle parameter of the new cluster accordingly.
2005-12-09 15:51:14 +00:00
Bruce Momjian
d22ec67605 Add Teodor:
> * Teodor is Teodor Sigaev <teodor@sigaev.ru>
2005-12-08 22:10:25 +00:00
Bruce Momjian
0fba659ef8 Remove a few people:
< * Claudio is Claudio Natoli <claudio.natoli@memetrics.com>
1166d1164
< * Hiroshi is Hiroshi Inoue <Inoue@tpf.co.jp>
2005-12-08 22:08:20 +00:00
Bruce Momjian
10a2df28c0 Update:
<   at initdb time or optionally later.
>   at initdb time or optionally later.  Consider O_SYNC when
>   O_DIRECT exists.
2005-12-07 17:29:14 +00:00
Bruce Momjian
371879ca8e Add:
> * Add GUC variable to run a command on database panic or
>   smart/fast/immediate shutdown
2005-12-06 20:47:05 +00:00
Bruce Momjian
99552287e1 Update:
< 	  Win32 API, and we have to make sure MinGW handles it.
> 	  Win32 API, and we have to make sure MinGW handles it.  Another
> 	  option is to wait for the MinGW project to fix it, or use the
> 	  code from the LibGW32C project as a guide.
2005-12-04 21:16:51 +00:00
Bruce Momjian
8752479dfc Add:
> 	o Add long file support for binary pg_dump output
>
> 	  While Win32 supports 64-bit files, the MinGW API does not,
> 	  meaning we have to build an fseeko replacement on top of the
> 	  Win32 API, and we have to make sure MinGW handles it.
2005-12-04 04:33:18 +00:00
Bruce Momjian
bedb5fc309 Add:
> * Add SPI_gettypmod() to return the typemod for a TupleDesc
2005-12-04 04:14:43 +00:00
Bruce Momjian
49bbff0f8d Add for autovacuum:
> 	o Consider logging activity either to the logs or a system view
2005-12-04 04:02:55 +00:00
Bruce Momjian
eb339c7840 Item removed:
< * Add function to return the thread safety status of libpq and ecpg
2005-12-03 13:03:41 +00:00
Bruce Momjian
5ab2598875 Remove idea of increasing NUMERIC length:
< * Change NUMERIC to enforce the maximum precision, and increase it
> * Change NUMERIC to enforce the maximum precision
2005-12-02 17:39:44 +00:00
Bruce Momjian
9322a04759 Add calcluation of bitmap storage capacity.
<   be cleared when a heap tuple is expired.  Another idea is to maintain
<   a bitmap of heap pages where all rows are visible to all backends,
<   and allow index lookups to reference that bitmap to avoid heap
<   lookups, perhaps the same bitmap we might add someday to determine
<   which heap pages need vacuuming.
>   be cleared when a heap tuple is expired.
>
>   Another idea is to maintain a bitmap of heap pages where all rows
>   are visible to all backends, and allow index lookups to reference
>   that bitmap to avoid heap lookups, perhaps the same bitmap we might
>   add someday to determine which heap pages need vacuuming.  Frequently
>   accessed bitmaps would have to be stored in shared memory.  One 8k
>   page of bitmaps could track 512MB of heap pages.
2005-12-02 04:28:19 +00:00
Bruce Momjian
113ece8f3d Add all heap page rows visible bitmap idea:
<   the heap.  One way to allow this is to set a bit to index tuples
>   the heap.  One way to allow this is to set a bit on index tuples
<   be cleared when a heap tuple is expired.
<
>   be cleared when a heap tuple is expired.  Another idea is to maintain
>   a bitmap of heap pages where all rows are visible to all backends,
>   and allow index lookups to reference that bitmap to avoid heap
>   lookups, perhaps the same bitmap we might add someday to determine
>   which heap pages need vacuuming.
2005-12-01 22:30:43 +00:00
Bruce Momjian
915fb7f687 Add MERGE TODO.detail:
>   [merge]
378a380
>   [merge]
2005-12-01 22:12:35 +00:00
Bruce Momjian
24e1a04591 Split out MERGE and REPLACE/UPSERT items.
< * Add MERGE command that does UPDATE/DELETE, or on failure, INSERT (rules,
<   triggers?)
> * Add SQL-standard MERGE command, typically used to merge two tables
>
>   This is similar to UPDATE, then for unmatched rows, INSERT.
>   Whether concurrent access allows modifications which could cause
>   row loss is implementation independent.
>
> * Add REPLACE or UPSERT command that does UPDATE, or on failure, INSERT
2005-12-01 22:07:59 +00:00
Bruce Momjian
339fbbb9a0 Update for 8.2:
< #A hyphen, "-", marks changes that will appear in the upcoming 8.1 release.#
> #A hyphen, "-", marks changes that will appear in the upcoming 8.2 release.#
2005-11-29 02:02:40 +00:00
Bruce Momjian
8ed7065c7b Item removed, looping always required:
< * Remove Win32 rename/unlink looping if unnecessary
2005-11-29 02:01:52 +00:00
Bruce Momjian
a4371a6813 Add:
> * Allow COMMENT ON to accept an expression rather than just a string
2005-11-28 22:21:58 +00:00
Bruce Momjian
c0a2f8cc4d Add space. 2005-11-24 04:40:27 +00:00
Bruce Momjian
3f69c4193f Add item:
<
> 	o Add -f to pg_dumpall
2005-11-24 04:28:40 +00:00
Bruce Momjian
ce1d8293f0 Done:
> 	o -Allow NULLs in arrays
2005-11-22 23:22:38 +00:00
Bruce Momjian
c28c00ecc8 Add:
>
> * Add estimated_count(*) to return an estimate of COUNT(*)
>
>   This would use the planner ANALYZE statistatics to return an estimated
>   count.
2005-11-22 23:06:56 +00:00
Bruce Momjian
84bb3876bc Update, add mention of user locking table before MERGE:
<   so duplicate checking can be easily performed.
>   so duplicate checking can be easily performed.  It is possible to
>   do it without a unique index if we require the user to LOCK the table
>   before the MERGE.
2005-11-16 18:45:09 +00:00
Bruce Momjian
01798a06b9 Add batch mode, make new libpq section:
< * Add a libpq function to support Parse/DescribeStatement capability
< * Add PQescapeIdentifier() to libpq
< * Prevent PQfnumber() from lowercasing unquoted the column name
<
<   PQfnumber() should never have been doing lowercasing, but historically
<   it has so we need a way to prevent it
<
648a642,661
>
>
> libpq
>
> 	o Add a function to support Parse/DescribeStatement capability
> 	o Add PQescapeIdentifier()
> 	o Prevent PQfnumber() from lowercasing unquoted the column name
>
> 	  PQfnumber() should never have been doing lowercasing, but
> 	  historically it has so we need a way to prevent it
>
> 	o Allow query results to be automatically batched to the client
>
> 	  Currently, all query results are transfered to the libpq
> 	  client before libpq makes the results available to the
> 	  application.  This feature would allow the application to make
> 	  use of the first result rows while the rest are transfered, or
> 	  held on the server waiting for them to be requested by libpq.
> 	  One complexity is that a query like SELECT 1/col could error
> 	  out mid-way through the result set.
2005-11-16 16:33:44 +00:00
Bruce Momjian
698ee9c3e7 Update MERGE:
>
>   To implement this cleanly requires that the table have a unique index
>   so duplicate checking can be easily performed.
>
2005-11-15 23:08:24 +00:00
Bruce Momjian
bc93b3741d Update:
< 	o Allow ALTER TABLE RENAME CONSTRAINT
> 	o Add ALTER TABLE RENAME CONSTRAINT, update index name also
2005-10-27 14:16:05 +00:00
Bruce Momjian
befc607dee Add:
> 	o Have ALTER INDEX update the name of a constraint using that index
> 	o Allow ALTER TABLE RENAME CONSTRAINT
2005-10-27 14:07:29 +00:00
Bruce Momjian
807da29cf3 Add items from Tom:
< 	o Add a GUC variable to allow output of interval values in ISO8601
< 	  format
212a211,223
> 	o Add a GUC variable to allow output of interval values in ISO8601
> 	  format
> 	o Improve timestamptz subtraction to be DST-aware
>
> 	  Currently, subtracting one date from another that crosses a
> 	  daylight savings time adjustment can return '1 day 1 hour', but
> 	  adding that back to the first date returns a time one hour in
> 	  the future.  This is caused by the adjustment of '25 hours' to
> 	  '1 day 1 hour', and '1 day' is the same time the next day, even
> 	  if daylight savings adjustments are involved.
>
> 	o Fix interval display to support values exceeding 2^31 hours
> 	o Add overflow checking to timestamp and interval arithmetic
2005-10-27 02:33:31 +00:00
Bruce Momjian
62cfa0f75c Add:
>
> 	o Add auto-expanded mode so expanded output is used if the row
> 	  length is wider than the screen width.
>
> 	  Consider using auto-expanded mode for backslash commands like \df+.
2005-10-25 18:50:56 +00:00
Bruce Momjian
9507b56031 Add:
> * Allow user-defined functions retuning a domain value to enforce domain
>   constraints
2005-10-24 18:08:52 +00:00
Bruce Momjian
249f07b8c6 Update:
> * Prevent PQfnumber() from lowercasing unquoted the column name
>
>   PQfnumber() should never have been doing lowercasing, but historically
>   it has so we need a way to prevent it
>
2005-10-13 01:23:49 +00:00
Bruce Momjian
adc58f145c Remove item:
< * Prevent libpq's PQfnumber() from lowercasing the column name
<
<   One idea is to lowercase all identifiers except those that are
<   surrounded by quotes.
<
2005-10-12 22:39:35 +00:00
Bruce Momjian
0a28eb4622 No longer needed:
<
< * Add code to detect an SMP machine and handle spinlocks accordingly
<   from distributted.net, http://www1.distributed.net/source,
<   in client/common/cpucheck.cpp
<
<   On SMP machines, it is possible that locks might be released shortly,
<   while on non-SMP machines, the backend should sleep so the process
<   holding the lock can complete and release it.
2005-10-12 14:06:46 +00:00
Bruce Momjian
4aebb5ad55 Rearrange:
< 	o %Add dumping of comments on composite type columns
< 	o %Add dumping of comments on index columns
< 	o Stop dumping CASCADE on DROP TYPE commands in clean mode
> 	o %Add dumping of comments on index columns and composite type columns
604a603
> 	o Stop dumping CASCADE on DROP TYPE commands in clean mode
2005-10-12 13:41:08 +00:00
Bruce Momjian
d5310ca920 Done:
< 	o %Replace crude DELETE FROM method of pg_dumpall --clean for
<           cleaning of roles with separate DROP commands
608a607
>
2005-10-12 13:39:51 +00:00
Bruce Momjian
87a67d186b Add:
<
> 	o Allow pg_dump --clean to drop roles that own objects or have
> 	  privileges
2005-10-12 13:39:21 +00:00
Bruce Momjian
752290207d Add description:
< * Prevent libpq's PQfnumber() from lowercasing the column name?
> * Prevent libpq's PQfnumber() from lowercasing the column name
>
>   One idea is to lowercase all identifiers except those that are
>   surrounded by quotes.
>
2005-10-12 03:26:38 +00:00
Bruce Momjian
368f0b28f3 Add:
> 	o Add options like pg_restore -l and -L to pg_dump
2005-10-12 02:57:42 +00:00
Bruce Momjian
e4aa5be90c Add:
> 	o Allow selection of individual object(s) of all types, not just
> 	  tables
> 	o In a selective dump, allow dumping of an object and all its
> 	  dependencies
2005-10-11 23:55:10 +00:00
Bruce Momjian
ab13353d31 Update:
< * Consider compressing indexes by storing key prefix values shared by
> * Consider compressing indexes by storing key values duplicated in
735a736,737
>
>   This is difficult because it requires datatype-specific knowledge.
2005-10-07 14:04:19 +00:00
Bruce Momjian
02eb6ea9b7 Add:
<
> * Consider compressing indexes by storing key prefix values shared by
>   several rows as a single index entry
2005-10-07 02:43:59 +00:00
Bruce Momjian
6a17577933 Remove, 8.1 completed items already removed:
< * -Have sequence dependency track use of DEFAULT sequences
2005-10-03 00:42:57 +00:00
Bruce Momjian
2aa39a4cb1 Done:
< * Have sequence dependency track use of DEFAULT sequences,
<   seqname.nextval?
> * -Have sequence dependency track use of DEFAULT sequences
2005-10-03 00:42:28 +00:00
Bruce Momjian
455f48ddc5 Done:
< * +Add options to pg_config to show the share_dir, sysconfdir,
<   pkgincludedir, and localedir
2005-09-27 18:04:34 +00:00
Bruce Momjian
451cd7d426 Add:
> 	o Improve signal handling,
> 	  http://archives.postgresql.org/pgsql-patches/2005-06/msg00027.php
2005-09-27 15:18:13 +00:00
Bruce Momjian
240c8e7e43 Novice:
< * Add options to pg_config to show the share_dir, sysconfdir,
> * +Add options to pg_config to show the share_dir, sysconfdir,
2005-09-27 13:39:32 +00:00
Bruce Momjian
3ff1dc501e Done:
< * Allow protocol-level EXECUTE that is actually a fetch to appear
<   in the logs as a fetch rather than another execute
2005-09-26 15:52:35 +00:00
Bruce Momjian
88922598da Add:
> * Allow protocol-level BIND parameter values to be logged
> * Allow protocol-level EXECUTE that is actually a fetch to appear
>   in the logs as a fetch rather than another execute
2005-09-26 02:44:28 +00:00
Bruce Momjian
86044a9d71 Add:
> * Simplify dropping roles that have objects in several databases
2005-09-23 21:55:01 +00:00
Bruce Momjian
6db56cdf80 Add:
> 	o Allow PL/PgSQL to support WITH HOLD cursors
2005-09-23 20:41:39 +00:00
Bruce Momjian
bf8e536215 Add:
>
> 	o Display IN, INOUT, and OUT parameters in \df+
>
> 	  It probably requires psql to output newlines in the proper
> 	  column, which is already on the TODO list.
2005-09-23 20:32:49 +00:00
Bruce Momjian
e6bae1c3d3 Add:
> * Add function to report the time of the most recent server reload
2005-09-23 03:06:03 +00:00
Bruce Momjian
6e85717a77 Add:
> * Add options to pg_config to show the share_dir, sysconfdir,
>   pkgincludedir, and localedir
>
2005-09-23 03:04:24 +00:00
Bruce Momjian
c79671bdbb Add:
> * Allow CREATE INDEX to take an additional parameter for use with
>   special index types
>
2005-09-22 23:54:09 +00:00
Bruce Momjian
c37ddf371d Add:
>
> 	  Another idea would be to allow actual SELECT queries in a COPY.
2005-09-22 21:50:59 +00:00
Bruce Momjian
62da04f8e3 Add:
>
> 	o Allow COPY to output from views
>
2005-09-22 16:01:59 +00:00
Bruce Momjian
8d86982a11 Merge items:
<   This would be beneficial when there are few distinct values.
>   This would be beneficial when there are few distinct values.  This is
>   already used by GROUP BY.
946d946
< * Allow DISTINCT to use hashing like GROUP BY
2005-09-20 20:51:30 +00:00
Bruce Momjian
a34ec0ab4a Fix typo:
< * Allow WAL traffic to be steamed to another server for stand-by
> * Allow WAL traffic to be streamed to another server for stand-by
2005-09-20 02:21:29 +00:00
Bruce Momjian
7caaf8a022 Add:
> * Allow DISTINCT to use hashing like GROUP BY
2005-09-20 02:16:41 +00:00
Bruce Momjian
32f2cd3f35 Add:
> * Allow WAL traffic to be steamed to another server for stand-by
>   replication
2005-09-20 00:11:00 +00:00
Bruce Momjian
78b06948d0 Remove:
< * Research use of sched_yield() for spinlock acquisition failure
2005-09-19 22:32:32 +00:00
Bruce Momjian
591a29b398 update timestamp on file. 2005-09-19 15:01:28 +00:00
Bruce Momjian
3743f07a53 Add:
>
1032a1034
> * Remove BeOS and QNX-specific code
2005-09-17 12:12:58 +00:00
Bruce Momjian
e8960fc34f Add:
> 	o Fix SELECT INTERVAL '1' MONTH
2005-09-16 19:39:25 +00:00
Bruce Momjian
d64084daa5 Add:
<
> * Update Bonjour to work with newer cross-platform SDK
2005-09-16 17:37:10 +00:00
Bruce Momjian
0296606f78 Update wording:
<
390d388
<
453c451
< 	  removed or have its heap and index files truncated.  One
> 	  be removed or have its heap and index files truncated.  One
< * Use a phantom command counter for nested subtransactions to reduce
<   per-tuple overhead
2005-09-16 16:46:09 +00:00
Bruce Momjian
3f558e3dae Add:
> 	o Add single-step debugging of PL/PgSQL functions
2005-09-16 11:24:02 +00:00
Bruce Momjian
b72fe49b9c Add idea:
<   cmin/cmax pair and is stored in local memory.
>   cmin/cmax pair and is stored in local memory.  Another idea is to
>   store both cmin and cmax only in local memory.
2005-09-03 00:41:30 +00:00
Bruce Momjian
264cd5f04a Update.
< 	  have its heap and index files truncated.  One issue is
< 	  that no other backend should be able to add to the table
< 	  at the same time, which is something that is currently
< 	  allowed.
> 	  removed or have its heap and index files truncated.  One
> 	  issue is that no other backend should be able to add to
> 	  the table at the same time, which is something that is
> 	  currently allowed.
2005-09-02 21:23:05 +00:00
Bruce Momjian
ef6d5b4e25 Update:
> 	o Allow COPY on a newly-created table to skip WAL logging
450a452,456
> 	  On crash recovery, the table involved in the COPY would
> 	  have its heap and index files truncated.  One issue is
> 	  that no other backend should be able to add to the table
> 	  at the same time, which is something that is currently
> 	  allowed.
2005-09-02 21:10:59 +00:00
Bruce Momjian
f8ec875c39 Update:
< 	o Allow COPY into an empty table to skip WAL logging
> 	o Allow COPY into an new table to skip WAL logging
2005-09-02 21:01:20 +00:00
Bruce Momjian
5bddded69c Add:
> * Use UTF8 encoding for NLS messages so all server encodings can
>   read them properly
<         o %Add support for Unicode
<
< 	  To fix this, the data needs to be converted to/from UTF16/UTF8
<           so the Win32 wcscoll() can be used, and perhaps other functions
< 	  like towupper().  However, UTF8 already works with normal
< 	  locales but provides no ordering or character set classes.
2005-09-02 20:11:34 +00:00
Bruce Momjian
3bea1a353f Update wording:
<   could only see committed rows from another transaction. However,
>   could only see rows from another completed transaction. However,
981c981
<   proper visibility of the row, for example, for cursors.
>   proper visibility of the row's cmin, for example, for cursors.
2005-09-02 19:51:37 +00:00
Bruce Momjian
da08559e9b Add:
> 	o Allow COPY into an empty table to skip WAL logging
2005-09-02 19:39:15 +00:00
Bruce Momjian
fad7e8edac Add text:
* Merge xmin/xmax/cmin/cmax back into three header fields

  Before subtransactions, there used to be only three fields needed to
  store these four values. This was possible because only the current
  transaction looks at the cmin/cmax values. If the current transaction
  created and expired the row the fields stored where xmin (same as
  xmax), cmin, cmax, and if the transaction was expiring a row from a
  another transaction, the fields stored were xmin (cmin was not
  needed), xmax, and cmax. Such a system worked because a transaction
  could only see committed rows from another transaction. However,
  subtransactions can see rows from outer transactions, and once the
  subtransaction completes, the outer transaction continues, requiring
  the storage of all four fields. With subtransactions, an outer
  transaction can create a row, a subtransaction expire it, and when the
  subtransaction completes, the outer transaction still has to have
  proper visibility of the row, for example, for cursors.

  One possible solution is to create a phantom cid which represents a
  cmin/cmax pair and is stored in local memory.
2005-09-02 15:22:44 +00:00
Bruce Momjian
55af2a4337 Duplicate:
< * Maintain a map of recently-expired rows
<
<   This allows vacuum to target specific pages for possible free space
<   without requiring a sequential scan.
<
Update entry:

>   One complexity is that index entries still have to be vacuumed, and
>   doing this without an index scan (by using the heap values to find the
>   index entry) might be slow and unreliable, especially for user-defined
>   index functions.
2005-09-02 00:49:57 +00:00
Bruce Momjian
bc0650660a Add:
> * Eventually enable escape_string_warning and standard_conforming_strings
2005-08-30 23:25:23 +00:00
Bruce Momjian
a78a530829 Add:
> * Add function to return the thread safety status of libpq and ecpg
2005-08-28 18:52:37 +00:00
Bruce Momjian
a1a19bb8fb Add:
> * Allow user-defined types to specify a type modifier at table creation
>   time
2005-08-27 13:52:07 +00:00
Bruce Momjian
542faa8244 Update:
>
>   Another issue is whether underlying table changes should be reflected
>   in the view, e.g. should SELECT * show additional columns if they
>   are added after the view is created.
2005-08-27 13:38:43 +00:00
Bruce Momjian
f9244df78f Add:
> 	o Issue a warning if a change-on-restart-only postgresql.conf value
> 	  is modified  and the server config files are reloaded
> 	o Mark change-on-restart-only values in postgresql.conf
205a209
> 	o Fix SELECT '0.01 years'::interval, '0.01 months'::interval
2005-08-26 20:38:57 +00:00
Bruce Momjian
acba287aec Add description and item:
>
> 	  Currently, while \e saves a single query as one entry, interactive
> 	  queries are saved one line at a time.  Ideally all queries
> 	  whould be saved like \e does.
>
> 	o Allow multi-line column values to align in the proper columns
>
> 	  If the second output column value is 'a\nb', the 'b' should appear
> 	  in the second display column, rather than the first column as it
> 	  does now.
2005-08-26 19:41:18 +00:00
Bruce Momjian
cad7f831e1 Update based on user comments:
<   in PL/PgSQL is to use EXECUTE.
>   in PL/PgSQL is to use EXECUTE.  One complexity is that a function
>   might itself drop and recreate dependent tables, causing it to
>   invalidate its own query plan.
2005-08-26 19:32:43 +00:00
Bruce Momjian
bdfa8e5e71 Update constraint_exclusion items:
<   inheritance, and allow it to work for UPDATE and DELETE queries
>   inheritance, allow it to work for UPDATE and DELETE queries, and allow
>   it to be used for all queries with little performance impact
< * Allow constraint_elimination to be automatically performed
<
<   This requires additional code to reduce the performance loss caused by
<   constraint elimination.
2005-08-26 19:10:48 +00:00
Bruce Momjian
88d7b711a0 Remove completed items:
< * -Allow limits on per-db/role connections
43d41
< * -Prevent dropping user that still owns objects, or auto-drop the objects
49d46
< * -Add the client IP address and port to pg_stat_activity
< * -Add session start time and last statement time to pg_stat_activity
< * -Add a function that returns the start time of the postmaster
230d224
< 	o -Allow MIN()/MAX() on arrays
< 	o -Modify array literal representation to handle array index lower bound
< 	  of other than one
253d244
< * -Add function to return compressed length of TOAST data values
< * -Prevent to_char() on interval from returning meaningless values
<
<   For example, to_char('1 month', 'mon') is meaningless.  Basically,
<   most date-related parameters to to_char() are meaningless for
<   intervals because interval is not anchored to a date.
<
< * -Have views on temporary tables exist in the temporary namespace
< * -Allow temporary views on non-temporary tables
329d311
< * -Add BETWEEN SYMMETRIC/ASYMMETRIC
< * -Add E'' escape string marker so eventually ordinary strings can treat
<   backslashes literally, for portability
<
< * -Allow additional tables to be specified in DELETE for joins
<
<   UPDATE already allows this (UPDATE...FROM) but we need similar
<   functionality in DELETE.  It's been agreed that the keyword should
<   be USING, to avoid anything as confusing as DELETE FROM a FROM b.
<
341d313
< * -Allow REINDEX to rebuild all database indexes
< * -Add an option to automatically use savepoints for each statement in a
<   multi-statement transaction.
<
<   When enabled, this would allow errors in multi-statement transactions
<   to be automatically ignored.
<
426d391
< 	o -Allow FOR UPDATE queries to do NOWAIT locks
473d437
< 	o -Allow COPY to understand \x as a hex byte
< 	o -Allow COPY to optionally include column headings in the first line
< 	o -Allow COPY FROM ... CSV to interpret newlines and carriage
< 	  returns in data
525d485
< 	o -Have SHOW ALL show descriptions for server-side variables
< 	o -Allow PL/PgSQL's RAISE function to take expressions
<
< 	  Currently only constants are supported.
<
< 	o -Change PL/PgSQL to use palloc() instead of malloc()
545d499
< 	o -Allow PL/pgSQL EXECUTE query_var INTO record_var;
550d503
< 	o -Pass arrays natively instead of as text between plperl and postgres
598d550
< 	o -Add dumping and restoring of LOB comments
638d589
< * -Implement shared row locks and use them in RI triggers
642d592
< * -Allow triggers to be disabled
< * -Add two-phase commit
<
<
< * -Prevent inherited tables from expanding temporary subtables of other
<   sessions
< * -Use indexes for MIN() and MAX()
<
<   MIN/MAX queries can already be rewritten as SELECT col FROM tab ORDER
<   BY col {DESC} LIMIT 1. Completing this item involves doing this
<   transformation automatically.
<
< * -Use index to restrict rows returned by multi-key index when used with
<   non-consecutive keys to reduce heap accesses
<
<   For an index on col1,col2,col3, and a WHERE clause of col1 = 5 and
<   col3 = 9, spin though the index checking for col1 and col3 matches,
<   rather than just col1; also called skip-scanning.
<
< * -Fetch heap pages matching index entries in sequential order
<
<   Rather than randomly accessing heap pages based on index entries, mark
<   heap pages needing access in a bitmap and do the lookups in sequential
<   order. Another method would be to sort heap ctids matching the index
<   before accessing the heap rows.
<
< * -Allow non-bitmap indexes to be combined by creating bitmaps in memory
<
<   This feature allows separate indexes to be ANDed or ORed together.  This
<   is particularly useful for data warehousing applications that need to
<   query the database in an many permutations.  This feature scans an index
<   and creates an in-memory bitmap, and allows that bitmap to be combined
<   with other bitmap created in a similar way.  The bitmap can either index
<   all TIDs, or be lossy, meaning it records just page numbers and each
<   page tuple has to be checked for validity in a separate pass.
<
< * -Fix incorrect rtree results due to wrong assumptions about "over"
<   operator semantics
782d694
< 	o -Add concurrency to GIST
813d724
< * -Allow multiple blocks to be written to WAL with one write()
< * -Consider use of open/fcntl(O_DIRECT) to minimize OS caching,
<   for WAL writes
<
<   O_DIRECT doesn't have the same media write guarantees as fsync, so it
<   is in addition to the fsync method, not in place of it.
<
< * -Cache last known per-tuple offsets to speed long tuple access
< * -Allow the size of the buffer cache used by temporary objects to be
<   specified as a GUC variable
<
<   Larger local buffer cache sizes requires more efficient handling of
<   local cache lookups.
<
< * -Improve the background writer
<
<   Allow the background writer to more efficiently write dirty buffers
<   from the end of the LRU cache and use a clock sweep algorithm to
<   write other dirty buffers to reduced checkpoint I/O
<
897d788
< * -Add a warning when the free space map is too small
917d807
< 	o -Move into the backend code
< * -Make locking of shared data structures more fine-grained
<
<   This requires that more locks be acquired but this would reduce lock
<   contention, improving concurrency.
<
< * -Improve SMP performance on i386 machines
<
<   i386-based SMP machines can generate excessive context switching
<   caused by lock failure in high concurrency situations. This may be
<   caused by CPU cache line invalidation inefficiencies.
<
979d857
< 	o  -Add ability to turn off full page writes
< * -Eliminate WAL logging for CREATE TABLE AS when not doing WAL archiving
< * -Change WAL to use 32-bit CRC, for performance reasons
<
< * -Use CHECK constraints to influence optimizer decisions
<
<   CHECK constraints contain information about the distribution of values
<   within the table. This is also useful for implementing subtables where
<   a tables content is distributed across several subtables.
<
1045d913
< * -ANALYZE should record a pg_statistic entry for an all-NULL column
1099d966
< * -Remove kerberos4 from source tree
1103d969
< * -Make src/port/snprintf.c thread-safe
1118d983
< * -Add C code on Unix to copy directories for use in creating new databases
1133d997
< 	o -Improve dlerror() reporting string
2005-08-26 18:59:48 +00:00
Bruce Momjian
9f60468797 Great TODO updates from Tom:
<   Currently SIGTERM of a backend can lead to lock table corruption.
>   Lock table corruption following SIGTERM of an individual backend
>   has been reported in 8.0.  A possible cause was fixed in 8.1, but
>   it is unknown whether other problems exist.  This item mostly
>   requires additional testing rather than of writing any new code.
< 	o Allow postgresql.conf values to be set so they can not be changed
< 	  by the user
166c167,171
< * %Remove Money type, add money formatting for decimal type
> * Improve the MONEY data type
>
>   Change the MONEY data type to use DECIMAL internally, with special
>   locale-aware output formatting.
>
225c230
< 	o %Allow MIN()/MAX() on arrays
> 	o -Allow MIN()/MAX() on arrays
228c233
< 	o Modify array literal representation to handle array index lower bound
> 	o -Modify array literal representation to handle array index lower bound
235a241
> 	o Auto-delete large objects when referencing row is deleted
< 	  Currently large objects entries do not have owners. Permissions can
< 	  only be set at the pg_largeobject table level.
>           /contrib/lo offers this functionality.
240d244
< 	o Auto-delete large objects when referencing row is deleted
< * %Have views on temporary tables exist in the temporary namespace
< * Allow temporary views on non-temporary tables
< * %Allow RULE recompilation
> * -Have views on temporary tables exist in the temporary namespace
> * -Allow temporary views on non-temporary tables
> * Allow VIEW/RULE recompilation when the underlying tables change
340a345,347
>
>   This is like DELETE CASCADE, but truncates.
>
381c388
< * Make row-wise comparisons work per SQL spec
> * %Make row-wise comparisons work per SQL spec
< 	o Currently the system uses the operating system COPY command to
< 	  create a new database. Add ON COMMIT capability to CREATE TABLE AS
< 	  SELECT
> 	o Add ON COMMIT capability to CREATE TABLE AS ... SELECT
427c432
< 	o %Add ALTER DOMAIN TYPE
> 	o Add ALTER DOMAIN to modify the underlying data type
< 	o %Disallow dropping of an inherited constraint
< 	o -Allow objects to be moved to different schemas
> 	o Add missing object types for ALTER ... SET SCHEMA
< 	o %Prevent child tables from altering constraints like CHECK that were
< 	  inherited from the parent table
> 	o %Disallow dropping of an inherited constraint
> 	o %Prevent child tables from altering or dropping constraints
>           like CHECK that were inherited from the parent table
< 	o Handle references to temporary tables that are created, destroyed,
< 	  then recreated during a session, and EXECUTE is not used
<
< 	  This requires the cached PL/PgSQL byte code to be invalidated when
< 	  an object referenced in the function is changed.
<
< 	o Add table function support to pltcl, plperl, plpython?
< 	o Allow PL/pgSQL to name columns by ordinal position, e.g. rec.(3)
> 	o Add table function support to pltcl, plpython
549a548
> 	o Allow function argument names to be queries from PL/PgSQL
< 	o Pass arrays natively instead of as text between plperl and postgres
< 	o Add support for polymorphic arguments and return types to plperl
> 	o -Pass arrays natively instead of as text between plperl and postgres
> 	o Add support for polymorphic arguments and return types to
> 	  languages other than PL/PgSQL
> 	o Add support for OUT and INOUT parameters to languages other
> 	  than PL/PgSQL
< * Allow libpq to access SQLSTATE so pg_ctl can test for connection failure
<
<   This would be used for checking if the server is up.
<
565c563
< * Have initdb set DateStyle based on locale?
> * Have initdb set the input DateStyle (MDY or DMY) based on locale?
567d564
< * Add a schema option to createlang
< 	o Add pg_dumpall custom format dumps.
<
< 	  This is probably best done by combining pg_dump and pg_dumpall
< 	  into a single binary.
<
> 	o Add pg_dumpall custom format dumps?
612c605,606
< 	o Remove unnecessary abstractions in pg_dump source code
> 	o Remove unnecessary function pointer abstractions in pg_dump source
> 	  code
< * %Remove CREATE CONSTRAINT TRIGGER
<
<   This was used in older releases to dump referential integrity
<   constraints.
<
682a672,675
>   This is particularly important for references to temporary tables
>   in PL/PgSQL because PL/PgSQL caches query plans.  The only workaround
>   in PL/PgSQL is to use EXECUTE.
>
748c741
< * Fetch heap pages matching index entries in sequential order
> * -Fetch heap pages matching index entries in sequential order
797c790
< 	  Currently no only one hash bucket can be stored on a page. Ideally
> 	  Currently only one hash bucket can be stored on a page. Ideally
806a800,802
> 	o Add WAL logging for crash recovery
> 	o Allow multi-column hash indexes
>
812a809,812
>
>   Ideally this requires a separate test program that can be run
>   at initdb time or optionally later.
>
867c867
< * Improve the background writer
> * -Improve the background writer
<   For large table adjustements during vacuum, it is faster to reindex
<   rather than update the index.
>   For large table adjustements during VACUUM FULL, it is faster to
>   reindex rather than update the index.
< * Reduce lock time by moving tuples with read lock, then write
<   lock and truncate table
> * Reduce lock time during VACUUM FULL by moving tuples with read lock,
>   then write lock and truncate table
919c919,920
< 	o %Suggest VACUUM FULL if a table is nearly empty
> 	o %Issue log message to suggest VACUUM FULL if a table is nearly
> 	  empty?
995d995
< * Add WAL index reliability improvement to non-btree indexes
1045c1045
< * ANALYZE should record a pg_statistic entry for an all-NULL column
> * -ANALYZE should record a pg_statistic entry for an all-NULL column
1047a1048,1051
> * Allow constraint_elimination to be automatically performed
>
>   This requires additional code to reduce the performance loss caused by
>   constraint elimination.
1090c1094
< * Remove memory/file descriptor freeing before ereport(ERROR)
> * %Remove memory/file descriptor freeing before ereport(ERROR)
< * Promote debug_query_string into a server-side function current_query()
< * Allow the identifier length to be increased via a configure option
> * %Promote debug_query_string into a server-side function current_query()
> * %Allow the identifier length to be increased via a configure option
1113d1116
< * Fix cross-compiling of time zone database via 'zic'
1130c1133
< 	o Improve dlerror() reporting string
> 	o -Improve dlerror() reporting string
1132c1135
<         o Add support for Unicode
>         o %Add support for Unicode
2005-08-26 18:52:44 +00:00
Bruce Momjian
12c41d7ebd Completed:
< * -Allow triggers to be disabled [trigger]
> * -Allow triggers to be disabled
2005-08-25 01:26:01 +00:00
Bruce Momjian
c4bf58213e Remove sentence:
< 	  Logically, a reload should set the same values as a
<           server restart.
2005-08-24 20:34:05 +00:00
Bruce Momjian
75f633b6d1 Update:
<           Currently, if a variable is commented out, it keeps the
<           previous uncommented value until a server restarted.
> 	  Currently, if a variable is commented out, it keeps the
> 	  previous uncommented value until a server restarted.
> 	  Logically, a reload should set the same values as a
>           server restart.
2005-08-24 19:43:26 +00:00
Bruce Momjian
a06d98bbf4 Additem:
> * Add sleep() function, remove from regress.c
2005-08-24 17:56:20 +00:00
Bruce Momjian
249a720ec5 Add:
> 	o Add sleep() to PL/PgSQL
2005-08-24 16:49:39 +00:00
Bruce Momjian
c864c3bf9a Fix typo. 2005-08-24 14:24:19 +00:00
Bruce Momjian
ee2b61ee55 Mark "easy" items.
Jim C. Nasby
2005-08-24 14:05:37 +00:00
Bruce Momjian
6ca102d676 Update:
< 	o Do VACUUM FULL if table is nearly empty?
> 	o Suggest VACUUM FULL if a table is nearly empty
2005-08-24 14:00:36 +00:00
Bruce Momjian
69e4e570b7 Add explaination:
>
>           Currently, if a variable is commented out, it keeps the
>           previous uncommented value until a server restarted.
>
2005-08-24 13:57:27 +00:00
Bruce Momjian
2b215215ad Mark item as complete, add another:
< * Allow triggers to be disabled [trigger]
> * -Allow triggers to be disabled [trigger]
> * Allow triggers to be disabled in only the current session.
<   Currently the only way to disable triggers is to modify the system
<   tables.
>   This is currently possible by starting a multi-statement transaction,
>   modifying the system tables, performing the desired SQL, restoring the
>   system tables, and committing the transaction.  ALTER TABLE ...
>   TRIGGER requires a table lock so it is not idea for this usage.
2005-08-23 23:51:18 +00:00
Bruce Momjian
a7f49252d2 enable_constraint_exclusion => constraint_exclusion
Also improve wording.
2005-08-22 17:35:03 +00:00
Bruce Momjian
e22443f405 Add:
> * Fix problems with wrong runtime encoding conversion for NLS message files
2005-08-21 01:04:45 +00:00
Bruce Momjian
96f63aebc8 Add:
> 	o Remove unnecessary abstractions in pg_dump source code
2005-08-18 14:14:31 +00:00
Bruce Momjian
a11fe54507 Done:
> * -Prevent to_char() on interval from returning meaningless values
2005-08-18 04:42:41 +00:00
Bruce Momjian
f80cf69031 Combine entries:
<   inheritance
< * Allow enable_constraint_exclusion to work for UPDATE and DELETE queries
>   inheritance, and allow it to work for UPDATE and DELETE queries
2005-08-09 20:24:31 +00:00
Bruce Momjian
20e2644761 Done:
> * -Add C code on Unix to copy directories for use in creating new databases
2005-08-09 17:14:48 +00:00
Bruce Momjian
6a3021b7d3 Done:
> * -Allow multiple blocks to be written to WAL with one write()
2005-08-09 04:51:18 +00:00
Bruce Momjian
2dd9672d96 Done:
> 	o -Allow FOR UPDATE queries to do NOWAIT locks
2005-08-08 20:26:53 +00:00
Bruce Momjian
e48b28b688 Done:
< * Prevent inherited tables from expanding temporary subtables of other
> * -Prevent inherited tables from expanding temporary subtables of other
2005-08-03 01:46:25 +00:00
Bruce Momjian
614b6e2581 Done:
> * -Allow limits on per-db/role connections
2005-08-01 14:13:30 +00:00
Bruce Momjian
523997daf1 Done:
< 	o Allow objects to be moved to different schemas
> 	o -Allow objects to be moved to different schemas

Fix word wrap:

< 	* Allow GRANT/REVOKE permissions to be applied to all schema objects with one
< 	  command
> 	o Allow GRANT/REVOKE permissions to be applied to all schema objects
> 	  with one command
2005-08-01 14:05:03 +00:00
Bruce Momjian
a85e5d1b1b Add description:
< 	  This would require a new global table that is dumped to flat file for
< 	  use by the postmaster.  We do a similar thing for pg_shadow currently.
> 	  This would add a function to load the SQL table from
>           pg_hba.conf, and one to writes its contents to the flat file.
> 	  The table should have a line number that is a float so rows
> 	  can be inserted between existing rows, e.g. row 2.5 goes
> 	  between row 2 and row 3.
2005-08-01 00:52:27 +00:00
Bruce Momjian
b125877107 Suggest syntax:
< 	o Allow postgresql.conf file values to be changed via an SQL API
> 	o Allow postgresql.conf file values to be changed via an SQL
> 	  API, perhaps using SET GLOBAL
2005-07-31 13:54:52 +00:00
Bruce Momjian
73b574c187 Add item to sentence:
< 	* Allow server logs to be remotely read using SQL commands
151a151
> * Allow server logs to be remotely read and removed using SQL commands
2005-07-31 03:28:52 +00:00
Bruce Momjian
81b1551e41 Spacing improvement. 2005-07-31 03:08:35 +00:00
Bruce Momjian
90524998c0 Add constraint exclusion items:
<
> * Allow EXPLAIN to identify tables that were skipped because of
>   enable_constraint_exclusion
> * Allow EXPLAIN output to be more easily processed by scripts
760a763
> * Allow enable_constraint_exclusion to work for UPDATE and DELETE queries
2005-07-30 04:05:17 +00:00
Bruce Momjian
326816295e Add:
<
> * Allow enable_constraint_exclusion to work for UNIONs like it does for
>   inheritance
2005-07-30 03:59:23 +00:00
Bruce Momjian
f9512130f9 Add:
> * Prevent inherited tables from expanding temporary subtables of other
>   sessions
2005-07-30 03:49:17 +00:00
Bruce Momjian
aa8290be99 Add:
> * Add system view to show free space map contents
884c885
< 	o Move into the backend code
> 	o -Move into the backend code
2005-07-30 03:21:41 +00:00
Bruce Momjian
24df49bd5a Add:
> * Allow SELECT ... FOR UPDATE on inherited tables
2005-07-30 03:18:38 +00:00
Bruce Momjian
43e33c51d4 Clarify:
< * Add TRUNCATE permission
> * Add a separate TRUNCATE permission
2005-07-30 03:16:08 +00:00
Bruce Momjian
3fae29ef13 Add:
> * Add TRUNCATE permission
>
>   Currently only the owner can TRUNCATE a table because triggers are not
>   called, and the table is locked in exclusive mode.
>
2005-07-30 03:15:22 +00:00
Bruce Momjian
9ebe05c5bc Add:
> * Add PQescapeIdentifier() to libpq
2005-07-30 02:52:30 +00:00
Bruce Momjian
f387e0615c Add detail:
>
> 	   If CRC check fails during recovery, remember the page in case
> 	   a later CRC for that page properly matches.
>
2005-07-29 16:05:28 +00:00
Bruce Momjian
5b63e7b467 Done:
< * Consider use of open/fcntl(O_DIRECT) to minimize OS caching,
<   especially for WAL writes
> * -Consider use of open/fcntl(O_DIRECT) to minimize OS caching,
>   for WAL writes
2005-07-29 03:23:00 +00:00
Bruce Momjian
9ad9e694ac Add:
> 	o Allow postgresql.conf file values to be changed via an SQL API
> 	o Allow the server to be stopped/restarted via an SQL API
2005-07-25 15:27:06 +00:00
Bruce Momjian
0e5c62d065 Add:
<
> * Research storing disk pages with no alignment/padding
2005-07-21 13:43:16 +00:00
Bruce Momjian
42e7b0f02f Update.
< 	  computations should adjust based on the time zone rules, e.g.
< 	  adding 24 hours to a timestamp would yield a different result from
< 	  adding one day.
<
> 	  computations should adjust based on the time zone rules.
2005-07-10 05:06:42 +00:00
Bruce Momjian
a4ffa38234 Done:
> * -Prevent dropping user that still owns objects, or auto-drop the objects
2005-07-08 02:44:37 +00:00
Bruce Momjian
442b59dd8b Update:
< 	   writer.
> 	   writer.  It might cause problems for applying WAL on recovery
> 	   into a partially-written page, but later the full page will be
> 	   replaced from WAL.
2005-07-07 16:02:06 +00:00
Bruce Momjian
f0a2a91918 Update:
>
> 	o  -Add ability to turn off full page writes
> 	o  When off, write CRC to WAL and check file system blocks
> 	   on recovery
> 	o  Write full pages during file system write and not when
> 	   the page is modified in the buffer cache
>
> 	   This allows most full page writes to happen in the background
> 	   writer.
2005-07-07 15:18:26 +00:00
Bruce Momjian
7d2e1cb730 Done:
> * -Add function to return compressed length of TOAST data values
2005-07-06 03:40:15 +00:00
Bruce Momjian
d22a3727a5 Remove, now have GUC:
< * Turn off full page writes if fsync is disabled
<
<   If fsync is off, there is no purpose in writing full pages to WAL
<
2005-07-05 22:59:36 +00:00
Bruce Momjian
3bf4e4120d Add:
<
881a881,882
> 	o Improve xid wraparound detection by recording per-table rather
> 	  than per-database
2005-07-05 19:37:54 +00:00
Bruce Momjian
de5d30069b More TODO list section restructuring. 2005-07-04 17:43:42 +00:00
Bruce Momjian
8ea398513e Restructure TODO sections. 2005-07-04 17:00:32 +00:00
Bruce Momjian
e652d2c476 Update
> * Allow GIST indexes to create certain complex index types, like digital
>   trees (see Aoki)
>
783a787
>
2005-07-04 12:32:38 +00:00