Thread: Please review TODO list
Would people please check the TODO list in pgsql/doc/TODO or on our web site, and let me know if there are any items that need a dash because they are completed in 7.1? I think I may have missed a few. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
Bruce Momjian writes: > Would people please check the TODO list in pgsql/doc/TODO or on our web > site, and let me know if there are any items that need a dash because > they are completed in 7.1? I think I may have missed a few. The following are done: * Prevent initdb from running wrong version of postmaster/postgres (me) * Add support for & operator (Support for & operators has been there for a long time. Incidentally, there are builtin & operators now.) * Add ALTER TABLE command to change table ownership (Mark H) * Add ALTER USER command to change user db attributes (We've had this one even before this TODO item was added.) * add pg_dump option to dump type names as standard ANSI types (There's no option, it's the default.) -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
Don't know whether this belongs on the TODO, but it probably needs to go somewhere in a 'New Features' section (at least the first two items): pg_dump: -------- - Support BLOBs in pg_dump (pjw) - new utility, pg_restore, which will read dump files and restore all/some of the dump. Also supports reordering of outputand direct database connections. (pjw) - Support for PRIMARY KEY constraints (Bruce?) - Allow pg_dump to create TAR archive rather than monolithic SQL file (pjw) - Dump views using a 'CREATE VIEW' statement (pjw) - Restore sequences properly, including 'is_called' flag (pjw). other: ------ - New 3 parameter setval. ---------------------------------------------------------------- Philip Warner | __---_____ Albatross Consulting Pty. Ltd. |----/ - \ (A.B.N. 75 008 659 498) | /(@) ______---_ Tel: (+61) 0500 83 82 81 | _________ \ Fax: (+61) 0500 83 82 82 | ___________ | Http://www.rhyme.com.au | / \| | --________-- PGP key available upon request, | / and from pgp5.ai.mit.edu:11371 |/
Bruce Momjian <pgman@candle.pha.pa.us> writes: > Would people please check the TODO list in pgsql/doc/TODO or on our web > site, and let me know if there are any items that need a dash because > they are completed in 7.1? I think I may have missed a few. * have INTERSECT/EXCEPT prevent duplicates unless ALL is specified Done (me). * SELECT col::DECIMAL(12,10); fails Uh, what's the complaint here? I don't see a problem in a cursory check. * Creating view and inheriting the view causes view* to show duplicates (inherit) We seem to prohibit this from being done now, so I'd call it fixed: regression=# create view zz1 as select * from int8_tbl; CREATE regression=# create table zz2 () inherits(zz1); ERROR: CREATE TABLE: inherited relation "zz1" is not a table * Buffer reference counting bugfixes * Fix libpq bug that causes it to drop backend error message sent just before connection closure (ie, any FATAL error message) Uh, both of those are done aren't they? * Modification of pg_class can happen while table in use by another backend. Might lead to MVCC inside of syscache This might or might not be OK now. Comments anyone? * Fix memory leak for expressions[memory] (Tom?) I think this is largely done, though there may be some remaining leak cases. * Make n of CHAR(n)/VARCHAR(n) the number of letters, not bytes I think this might be done (Tatsuo, what's the status?) * Add btree index support for reltime, tinterval, regproc, bit, varbit bit and varbit seem to work now. * Create insert, update and delete rules for simple one table views * Automatically create rules on views so they are updateable, per SQL92 I think these two items are the same thing, no? * Allow ORDER BY...LIMIT in INSERT INTO ... SELECT This is done (me). * Emit a warning at foreign key creation time if no UNIQUE index exists on referenced primary key attributes I think we actually emit an error now. * Use IPC_EXCL when creating shared memory and semaphores Done (me). * Use flock() to prevent multiple postmasters on the same port [flock] This is done, although we ended up using a lock file not flock(). * Include heap CTID in btree index keys, remove equal-key cruft from btree This is done, I think, though not exactly in the way the TODO item envisions. * Fix LIKE indexing optimization for non-ASCII locales I've applied a brute-force solution, which is not to do any LIKE optimization in non-ASCII locales :-(. This is not an ideal answer, but perhaps the TODO item should read more like "Figure out how to do LIKE indexing optimization in non-ASCII locales". * Allow char() not to use variable-sized header to reduce disk size Between MULTIBYTE and TOAST, I'd say this idea is dead as a doornail. Might as well remove the TODO item. * Make oid use oidin/oidout not int4in/int4out in pg_type.h Done. * improve dynamic memory allocation by introducing tuple-context memory allocation [memory] I believe all the issues mentioned in TODO.detail/memory are done. There may still be some leaks to be fixed, but the worst problems are dealt with. * prevent labels from being output for stored rules (Tom) Now that we have TOAST for pg_rewrite, I think this is a dead issue. regards, tom lane
> * Make n of CHAR(n)/VARCHAR(n) the number of letters, not bytes > > I think this might be done (Tatsuo, what's the status?) Not yet. Probably will be left for 7.2. -- Tatsuo Ishii
Thanks. TODO updated. > Bruce Momjian writes: > > > Would people please check the TODO list in pgsql/doc/TODO or on our web > > site, and let me know if there are any items that need a dash because > > they are completed in 7.1? I think I may have missed a few. > > The following are done: > > * Prevent initdb from running wrong version of postmaster/postgres > (me) > > * Add support for & operator > > (Support for & operators has been there for a long time. Incidentally, > there are builtin & operators now.) > > * Add ALTER TABLE command to change table ownership (Mark H) > > * Add ALTER USER command to change user db attributes > > (We've had this one even before this TODO item was added.) > > * add pg_dump option to dump type names as standard ANSI types > > (There's no option, it's the default.) > > -- > Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/ > > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
Seems these are all properly listed in the HISTORY file for the 7.1 release. > > Don't know whether this belongs on the TODO, but it probably needs to go > somewhere in a 'New Features' section (at least the first two items): > > pg_dump: > -------- > > - Support BLOBs in pg_dump (pjw) > - new utility, pg_restore, which will read dump files and restore > all/some of the dump. Also supports reordering of output and > direct database connections. (pjw) > - Support for PRIMARY KEY constraints (Bruce?) > - Allow pg_dump to create TAR archive rather than monolithic SQL file (pjw) > - Dump views using a 'CREATE VIEW' statement (pjw) > - Restore sequences properly, including 'is_called' flag (pjw). > > other: > ------ > > - New 3 parameter setval. > > > ---------------------------------------------------------------- > Philip Warner | __---_____ > Albatross Consulting Pty. Ltd. |----/ - \ > (A.B.N. 75 008 659 498) | /(@) ______---_ > Tel: (+61) 0500 83 82 81 | _________ \ > Fax: (+61) 0500 83 82 82 | ___________ | > Http://www.rhyme.com.au | / \| > | --________-- > PGP key available upon request, | / > and from pgp5.ai.mit.edu:11371 |/ > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
I agree with all your conclusions. I thought many of the items on the TODO list looked like things you had addressed. TODO list updated. Thanks. > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > Would people please check the TODO list in pgsql/doc/TODO or on our web > > site, and let me know if there are any items that need a dash because > > they are completed in 7.1? I think I may have missed a few. > > > * have INTERSECT/EXCEPT prevent duplicates unless ALL is specified > > Done (me). > > * SELECT col::DECIMAL(12,10); fails > > Uh, what's the complaint here? I don't see a problem in a cursory > check. > > * Creating view and inheriting the view causes view* to show > duplicates (inherit) > > We seem to prohibit this from being done now, so I'd call it fixed: > regression=# create view zz1 as select * from int8_tbl; > CREATE > regression=# create table zz2 () inherits(zz1); > ERROR: CREATE TABLE: inherited relation "zz1" is not a table > > * Buffer reference counting bugfixes > * Fix libpq bug that causes it to drop backend error message sent > just before connection closure (ie, any FATAL error message) > > Uh, both of those are done aren't they? > > * Modification of pg_class can happen while table in use by > another backend. Might lead to MVCC inside of syscache > > This might or might not be OK now. Comments anyone? > > * Fix memory leak for expressions[memory] (Tom?) > > I think this is largely done, though there may be some remaining leak > cases. > > * Make n of CHAR(n)/VARCHAR(n) the number of letters, not bytes > > I think this might be done (Tatsuo, what's the status?) > > * Add btree index support for reltime, tinterval, regproc, bit, varbit > > bit and varbit seem to work now. > > * Create insert, update and delete rules for simple one table views > * Automatically create rules on views so they are updateable, per SQL92 > > I think these two items are the same thing, no? > > * Allow ORDER BY...LIMIT in INSERT INTO ... SELECT > > This is done (me). > > * Emit a warning at foreign key creation time if no UNIQUE index > exists on referenced primary key attributes > > I think we actually emit an error now. > > * Use IPC_EXCL when creating shared memory and semaphores > > Done (me). > > * Use flock() to prevent multiple postmasters on the same port [flock] > > This is done, although we ended up using a lock file not flock(). > > * Include heap CTID in btree index keys, remove equal-key cruft from btree > > This is done, I think, though not exactly in the way the TODO item > envisions. > > * Fix LIKE indexing optimization for non-ASCII locales > > I've applied a brute-force solution, which is not to do any LIKE > optimization in non-ASCII locales :-(. This is not an ideal answer, > but perhaps the TODO item should read more like "Figure out how to > do LIKE indexing optimization in non-ASCII locales". > > * Allow char() not to use variable-sized header to reduce disk size > > Between MULTIBYTE and TOAST, I'd say this idea is dead as a doornail. > Might as well remove the TODO item. > > * Make oid use oidin/oidout not int4in/int4out in pg_type.h > > Done. > > * improve dynamic memory allocation by introducing tuple-context memory > allocation [memory] > > I believe all the issues mentioned in TODO.detail/memory are done. > There may still be some leaks to be fixed, but the worst problems > are dealt with. > > * prevent labels from being output for stored rules (Tom) > > Now that we have TOAST for pg_rewrite, I think this is a dead issue. > > regards, tom lane > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
Tom Lane wrote: > > * Fix LIKE indexing optimization for non-ASCII locales > > I've applied a brute-force solution, which is not to do any LIKE > optimization in non-ASCII locales :-(. What is a non-ASCII locale ? Anything that is not LC_ALL=ASCII ? BTW, it would really help if we had a way to query for locale at runtime, like SELECT CURRENT_LOCALE(); How should one find out which locale we are in ? From your comment above I assume that you know it ;) > This is not an ideal answer, > but perhaps the TODO item should read more like "Figure out how to > do LIKE indexing optimization in non-ASCII locales". I think that the cleanest solution should be to define our own locales that can be doctored to satisfy the LIKE optimisation requirements. We will probably need something like that in the future anyway as AFAIK SQL 9x requires ability to have locales applicable on field-to-field basis not just one per host. ------------- Hannu