Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9f60468

Browse files
committed
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 user166c167,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 arrays228c233< o Modify array literal representation to handle array index lower bound> o -Modify array literal representation to handle array index lower bound235a241> 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 change340a345,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 ... SELECT427c432< 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, plpython549a548> 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 order797c790< Currently no only one hash bucket can be stored on a page. Ideally> Currently only one hash bucket can be stored on a page. Ideally806a800,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 table919c919,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 indexes1045c1045< * ANALYZE should record a pg_statistic entry for an all-NULL column> * -ANALYZE should record a pg_statistic entry for an all-NULL column1047a1048,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 option1113d1116< * Fix cross-compiling of time zone database via 'zic'1130c1133< o Improve dlerror() reporting string> o -Improve dlerror() reporting string1132c1135< o Add support for Unicode> o %Add support for Unicode
1 parenta9118fc commit9f60468

File tree

2 files changed

+132
-126
lines changed

2 files changed

+132
-126
lines changed

‎doc/TODO

Lines changed: 68 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
PostgreSQL TODO List
33
====================
44
Current maintainer:Bruce Momjian (pgman@candle.pha.pa.us)
5-
Last updated:Wed Aug24 21:24:51 EDT 2005
5+
Last updated:Fri Aug26 14:52:30 EDT 2005
66

77
The most recent version of this document can be viewed at
88
http://www.postgresql.org/docs/faqs.TODO.html.
@@ -35,7 +35,10 @@ Administration
3535
* Allow administrators to safely terminate individual sessions either
3636
via an SQL function or SIGTERM
3737

38-
Currently SIGTERM of a backend can lead to lock table corruption.
38+
Lock table corruption following SIGTERM of an individual backend
39+
has been reported in 8.0. A possible cause was fixed in 8.1, but
40+
it is unknown whether other problems exist. This item mostly
41+
requires additional testing rather than of writing any new code.
3942

4043
* -Prevent dropping user that still owns objects, or auto-drop the objects
4144
* %Set proper permissions on non-system schemas during db creation
@@ -63,8 +66,6 @@ Administration
6366
* Configuration files
6467

6568
o %Add "include file" functionality in postgresql.conf
66-
o Allow postgresql.conf values to be set so they can not be changed
67-
by the user
6869
o %Allow commenting of variables in postgresql.conf to restore them
6970
to defaults
7071

@@ -163,7 +164,11 @@ Monitoring
163164
Data Types
164165
==========
165166

166-
* %Remove Money type, add money formatting for decimal type
167+
* Improve the MONEY data type
168+
169+
Change the MONEY data type to use DECIMAL internally, with special
170+
locale-aware output formatting.
171+
167172
* Change NUMERIC to enforce the maximum precision, and increase it
168173
* Add NUMERIC division operator that doesn't round?
169174

@@ -222,22 +227,21 @@ Data Types
222227
* Arrays
223228

224229
o Allow NULLs in arrays
225-
o%Allow MIN()/MAX() on arrays
230+
o-Allow MIN()/MAX() on arrays
226231
o Delay resolution of array expression's data type so assignment
227232
coercion can be performed on empty array expressions
228-
o Modify array literal representation to handle array index lower bound
233+
o-Modify array literal representation to handle array index lower bound
229234
of other than one
230235

231236

232237
* Binary Data
233238

234239
o Improve vacuum of large objects, like /contrib/vacuumlo?
235240
o Add security checking for large objects
241+
o Auto-delete large objects when referencing row is deleted
236242

237-
Currently large objects entries do not have owners. Permissions can
238-
only be set at the pg_largeobject table level.
243+
/contrib/lo offers this functionality.
239244

240-
o Auto-delete large objects when referencing row is deleted
241245
o Allow read/write into TOAST values like large objects
242246

243247
This requires the TOAST column to be stored EXTERNAL.
@@ -314,9 +318,9 @@ Views / Rules
314318

315319
* Add the functionality for WITH CHECK OPTION clause of CREATE VIEW
316320
* Allow NOTIFY in rules involving conditionals
317-
*%Have views on temporary tables exist in the temporary namespace
318-
* Allow temporary views on non-temporary tables
319-
*%Allow RULE recompilation
321+
*-Have views on temporary tables exist in the temporary namespace
322+
*-Allow temporary views on non-temporary tables
323+
* AllowVIEW/RULE recompilation when the underlying tables change
320324

