aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/ref/drop_index.sgml
Commit message (Collapse)AuthorAge
* Fix assorted bugs in CREATE/DROP INDEX CONCURRENTLY.Tom Lane2012-11-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 8cb53654dbdb4c386369eb988062d0bbb6de725e, which introduced DROP INDEX CONCURRENTLY, managed to break CREATE INDEX CONCURRENTLY via a poor choice of catalog state representation. The pg_index state for an index that's reached the final pre-drop stage was the same as the state for an index just created by CREATE INDEX CONCURRENTLY. This meant that the (necessary) change to make RelationGetIndexList ignore about-to-die indexes also made it ignore freshly-created indexes; which is catastrophic because the latter do need to be considered in HOT-safety decisions. Failure to do so leads to incorrect index entries and subsequently wrong results from queries depending on the concurrently-created index. To fix, add an additional boolean column "indislive" to pg_index, so that the freshly-created and about-to-die states can be distinguished. (This change obviously is only possible in HEAD. This patch will need to be back-patched, but in 9.2 we'll use a kluge consisting of overloading the formerly-impossible state of indisvalid = true and indisready = false.) In addition, change CREATE/DROP INDEX CONCURRENTLY so that the pg_index flag changes they make without exclusive lock on the index are made via heap_inplace_update() rather than a normal transactional update. The latter is not very safe because moving the pg_index tuple could result in concurrent SnapshotNow scans finding it twice or not at all, thus possibly resulting in index corruption. This is a pre-existing bug in CREATE INDEX CONCURRENTLY, which was copied into the DROP code. In addition, fix various places in the code that ought to check to make sure that the indexes they are manipulating are valid and/or ready as appropriate. These represent bugs that have existed since 8.2, since a failed CREATE INDEX CONCURRENTLY could leave a corrupt or invalid index behind, and we ought not try to do anything that might fail with such an index. Also fix RelationReloadIndexInfo to ensure it copies all the pg_index columns that are allowed to change after initial creation. Previously we could have been left with stale values of some fields in an index relcache entry. It's not clear whether this actually had any user-visible consequences, but it's at least a bug waiting to happen. In addition, do some code and docs review for DROP INDEX CONCURRENTLY; some cosmetic code cleanup but mostly addition and revision of comments. This will need to be back-patched, but in a noticeably different form, so I'm committing it to HEAD before working on the back-patch. Problem reported by Amit Kapila, diagnosis by Pavan Deolassee, fix by Tom Lane and Andres Freund.
* Add DROP INDEX CONCURRENTLY [IF EXISTS], uses ShareUpdateExclusiveLockSimon Riggs2012-04-06
|
* Fix a whitespace issue with the man pagesPeter Eisentraut2011-08-07
| | | | | | | | | | | | | | | | | | | | | There is what may actually be a mistake in our markup. The problem is in a situation like <para> <command>FOO</command> is ... there is strictly speaking a line break before "FOO". In the HTML output, this does not appear to be a problem, but in the man page output, this shows up, so you get double blank lines at odd places. So far, we have attempted to work around this with an XSL hack, but that causes other problems, such as creating run-ins in places like <acronym>SQL</acronym> <command>COPY</command> So fix the problem properly by removing the extra whitespace. I only fixed the problems that affect the man page output, not all the places.
* Remove useless whitespace at end of linesPeter Eisentraut2010-11-23
|
* Remove cvs keywords from all files.Magnus Hagander2010-09-20
|
* Remove unnecessary xref endterm attributes and title idsPeter Eisentraut2010-04-03
| | | | | | | | | The endterm attribute is mainly useful when the toolchain does not support automatic link target text generation for a particular situation. In the past, this was required by the man page tools for all reference page links, but that is no longer the case, and it now actually gets in the way of proper automatic link text generation. The only remaining use cases are currently xrefs to refsects.
* Set SQL man pages to be section 7 by default, and only transform them toPeter Eisentraut2008-11-14
| | | | | | | | | another section if required by the platform (instead of the old way of building them in section "l" and always transforming them to the platform-specific section). This speeds up the installation on common platforms, and it avoids some funny business with the man page tools and build process.
* Remove emacs info from footer of SGML files.Bruce Momjian2006-09-16
|
* DROP objecttype IF EXISTS for the following objects:Andrew Dunstan2005-11-19
| | | | table view index sequence schema type domain conversion
* $Header: -> $PostgreSQL Changes ...PostgreSQL Daemon2003-11-29
|
* Remove a bunch of content-free Diagnostics sections, as per previousTom Lane2003-09-09
| | | | discussion. (Still have some work to do editing the remainder.)
* Add/edit index entries.Peter Eisentraut2003-08-31
|
* Most of the synopsis areas for DROP commands use "name" as theBruce Momjian2003-06-24
| | | | | | | | | | | | | | | | | | identifier, while some areas do not. The attached converts be below to "name": conversion_name index_name The below have an existing, initdb supplied, entity named "name". As such, it could be confusing for the reader to see that identifier used in the example. domainname typename Rod Taylor
* Last round of reference page editing.Peter Eisentraut2003-05-04
|
* Second phase of committing Rod Taylor's pg_depend/pg_constraint patch.Tom Lane2002-07-12
| | | | | | | | | | | | pg_relcheck is gone; CHECK, UNIQUE, PRIMARY KEY, and FOREIGN KEY constraints all have real live entries in pg_constraint. pg_depend exists, and RESTRICT/CASCADE options work on most kinds of DROP; however, pg_depend is not yet very well populated with dependencies. (Most of the ones that are present at this point just replace formerly hardwired associations, such as the implicit drop of a relation's pg_type entry when the relation is dropped.) Need to add more logic to create dependency entries, improve pg_dump to dump constraints in place of indexes and triggers, and add some regression tests.
* Revise command completion tags as per hackers message on 20 March.Peter Eisentraut2002-05-18
|
* Update SQL-command reference pages for schema features.Tom Lane2002-04-23
|
* Augment the date/time examples in the User's Guide to reflect the newerThomas G. Lockhart2002-04-21
| | | | | | | | | capabilities of specifying time zones as intervals per SQL9x. Put refentrytitle contents on the same line as the tag. Otherwise, leading whitespace is propagated into the product, which (at least) messes up the ToC layout. Remove (some) docinfo tags containing dates. Best to omit if the dates are not accurate; maybe use CVS dates instead or leave them out.
* Use PostgreSQL consistantly throughout docs. Before, usage was split evenlyThomas G. Lockhart2001-12-08
| | | | between Postgres and PostgreSQL.
* Put some kind of grammatical uniformity in the <refpurpose> lines.Peter Eisentraut2001-09-03
|
* drop_function.sgml:Bruce Momjian2001-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | =================== In Notes: Refer to CREATE FUNCTION for information on creating aggregate functions. ^^^^^^^^^^^^^^^^^^^ I assume it must read C function instead. In Compatibility SQL/PSM: SQL/PSM is a proposed standard. We had that before: remove proposed. drop_index.sgml: ================ <REFNAME>: Removes existing indexes from a database as far as I can see index should be singular. The command description is written as if only one index can be removed at a time. Interestingly enough, in v7.0.2 it was in fact singular. Am I mistaken here? drop_operator.sgml: =================== In Outputs the arguments are referred to as type and type2, but the synopsis and Inputs section these are left_type and right_type, respectively. Also, oper is used in Outputs versus id in Inputs/Synopsis. In the translation I follow the replaceables used in the Inputs/Synopsis part. Frank Wegmann
* Refine some things to create better looking man pages.Peter Eisentraut2000-12-25
|
* Some small polishing of Mark Hollomon's cleanup of DROP command: mightTom Lane2000-10-22
| | | | | | | | | as well allow DROP multiple INDEX, RULE, TYPE as well. Add missing CommandCounterIncrement to DROP loop, which could cause trouble otherwise with multiple DROP of items affecting same catalog entries. Try to bring a little consistency to various error messages using 'does not exist', 'nonexistent', etc --- I standardized on 'does not exist' since that's what the vast majority of the existing uses seem to be.
* Complete merge of all old man page information.Thomas G. Lockhart1999-07-22
| | | | ecpg reference page still needs formatting.
* Fix markup for docbook2man man page generation.Thomas G. Lockhart1999-07-06
| | | | | | | No big deal; fixed lots of other markup at the same time. Bigest change: make sure there is no whitespace in front of <term> contents. This will probably help the other output types too.
* Clean up to ensure tag completion as required by the newest versionsThomas G. Lockhart1998-12-29
| | | | | of Norm's Modular Style Sheets and jade/docbook. From Vince Vielhaber <vev@michvhf.com>.
* Minor cleanup in markup, especially in the Output section.Thomas G. Lockhart1998-10-30
|
* Editing and markup cleanup.Thomas G. Lockhart1998-09-22
|
* Markup and editing adjustments...Thomas G. Lockhart1998-09-16
|
* Add new reference pages. This completes the first cut at a full setThomas G. Lockhart1998-09-07
for SQL commands.