~ubuntu-branches/ubuntu/lucid/postgresql-8.4/lucid-proposed

« back to all changes in this revision

Viewing changes to src/include/catalog/index.h

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2012-12-10 15:53:42 UTC
  • mfrom: (1.3.9)
  • Revision ID: package-import@ubuntu.com-20121210155342-3scm68xcxel275jb
Tags: 8.4.15-0ubuntu10.04
* New upstream bug fix release: (LP: #1088393)
  - Fix multiple bugs associated with "CREATE INDEX CONCURRENTLY"
    Fix "CREATE INDEX CONCURRENTLY" to use in-place updates when
    changing the state of an index's pg_index row. This prevents race
    conditions that could cause concurrent sessions to miss updating
    the target index, thus resulting in corrupt concurrently-created
    indexes.
    Also, fix various other operations to ensure that they ignore
    invalid indexes resulting from a failed "CREATE INDEX CONCURRENTLY"
    command. The most important of these is "VACUUM", because an
    auto-vacuum could easily be launched on the table before corrective
    action can be taken to fix or remove the invalid index.
  - See HISTORY/changelog.gz for details about other bug fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
                                                                                                bool tupleIsAlive,
28
28
                                                                                                void *state);
29
29
 
 
30
/* Action code for index_set_state_flags */
 
31
typedef enum
 
32
{
 
33
        INDEX_CREATE_SET_READY,
 
34
        INDEX_CREATE_SET_VALID
 
35
} IndexStateFlagsAction;
 
36
 
30
37
 
31
38
extern Oid index_create(Oid heapRelationId,
32
39
                         const char *indexRelationName,
70
77
 
71
78
extern void validate_index(Oid heapId, Oid indexId, Snapshot snapshot);
72
79
 
 
80
extern void index_set_state_flags(Oid indexId, IndexStateFlagsAction action);
 
81
 
73
82
extern void reindex_index(Oid indexId);
74
83
extern bool reindex_relation(Oid relid, bool toast_too);
75
84