321325

322326
SQL Commands
@@ -338,6 +342,9 @@ SQL Commands
338342
* Add ROLLUP, CUBE, GROUPING SETS options to GROUP BY
339343
* %Allow SET CONSTRAINTS to be qualified by schema/table name
340344
* %Allow TRUNCATE ... CASCADE/RESTRICT
345+
346+
This is like DELETE CASCADE, but truncates.
347+
341348
* %Add a separate TRUNCATE permission
342349

343350
Currently only the owner can TRUNCATE a table because triggers are not
@@ -378,7 +385,7 @@ SQL Commands
378385
When enabled, this would allow errors in multi-statement transactions
379386
to be automatically ignored.
380387

381-
* Make row-wise comparisons work per SQL spec
388+
*%Make row-wise comparisons work per SQL spec
382389
* Add RESET CONNECTION command to reset all session state
383390

384391
This would include resetting of all variables (RESET ALL), dropping of
@@ -404,9 +411,7 @@ SQL Commands
404411
o Use more reliable method for CREATE DATABASE to get a consistent
405412
copy of db?
406413

407-
o Currently the system uses the operating system COPY command to
408-
create a new database. Add ON COMMIT capability to CREATE TABLE AS
409-
SELECT
414+
o Add ON COMMIT capability to CREATE TABLE AS ... SELECT
410415

411416

412417
* UPDATE
@@ -424,20 +429,20 @@ SQL Commands
424429
* ALTER
425430

426431
o %Have ALTER TABLE RENAME rename SERIAL sequence names
427-
o%Add ALTER DOMAINTYPE
432+
o Add ALTER DOMAINto modify the underlying data type
428433
o %Allow ALTER TABLE ... ALTER CONSTRAINT ... RENAME
429434
o %Allow ALTER TABLE to change constraint deferrability and actions
430-
o %Disallow dropping of an inherited constraint
431-
o -Allow objects to be moved to different schemas
435+
o Add missing object types for ALTER ... SET SCHEMA
432436
o Allow ALTER TABLESPACE to move to different directories
433437
o Allow databases to be moved to different tablespaces
434438
o Allow moving system tables to other tablespaces, where possible
435439

436440
Currently non-global system tables must be in the default database
437441
tablespace. Global system tables can never be moved.
438442

439-
o %Prevent child tables from altering constraints like CHECK that were
440-
inherited from the parent table
443+
o %Disallow dropping of an inherited constraint
444+
o %Prevent child tables from altering or dropping constraints
445+
like CHECK that were inherited from the parent table
441446

442447

443448
* CLUSTER
@@ -532,39 +537,31 @@ SQL Commands
532537
Currently only constants are supported.
533538

534539
o -Change PL/PgSQL to use palloc() instead of malloc()
535-
o Handle references to temporary tables that are created, destroyed,
536-
then recreated during a session, and EXECUTE is not used
537-
538-
This requires the cached PL/PgSQL byte code to be invalidated when
539-
an object referenced in the function is changed.
540-
541540
o Fix PL/pgSQL RENAME to work on variables other than OLD/NEW
542541
o Allow function parameters to be passed by name,
543542
get_employee_salary(emp_id => 12345, tax_year => 2001)
544543
o Add Oracle-style packages
545-
o Add table function support to pltcl, plperl, plpython?
546-
o Allow PL/pgSQL to name columns by ordinal position, e.g. rec.(3)
544+
o Add table function support to pltcl, plpython
547545
o -Allow PL/pgSQL EXECUTE query_var INTO record_var;
548546
o Add capability to create and call PROCEDURES
549547
o Allow PL/pgSQL to handle %TYPE arrays, e.g. tab.col%TYPE[]
548+
o Allow function argument names to be queries from PL/PgSQL
550549
o Add MOVE to PL/pgSQL
551-
o Pass arrays natively instead of as text between plperl and postgres
552-
o Add support for polymorphic arguments and return types to plperl
550+
o -Pass arrays natively instead of as text between plperl and postgres
551+
o Add support for polymorphic arguments and return types to
552+
languages other than PL/PgSQL
553+
o Add support for OUT and INOUT parameters to languages other
554+
than PL/PgSQL
553555

