summaryrefslogtreecommitdiff
path: root/src/backend/catalog/indexing.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/catalog/indexing.c')
-rw-r--r--src/backend/catalog/indexing.c169
1 files changed, 0 insertions, 169 deletions
diff --git a/src/backend/catalog/indexing.c b/src/backend/catalog/indexing.c
deleted file mode 100644
index 4f8ee1d3979..00000000000
--- a/src/backend/catalog/indexing.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * indexing.c
- * This file contains routines to support indices defined on system
- * catalogs.
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.94 2002/06/20 20:29:26 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
-
-#include "postgres.h"
-
-#include "access/genam.h"
-#include "access/heapam.h"
-#include "catalog/catalog.h"
-#include "catalog/catname.h"
-#include "catalog/index.h"
-#include "catalog/indexing.h"
-#include "catalog/pg_index.h"
-#include "miscadmin.h"
-#include "utils/fmgroids.h"
-#include "utils/syscache.h"
-
-/*
- * Names of indices for each system catalog.
- */
-
-char *Name_pg_aggregate_indices[Num_pg_aggregate_indices] =
-{AggregateFnoidIndex};
-char *Name_pg_am_indices[Num_pg_am_indices] =
-{AmNameIndex, AmOidIndex};
-char *Name_pg_amop_indices[Num_pg_amop_indices] =
-{AccessMethodOperatorIndex, AccessMethodStrategyIndex};
-char *Name_pg_amproc_indices[Num_pg_amproc_indices] =
-{AccessMethodProcedureIndex};
-char *Name_pg_attr_indices[Num_pg_attr_indices] =
-{AttributeRelidNameIndex, AttributeRelidNumIndex};
-char *Name_pg_attrdef_indices[Num_pg_attrdef_indices] =
-{AttrDefaultIndex};
-char *Name_pg_class_indices[Num_pg_class_indices] =
-{ClassNameNspIndex, ClassOidIndex};
-char *Name_pg_database_indices[Num_pg_database_indices] =
-{DatabaseNameIndex, DatabaseOidIndex};
-char *Name_pg_group_indices[Num_pg_group_indices] =
-{GroupNameIndex, GroupSysidIndex};
-char *Name_pg_index_indices[Num_pg_index_indices] =
-{IndexRelidIndex, IndexIndrelidIndex};
-char *Name_pg_inherits_indices[Num_pg_inherits_indices] =
-{InheritsRelidSeqnoIndex};
-char *Name_pg_language_indices[Num_pg_language_indices] =
-{LanguageOidIndex, LanguageNameIndex};
-char *Name_pg_largeobject_indices[Num_pg_largeobject_indices] =
-{LargeObjectLOidPNIndex};
-char *Name_pg_namespace_indices[Num_pg_namespace_indices] =
-{NamespaceNameIndex, NamespaceOidIndex};
-char *Name_pg_opclass_indices[Num_pg_opclass_indices] =
-{OpclassAmNameNspIndex, OpclassOidIndex};
-char *Name_pg_operator_indices[Num_pg_operator_indices] =
-{OperatorOidIndex, OperatorNameNspIndex};
-char *Name_pg_proc_indices[Num_pg_proc_indices] =
-{ProcedureOidIndex, ProcedureNameNspIndex};
-char *Name_pg_relcheck_indices[Num_pg_relcheck_indices] =
-{RelCheckIndex};
-char *Name_pg_rewrite_indices[Num_pg_rewrite_indices] =
-{RewriteOidIndex, RewriteRelRulenameIndex};
-char *Name_pg_shadow_indices[Num_pg_shadow_indices] =
-{ShadowNameIndex, ShadowSysidIndex};
-char *Name_pg_statistic_indices[Num_pg_statistic_indices] =
-{StatisticRelidAttnumIndex};
-char *Name_pg_trigger_indices[Num_pg_trigger_indices] =
-{TriggerRelidNameIndex, TriggerConstrNameIndex, TriggerConstrRelidIndex, TriggerOidIndex};
-char *Name_pg_type_indices[Num_pg_type_indices] =
-{TypeNameNspIndex, TypeOidIndex};
-char *Name_pg_description_indices[Num_pg_description_indices] =
-{DescriptionObjIndex};
-
-
-
-/*
- * Changes (appends) to catalogs can and do happen at various places
- * throughout the code. We need a generic routine that will open all of
- * the indices defined on a given catalog and return the relation descriptors
- * associated with them.
- */
-void
-CatalogOpenIndices(int nIndices, char **names, Relation *idescs)
-{
- int i;
-
- if (IsIgnoringSystemIndexes())
- return;
- for (i = 0; i < nIndices; i++)
- idescs[i] = index_openr(names[i]);
-}
-
-/*
- * This is the inverse routine to CatalogOpenIndices()
- */
-void
-CatalogCloseIndices(int nIndices, Relation *idescs)
-{
- int i;
-
- if (IsIgnoringSystemIndexes())
- return;
- for (i = 0; i < nIndices; i++)
- index_close(idescs[i]);
-}
-
-
-/*
- * For the same reasons outlined above for CatalogOpenIndices(), we need a
- * routine that takes a new catalog tuple and inserts an associated index
- * tuple into each catalog index.
- *
- * NOTE: since this routine looks up all the pg_index data on each call,
- * it's relatively inefficient for inserting a large number of tuples into
- * the same catalog. We use it only for inserting one or a few tuples
- * in a given command. See ExecOpenIndices() and related routines if you
- * are inserting tuples in bulk.
- *
- * NOTE: we do not bother to handle partial indices. Nor do we try to
- * be efficient for functional indices (the code should work for them,
- * but may leak memory intraquery). This should be OK for system catalogs,
- * but don't use this routine for user tables!
- */
-void
-CatalogIndexInsert(Relation *idescs,
- int nIndices,
- Relation heapRelation,
- HeapTuple heapTuple)
-{
- TupleDesc heapDescriptor;
- Datum datum[INDEX_MAX_KEYS];
- char nullv[INDEX_MAX_KEYS];
- int i;
-
- if (IsIgnoringSystemIndexes() || (!heapRelation->rd_rel->relhasindex))
- return;
- heapDescriptor = RelationGetDescr(heapRelation);
-
- for (i = 0; i < nIndices; i++)
- {
- IndexInfo *indexInfo;
- InsertIndexResult indexRes;
-
- indexInfo = BuildIndexInfo(idescs[i]->rd_index);
-
- FormIndexDatum(indexInfo,
- heapTuple,
- heapDescriptor,
- CurrentMemoryContext,
- datum,
- nullv);
-
- indexRes = index_insert(idescs[i], datum, nullv,
- &heapTuple->t_self, heapRelation,
- idescs[i]->rd_uniqueindex);
- if (indexRes)
- pfree(indexRes);
- pfree(indexInfo);
- }
-}