554556

555557
Clients
556558
=======
557559

558560
* Add a libpq function to support Parse/DescribeStatement capability
559561
* Prevent libpq's PQfnumber() from lowercasing the column name?
560-
* Allow libpq to access SQLSTATE so pg_ctl can test for connection failure
561-
562-
This would be used for checking if the server is up.
563-
564562
* Add PQescapeIdentifier() to libpq
565-
* Have initdb set DateStyle based on locale?
563+
* Have initdb setthe inputDateStyle (MDY or DMY) based on locale?
566564
* Have pg_ctl look at PGHOST in case it is a socket directory?
567-
* Add a schema option to createlang
568565
* Allow pg_ctl to work properly with configuration files located outside
569566
the PGDATA directory
570567

@@ -602,14 +599,11 @@ Clients
602599
o Stop dumping CASCADE on DROP TYPE commands in clean mode
603600
o %Add full object name to the tag field. eg. for operators we need
604601
'=(integer, integer)', instead of just '='.
605-
o Add pg_dumpall custom format dumps.
606-
607-
This is probably best done by combining pg_dump and pg_dumpall
608-
into a single binary.
609-
602+
o Add pg_dumpall custom format dumps?
610603
o %Add CSV output format
611604
o Update pg_dump and psql to use the new COPY libpq API (Christopher)
612-
o Remove unnecessary abstractions in pg_dump source code
605+
o Remove unnecessary function pointer abstractions in pg_dump source
606+
code
613607

614608

615609
* ecpg
@@ -660,11 +654,6 @@ Referential Integrity
660654

661655
* Allow statement-level triggers to access modified rows
662656
* Support triggers on columns (Greg Sabino Mullane)
663-
* %Remove CREATE CONSTRAINT TRIGGER
664-
665-
This was used in older releases to dump referential integrity
666-
constraints.
667-
668657
* Enforce referential integrity for system tables
669658
* Allow AFTER triggers on system tables
670659

@@ -680,6 +669,10 @@ Dependency Checking
680669
* Flush cached query plans when the dependent objects change
681670
* Track dependencies in function bodies and recompile/invalidate
682671

672+
This is particularly important for references to temporary tables
673+
in PL/PgSQL because PL/PgSQL caches query plans. The only workaround
674+
in PL/PgSQL is to use EXECUTE.
675+
683676

684677
Exotic Features
685678
===============
@@ -745,7 +738,7 @@ Indexes
745738
Uniqueness (index) checks are done when updating a column even if the
746739
column is not modified by the UPDATE.
747740

748-
* Fetch heap pages matching index entries in sequential order
741+
*-Fetch heap pages matching index entries in sequential order
749742

750743
Rather than randomly accessing heap pages based on index entries, mark
751744
heap pages needing access in a bitmap and do the lookups in sequential
@@ -794,7 +787,7 @@ Indexes
794787

795788
o Pack hash index buckets onto disk pages more efficiently
796789

797-
Currentlynoonly one hash bucket can be stored on a page. Ideally
790+
Currently only one hash bucket can be stored on a page. Ideally
798791
several hash buckets could be stored on a single page and greater
799792
granularity used for the hash algorithm.
800793

@@ -804,12 +797,19 @@ Indexes
804797
o In hash indexes, consider storing the hash value with or instead
805798
of the key itself
806799

800+
o Add WAL logging for crash recovery
801+
o Allow multi-column hash indexes
802+
807803

808804
Fsync
809805
=====
810806

811807
* Improve commit_delay handling to reduce fsync()
812808
* Determine optimal fdatasync/fsync, O_SYNC/O_DSYNC options
809+
810+
Ideally this requires a separate test program that can be run
811+
at initdb time or optionally later.
812+
813813
* -Allow multiple blocks to be written to WAL with one write()
814814
* %Add an option to sync() before fsync()'ing checkpoint files
815815
* Add program to test if fsync has a delay compared to non-fsync
@@ -864,7 +864,7 @@ Cache Usage
864864
Larger local buffer cache sizes requires more efficient handling of
865865
local cache lookups.
866866

867-
* Improve the background writer
867+
*-Improve the background writer
868868

869869
Allow the background writer to more efficiently write dirty buffers
870870
from the end of the LRU cache and use a clock sweep algorithm to
@@ -884,11 +884,11 @@ Vacuum
884884

885885
* Improve speed with indexes
886886

887-
For large table adjustements duringvacuum, it is faster toreindex
888-
rather than update the index.
887+
For large table adjustements duringVACUUM FULL, it is faster to
888+
reindexrather than update the index.
889889

890-
* Reduce lock time by moving tuples with read lock, then write
891-
lock and truncate table
890+
* Reduce lock timeduring VACUUM FULLby moving tuples with read lock,
891+
then writelock and truncate table
892892

893893
Moved tuples are invisible to other backends so they don't require a
894894
write lock. However, the read lock promotion to write lock could lead
@@ -916,7 +916,8 @@ Vacuum
916916

917917
o -Move into the backend code
918918
o Use free-space map information to guide refilling
919-
o %Suggest VACUUM FULL if a table is nearly empty
919+
o %Issue log message to suggest VACUUM FULL if a table is nearly
920+
empty?
920921
o Improve xid wraparound detection by recording per-table rather
921922
than per-database
922923

@@ -992,7 +993,6 @@ Write-Ahead Log
992993

993994
* Reduce WAL traffic so only modified values are written rather than
994995
entire rows?
995-
* Add WAL index reliability improvement to non-btree indexes
996996
* Allow the pg_xlog directory location to be specified during initdb
997997
with a symlink back to the /data location
998998
* Allow WAL information to recover corrupted pg_controldata
@@ -1042,9 +1042,13 @@ Optimizer / Executor
10421042

10431043
This would be beneficial when there are few distinct values.
10441044

1045-
* ANALYZE should record a pg_statistic entry for an all-NULL column
1045+
*-ANALYZE should record a pg_statistic entry for an all-NULL column
10461046
* Log queries where the optimizer row estimates were dramatically
10471047
different from the number of rows actually found?
1048+
* Allow constraint_elimination to be automatically performed
1049+
1050+
This requires additional code to reduce the performance loss caused by
1051+
constraint elimination.
10481052

10491053

10501054
Miscellaneous Performance
@@ -1087,10 +1091,10 @@ Source Code
10871091
* Add optional CRC checksum to heap and index pages
10881092
* Improve documentation to build only interfaces (Marc)
10891093
* Remove or relicense modules that are not under the BSD license, if possible
1090-
* Remove memory/file descriptor freeing before ereport(ERROR)
1094+
*%Remove memory/file descriptor freeing before ereport(ERROR)
10911095
* Acquire lock on a relation before building a relcache entry for it
1092-
* Promote debug_query_string into a server-side function current_query()
1093-
* Allow the identifier length to be increased via a configure option
1096+
*%Promote debug_query_string into a server-side function current_query()
1097+
*%Allow the identifier length to be increased via a configure option
10941098
* Remove Win32 rename/unlink looping if unnecessary
10951099
* -Remove kerberos4 from source tree
10961100
* Allow cross-compiling by generating the zic database on the target system
@@ -1110,7 +1114,6 @@ Source Code
11101114
is already possible to install into a directory that doesn't contain
11111115
spaces and then copy the install to a directory with spaces.
11121116

1113-
* Fix cross-compiling of time zone database via 'zic'
11141117
* Fix sgmltools so PDFs can be generated with bookmarks
11151118
* -Add C code on Unix to copy directories for use in creating new databases
11161119
* %Clean up compiler warnings (especially with gcc version 4)
@@ -1127,9 +1130,9 @@ Source Code
11271130
backslashes
11281131
o Re-enable timezone output on log_line_prefix '%t' when a
11291132
shorter timezone string is available
1130-
o Improve dlerror() reporting string
1133+
o-Improve dlerror() reporting string
11311134
o Fix problem with shared memory on the Win32 Terminal Server
1132-
o Add support for Unicode
1135+
o%Add support for Unicode
11331136

11341137
To fix this, the data needs to be converted to/from UTF16/UTF8
11351138
so the Win32 wcscoll() can be used, and perhaps other functions

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp