PostgreSQL Source Code
git master
|
#include "access/sdir.h"
#include "access/skey.h"
#include "nodes/tidbitmap.h"
#include "storage/lockdefs.h"
#include "utils/relcache.h"
#include "utils/snapshot.h"
Go to the source code of this file.
Data Structures | |
struct | IndexBuildResult |
struct | IndexVacuumInfo |
struct | IndexBulkDeleteResult |
struct | IndexOrderByDistance |
Macros | |
#define | IndexScanIsValid(scan) PointerIsValid(scan) |
Typedefs | |
typedef struct IndexBuildResult | IndexBuildResult |
typedef struct IndexVacuumInfo | IndexVacuumInfo |
typedef struct IndexBulkDeleteResult | IndexBulkDeleteResult |
typedef bool(* | IndexBulkDeleteCallback) (ItemPointer itemptr, void *state) |
typedef struct IndexScanDescData * | IndexScanDesc |
typedef struct SysScanDescData * | SysScanDesc |
typedef struct ParallelIndexScanDescData * | ParallelIndexScanDesc |
typedef enum IndexUniqueCheck | IndexUniqueCheck |
typedef struct IndexOrderByDistance | IndexOrderByDistance |
Enumerations | |
enum | IndexUniqueCheck { UNIQUE_CHECK_NO , UNIQUE_CHECK_YES , UNIQUE_CHECK_PARTIAL , UNIQUE_CHECK_EXISTING } |
#define IndexScanIsValid | ( | scan | ) | PointerIsValid(scan) |
typedef struct IndexBuildResult IndexBuildResult |
typedef bool(* IndexBulkDeleteCallback) (ItemPointer itemptr, void *state) |
typedef struct IndexBulkDeleteResult IndexBulkDeleteResult |
typedef struct IndexOrderByDistance IndexOrderByDistance |
typedef struct IndexScanDescData* IndexScanDesc |
typedef enum IndexUniqueCheck IndexUniqueCheck |
typedef struct IndexVacuumInfo IndexVacuumInfo |
typedef struct ParallelIndexScanDescData* ParallelIndexScanDesc |
typedef struct SysScanDescData* SysScanDesc |
enum IndexUniqueCheck |
char* BuildIndexValueDescription | ( | Relation | indexRelation, |
const Datum * | values, | ||
const bool * | isnull | ||
) |
Definition at line 177 of file genam.c.
References ACL_SELECT, ACLCHECK_OK, appendStringInfo(), appendStringInfoChar(), appendStringInfoString(), Assert, attnum, buf, check_enable_rls(), getTypeOutputInfo(), GetUserId(), i, IndexRelationGetNumberOfKeyAttributes, initStringInfo(), InvalidAttrNumber, InvalidOid, OidOutputFunctionCall(), pg_attribute_aclcheck(), pg_class_aclcheck(), pg_get_indexdef_columns(), RelationData::rd_index, RelationData::rd_opcintype, RelationGetRelid, RLS_ENABLED, val, and values.
Referenced by _bt_check_unique(), build_index_value_desc(), check_exclusion_or_unique_constraint(), and comparetup_index_btree_tiebreak().
IndexScanDesc index_beginscan | ( | Relation | heapRelation, |
Relation | indexRelation, | ||
Snapshot | snapshot, | ||
int | nkeys, | ||
int | norderbys | ||
) |
Definition at line 256 of file indexam.c.
References Assert, IndexScanDescData::heapRelation, index_beginscan_internal(), InvalidSnapshot, table_index_fetch_begin(), IndexScanDescData::xs_heapfetch, and IndexScanDescData::xs_snapshot.
Referenced by check_exclusion_or_unique_constraint(), get_actual_variable_endpoint(), heapam_relation_copy_for_cluster(), IndexNext(), IndexNextWithReorder(), IndexOnlyNext(), RelationFindReplTupleByIndex(), systable_beginscan(), and systable_beginscan_ordered().
IndexScanDesc index_beginscan_bitmap | ( | Relation | indexRelation, |
Snapshot | snapshot, | ||
int | nkeys | ||
) |
Definition at line 287 of file indexam.c.
References Assert, index_beginscan_internal(), InvalidSnapshot, and IndexScanDescData::xs_snapshot.
Referenced by ExecInitBitmapIndexScan().
IndexScanDesc index_beginscan_parallel | ( | Relation | heaprel, |
Relation | indexrel, | ||
int | nkeys, | ||
int | norderbys, | ||
ParallelIndexScanDesc | pscan | ||
) |
Definition at line 541 of file indexam.c.
References Assert, IndexScanDescData::heapRelation, index_beginscan_internal(), ParallelIndexScanDescData::ps_indexlocator, ParallelIndexScanDescData::ps_locator, ParallelIndexScanDescData::ps_snapshot_data, RelationData::rd_locator, RegisterSnapshot(), RelFileLocatorEquals, RestoreSnapshot(), table_index_fetch_begin(), IndexScanDescData::xs_heapfetch, and IndexScanDescData::xs_snapshot.
Referenced by ExecIndexOnlyScanInitializeDSM(), ExecIndexOnlyScanInitializeWorker(), ExecIndexScanInitializeDSM(), and ExecIndexScanInitializeWorker().
IndexBulkDeleteResult* index_bulk_delete | ( | IndexVacuumInfo * | info, |
IndexBulkDeleteResult * | istat, | ||
IndexBulkDeleteCallback | callback, | ||
void * | callback_state | ||
) |
Definition at line 750 of file indexam.c.
References IndexAmRoutine::ambulkdelete, callback(), CHECK_REL_PROCEDURE, IndexVacuumInfo::index, RelationData::rd_indam, and RELATION_CHECKS.
Referenced by vac_bulkdel_one_index(), and validate_index().
Definition at line 790 of file indexam.c.
References IndexAmRoutine::amcanreturn, RelationData::rd_indam, and RELATION_CHECKS.
Referenced by get_relation_info(), and indexam_property().
Definition at line 177 of file indexam.c.
References Assert, LockInfoData::lockRelId, MAX_LOCKMODES, NoLock, RelationData::rd_lockInfo, RelationClose(), and UnlockRelationId().
Referenced by _brin_parallel_build_main(), _bt_parallel_build_main(), ATExecAddIndex(), ATExecAddIndexConstraint(), ATExecReplicaIdentity(), AttachPartitionEnsureIndexes(), brin_page_items(), brincostestimate(), bt_index_check_internal(), build_index_value_desc(), build_indices(), BuildEventTriggerCache(), check_index_is_clusterable(), CheckIndexCompatible(), close_lo_relation(), copy_table_data(), DefineIndex(), DefineRelation(), DetachPartitionFinalize(), enum_endpoint(), enum_range_internal(), ExecCloseIndices(), ExecEndBitmapIndexScan(), ExecEndIndexOnlyScan(), ExecEndIndexScan(), expandTableLikeClause(), FindReplTupleInLocalRel(), FindUsableIndexForReplicaIdentityFull(), get_actual_variable_range(), get_relation_info(), gin_clean_pending_list(), gincostestimate(), gist_page_items(), hash_bitmap_info(), index_concurrently_build(), index_concurrently_create_copy(), index_concurrently_set_dead(), index_create(), index_drop(), indexam_property(), infer_arbiter_indexes(), InitCatCachePhase2(), lookup_ts_config_cache(), pg_nextoid(), pgstathashindex(), plan_create_index_workers(), refresh_by_match_merge(), RefreshMatViewByOid(), reindex_index(), ReindexRelationConcurrently(), RelationFindReplTupleByIndex(), RelationGetIndexAttrBitmap(), RelationTruncateIndexes(), SetIndexStorageProperties(), systable_endscan(), toast_close_indexes(), TryReuseIndex(), vac_close_indexes(), vac_open_indexes(), and validate_index().
TransactionId index_compute_xid_horizon_for_tuples | ( | Relation | irel, |
Relation | hrel, | ||
Buffer | ibuf, | ||
OffsetNumber * | itemnos, | ||
int | nitems | ||
) |
Definition at line 294 of file genam.c.
References Assert, TM_IndexDeleteOp::bottomup, TM_IndexDeleteOp::bottomupfreespace, BufferGetBlockNumber(), BufferGetPage(), TM_IndexDeleteOp::deltids, TM_IndexStatus::freespace, i, TM_IndexDeleteOp::iblknum, TM_IndexDelete::id, TM_IndexStatus::idxoffnum, InvalidTransactionId, TM_IndexDeleteOp::irel, ItemIdIsDead, ItemPointerCopy(), TM_IndexStatus::knowndeletable, TM_IndexDeleteOp::ndeltids, nitems, PageGetItem(), PageGetItemId(), palloc(), pfree(), TM_IndexStatus::promising, TM_IndexDeleteOp::status, IndexTupleData::t_tid, table_index_delete_tuples(), and TM_IndexDelete::tid.
Referenced by _hash_vacuum_one_page(), and gistprunepage().
void index_endscan | ( | IndexScanDesc | scan | ) |
Definition at line 378 of file indexam.c.
References IndexAmRoutine::amendscan, CHECK_SCAN_PROCEDURE, IndexScanDescData::indexRelation, IndexScanEnd(), RelationData::rd_indam, RelationDecrementReferenceCount(), SCAN_CHECKS, table_index_fetch_end(), UnregisterSnapshot(), IndexScanDescData::xs_heapfetch, IndexScanDescData::xs_snapshot, and IndexScanDescData::xs_temp_snap.
Referenced by check_exclusion_or_unique_constraint(), ExecEndBitmapIndexScan(), ExecEndIndexOnlyScan(), ExecEndIndexScan(), get_actual_variable_endpoint(), heapam_relation_copy_for_cluster(), RelationFindReplTupleByIndex(), systable_endscan(), and systable_endscan_ordered().
bool index_fetch_heap | ( | IndexScanDesc | scan, |
struct TupleTableSlot * | slot | ||
) |
Definition at line 634 of file indexam.c.
References IndexScanDescData::indexRelation, IndexScanDescData::kill_prior_tuple, pgstat_count_heap_fetch, table_index_fetch_tuple(), IndexScanDescData::xactStartedInRecovery, IndexScanDescData::xs_heap_continue, IndexScanDescData::xs_heapfetch, IndexScanDescData::xs_heaptid, and IndexScanDescData::xs_snapshot.
Referenced by get_actual_variable_endpoint(), index_getnext_slot(), and IndexOnlyNext().
int64 index_getbitmap | ( | IndexScanDesc | scan, |
TIDBitmap * | bitmap | ||
) |
Definition at line 720 of file indexam.c.
References IndexAmRoutine::amgetbitmap, CHECK_SCAN_PROCEDURE, IndexScanDescData::indexRelation, IndexScanDescData::kill_prior_tuple, pgstat_count_index_tuples, RelationData::rd_indam, and SCAN_CHECKS.
Referenced by MultiExecBitmapIndexScan().
bool index_getnext_slot | ( | IndexScanDesc | scan, |
ScanDirection | direction, | ||
struct TupleTableSlot * | slot | ||
) |
Definition at line 675 of file indexam.c.
References Assert, index_fetch_heap(), index_getnext_tid(), ItemPointerEquals(), ItemPointerIsValid(), IndexScanDescData::xs_heap_continue, and IndexScanDescData::xs_heaptid.
Referenced by check_exclusion_or_unique_constraint(), heapam_relation_copy_for_cluster(), IndexNext(), IndexNextWithReorder(), RelationFindReplTupleByIndex(), systable_getnext(), and systable_getnext_ordered().
ItemPointer index_getnext_tid | ( | IndexScanDesc | scan, |
ScanDirection | direction | ||
) |
Definition at line 576 of file indexam.c.
References IndexAmRoutine::amgettuple, Assert, CHECK_SCAN_PROCEDURE, IndexScanDescData::indexRelation, ItemPointerIsValid(), IndexScanDescData::kill_prior_tuple, pgstat_count_index_tuples, RelationData::rd_indam, RecentXmin, SCAN_CHECKS, table_index_fetch_reset(), TransactionIdIsValid, IndexScanDescData::xs_heap_continue, IndexScanDescData::xs_heapfetch, and IndexScanDescData::xs_heaptid.
Referenced by get_actual_variable_endpoint(), index_getnext_slot(), and IndexOnlyNext().
RegProcedure index_getprocid | ( | Relation | irel, |
AttrNumber | attnum, | ||
uint16 | procnum | ||
) |
Definition at line 828 of file indexam.c.
References IndexAmRoutine::amsupport, Assert, attnum, RelationData::rd_indam, and RelationData::rd_support.
Referenced by _hash_init(), bloom_get_procinfo(), gistbuild(), gistcanreturn(), inclusion_get_procinfo(), index_opclass_options(), initGinState(), initGISTstate(), minmax_multi_get_procinfo(), spgdoinsert(), and spgGetCache().
FmgrInfo* index_getprocinfo | ( | Relation | irel, |
AttrNumber | attnum, | ||
uint16 | procnum | ||
) |
Definition at line 862 of file indexam.c.
References IndexAmRoutine::amoptsprocnum, IndexAmRoutine::amsupport, Assert, attnum, elog, ERROR, fmgr_info_cxt(), FmgrInfo::fn_oid, InvalidOid, MemoryContextSwitchTo(), RelationData::rd_indam, RelationData::rd_indexcxt, RelationData::rd_support, RelationData::rd_supportinfo, RegProcedureIsValid, RelationGetIndexAttOptions(), RelationGetRelationName, and set_fn_opclass_options().
Referenced by _bt_first(), _bt_mkscankey(), _bt_setup_array_cmp(), _hash_datum2hashkey(), add_values_to_range(), bloom_get_procinfo(), brin_build_desc(), bringetbitmap(), doPickSplit(), inclusion_get_procinfo(), index_opclass_options(), initBloomState(), initGinState(), initGISTstate(), minmax_multi_get_procinfo(), spgbeginscan(), spgdoinsert(), spgGetCache(), and union_tuples().
bool index_insert | ( | Relation | indexRelation, |
Datum * | values, | ||
bool * | isnull, | ||
ItemPointer | heap_t_ctid, | ||
Relation | heapRelation, | ||
IndexUniqueCheck | checkUnique, | ||
bool | indexUnchanged, | ||
struct IndexInfo * | indexInfo | ||
) |
Definition at line 213 of file indexam.c.
References IndexAmRoutine::aminsert, IndexAmRoutine::ampredlocks, CHECK_REL_PROCEDURE, CheckForSerializableConflictIn(), InvalidBlockNumber, RelationData::rd_indam, RELATION_CHECKS, and values.
Referenced by CatalogIndexInsert(), ExecInsertIndexTuples(), heapam_index_validate_scan(), and toast_save_datum().
Definition at line 241 of file indexam.c.
References IndexAmRoutine::aminsertcleanup, RelationData::rd_indam, and RELATION_CHECKS.
Referenced by ExecCloseIndices(), and validate_index().
void index_markpos | ( | IndexScanDesc | scan | ) |
Definition at line 408 of file indexam.c.
References IndexAmRoutine::ammarkpos, CHECK_SCAN_PROCEDURE, IndexScanDescData::indexRelation, RelationData::rd_indam, and SCAN_CHECKS.
Referenced by ExecIndexMarkPos(), and ExecIndexOnlyMarkPos().
bytea* index_opclass_options | ( | Relation | indrel, |
AttrNumber | attnum, | ||
Datum | attoptions, | ||
bool | validate | ||
) |
Definition at line 998 of file indexam.c.
References IndexAmRoutine::amoptsprocnum, attnum, build_local_reloptions(), DatumGetPointer(), ereport, errcode(), errmsg(), ERROR, FunctionCall1, generate_opclass_name(), index_getprocid(), index_getprocinfo(), init_local_reloptions(), InvalidOid, OidIsValid, PointerGetDatum(), RelationData::rd_indam, RelationData::rd_indextuple, SysCacheGetAttrNotNull(), and oidvector::values.
Referenced by index_create(), and RelationGetIndexAttOptions().
Definition at line 133 of file indexam.c.
References relation_open(), and validate_relation_kind().
Referenced by _brin_parallel_build_main(), _bt_parallel_build_main(), ATExecAddIndex(), ATExecAddIndexConstraint(), ATExecReplicaIdentity(), AttachPartitionEnsureIndexes(), brin_desummarize_range(), brin_page_items(), brin_summarize_range(), brincostestimate(), bt_index_check_internal(), build_index_value_desc(), build_indices(), BuildEventTriggerCache(), check_index_is_clusterable(), CheckIndexCompatible(), copy_table_data(), DefineIndex(), DefineRelation(), DetachPartitionFinalize(), enum_endpoint(), enum_range_internal(), ExecInitBitmapIndexScan(), ExecInitIndexOnlyScan(), ExecInitIndexScan(), ExecOpenIndices(), expandTableLikeClause(), FindReplTupleInLocalRel(), FindUsableIndexForReplicaIdentityFull(), get_actual_variable_range(), get_relation_info(), gin_clean_pending_list(), gincostestimate(), gist_page_items(), index_concurrently_build(), index_concurrently_create_copy(), index_concurrently_set_dead(), index_drop(), indexam_property(), infer_arbiter_indexes(), InitCatCachePhase2(), lookup_ts_config_cache(), open_lo_relation(), pg_nextoid(), plan_create_index_workers(), refresh_by_match_merge(), RefreshMatViewByOid(), reindex_index(), ReindexRelationConcurrently(), RelationFindReplTupleByIndex(), RelationGetIndexAttrBitmap(), RelationTruncateIndexes(), SetIndexStorageProperties(), systable_beginscan(), toast_open_indexes(), transformIndexConstraint(), TryReuseIndex(), vac_open_indexes(), and validate_index().
void index_parallelrescan | ( | IndexScanDesc | scan | ) |
Definition at line 523 of file indexam.c.
References IndexAmRoutine::amparallelrescan, IndexScanDescData::indexRelation, RelationData::rd_indam, SCAN_CHECKS, table_index_fetch_reset(), and IndexScanDescData::xs_heapfetch.
Referenced by ExecIndexOnlyScanReInitializeDSM(), and ExecIndexScanReInitializeDSM().
Size index_parallelscan_estimate | ( | Relation | indexRelation, |
int | nkeys, | ||
int | norderbys, | ||
Snapshot | snapshot | ||
) |
Definition at line 453 of file indexam.c.
References add_size(), IndexAmRoutine::amestimateparallelscan, Assert, EstimateSnapshotSpace(), InvalidSnapshot, MAXALIGN, RelationData::rd_indam, and RELATION_CHECKS.
Referenced by ExecIndexOnlyScanEstimate(), and ExecIndexScanEstimate().
void index_parallelscan_initialize | ( | Relation | heapRelation, |
Relation | indexRelation, | ||
Snapshot | snapshot, | ||
ParallelIndexScanDesc | target | ||
) |
Definition at line 490 of file indexam.c.
References add_size(), IndexAmRoutine::aminitparallelscan, Assert, EstimateSnapshotSpace(), InvalidSnapshot, MAXALIGN, OffsetToPointer, ParallelIndexScanDescData::ps_indexlocator, ParallelIndexScanDescData::ps_locator, ParallelIndexScanDescData::ps_offset, ParallelIndexScanDescData::ps_snapshot_data, RelationData::rd_indam, RelationData::rd_locator, RELATION_CHECKS, and SerializeSnapshot().
Referenced by ExecIndexOnlyScanInitializeDSM(), and ExecIndexScanInitializeDSM().
void index_rescan | ( | IndexScanDesc | scan, |
ScanKey | keys, | ||
int | nkeys, | ||
ScanKey | orderbys, | ||
int | norderbys | ||
) |
Definition at line 352 of file indexam.c.
References IndexAmRoutine::amrescan, Assert, CHECK_SCAN_PROCEDURE, IndexScanDescData::indexRelation, IndexScanDescData::kill_prior_tuple, IndexScanDescData::numberOfKeys, IndexScanDescData::numberOfOrderBys, RelationData::rd_indam, SCAN_CHECKS, table_index_fetch_reset(), IndexScanDescData::xs_heap_continue, and IndexScanDescData::xs_heapfetch.
Referenced by check_exclusion_or_unique_constraint(), ExecIndexOnlyScanInitializeDSM(), ExecIndexOnlyScanInitializeWorker(), ExecIndexScanInitializeDSM(), ExecIndexScanInitializeWorker(), ExecInitBitmapIndexScan(), ExecReScanBitmapIndexScan(), ExecReScanIndexOnlyScan(), ExecReScanIndexScan(), get_actual_variable_endpoint(), heapam_relation_copy_for_cluster(), IndexNext(), IndexNextWithReorder(), IndexOnlyNext(), MultiExecBitmapIndexScan(), RelationFindReplTupleByIndex(), systable_beginscan(), and systable_beginscan_ordered().
void index_restrpos | ( | IndexScanDesc | scan | ) |
Definition at line 432 of file indexam.c.
References IndexAmRoutine::amrestrpos, Assert, CHECK_SCAN_PROCEDURE, IndexScanDescData::indexRelation, IsMVCCSnapshot, IndexScanDescData::kill_prior_tuple, RelationData::rd_indam, SCAN_CHECKS, table_index_fetch_reset(), IndexScanDescData::xs_heap_continue, IndexScanDescData::xs_heapfetch, and IndexScanDescData::xs_snapshot.
Referenced by ExecIndexOnlyRestrPos(), and ExecIndexRestrPos().
void index_store_float8_orderby_distances | ( | IndexScanDesc | scan, |
Oid * | orderByTypes, | ||
IndexOrderByDistance * | distances, | ||
bool | recheckOrderBy | ||
) |
Definition at line 930 of file indexam.c.
References Assert, DatumGetPointer(), elog, ERROR, Float4GetDatum(), Float8GetDatum(), i, IndexScanDescData::numberOfOrderBys, pfree(), value, IndexScanDescData::xs_orderbynulls, IndexScanDescData::xs_orderbyvals, and IndexScanDescData::xs_recheckorderby.
Referenced by getNextNearest(), and spggettuple().
IndexBulkDeleteResult* index_vacuum_cleanup | ( | IndexVacuumInfo * | info, |
IndexBulkDeleteResult * | istat | ||
) |
Definition at line 771 of file indexam.c.
References IndexAmRoutine::amvacuumcleanup, CHECK_REL_PROCEDURE, IndexVacuumInfo::index, RelationData::rd_indam, and RELATION_CHECKS.
Referenced by do_analyze_rel(), and vac_cleanup_one_index().
void IndexScanEnd | ( | IndexScanDesc | scan | ) |
Definition at line 144 of file genam.c.
References IndexScanDescData::keyData, IndexScanDescData::orderByData, and pfree().
Referenced by index_endscan().
IndexScanDesc RelationGetIndexScan | ( | Relation | indexRelation, |
int | nkeys, | ||
int | norderbys | ||
) |
Definition at line 80 of file genam.c.
References IndexScanDescData::heapRelation, IndexScanDescData::ignore_killed_tuples, IndexScanDescData::indexRelation, InvalidSnapshot, IndexScanDescData::keyData, IndexScanDescData::kill_prior_tuple, IndexScanDescData::numberOfKeys, IndexScanDescData::numberOfOrderBys, IndexScanDescData::opaque, IndexScanDescData::orderByData, palloc(), TransactionStartedDuringRecovery(), IndexScanDescData::xactStartedInRecovery, IndexScanDescData::xs_heapfetch, IndexScanDescData::xs_hitup, IndexScanDescData::xs_hitupdesc, IndexScanDescData::xs_itup, IndexScanDescData::xs_itupdesc, IndexScanDescData::xs_snapshot, and IndexScanDescData::xs_want_itup.
Referenced by blbeginscan(), brinbeginscan(), btbeginscan(), dibeginscan(), ginbeginscan(), gistbeginscan(), hashbeginscan(), and spgbeginscan().
SysScanDesc systable_beginscan | ( | Relation | heapRelation, |
Oid | indexId, | ||
bool | indexOK, | ||
Snapshot | snapshot, | ||
int | nkeys, | ||
ScanKey | key | ||
) |
Definition at line 387 of file genam.c.
References AccessShareLock, bsysscan, CheckXidAlive, elog, ERROR, GetCatalogSnapshot(), SysScanDescData::heap_rel, i, IgnoreSystemIndexes, index_beginscan(), index_open(), index_rescan(), IndexRelationGetNumberOfAttributes, SysScanDescData::irel, SysScanDescData::iscan, j, sort-test::key, palloc(), palloc_array, RelationData::rd_index, RegisterSnapshot(), ReindexIsProcessingIndex(), RelationGetRelid, SysScanDescData::scan, ScanKeyData::sk_attno, SysScanDescData::slot, SysScanDescData::snapshot, table_beginscan_strat(), table_slot_create(), and TransactionIdIsValid.
Referenced by AfterTriggerSetState(), AlterConstraintNamespaces(), AlterDatabase(), AlterDatabaseOwner(), AlterDatabaseRefreshColl(), AlterDomainDropConstraint(), AlterDomainValidateConstraint(), AlterExtensionNamespace(), AlterPolicy(), AlterSeqNamespaces(), AlterSetting(), AlterTypeRecurse(), ApplyExtensionUpdates(), ApplySetting(), ATExecAddOf(), ATExecAlterColumnType(), ATExecAlterConstraint(), ATExecAlterConstrRecurse(), ATExecAttachPartition(), ATExecDropConstraint(), ATExecValidateConstraint(), ATPrepChangePersistence(), AttrDefaultFetch(), change_owner_fix_column_acls(), change_owner_recurse_to_sequences(), changeDependenciesOf(), changeDependenciesOn(), changeDependencyFor(), CheckConstraintFetch(), checkSharedDependencies(), ChooseConstraintName(), CloneFkReferenced(), CloneRowTriggersToPartition(), ConstraintNameExists(), ConstraintNameIsUsed(), CopyStatistics(), copyTemplateDependencies(), CountDBSubscriptions(), CreateComments(), CreateInheritance(), CreatePolicy(), CreateSharedComments(), CreateTriggerFiringOn(), DefineOpClass(), DefineTSConfiguration(), DeleteAttributeTuples(), DeleteComments(), deleteDependencyRecordsFor(), deleteDependencyRecordsForClass(), deleteDependencyRecordsForSpecific(), DeleteInheritsTuple(), DeleteInitPrivs(), deleteOneObject(), DeleteSecurityLabel(), DeleteSharedComments(), DeleteSharedSecurityLabel(), DeleteSystemAttributeTuples(), drop_parent_dependency(), DropClonedTriggersFromPartition(), DropConfigurationMapping(), dropDatabaseDependencies(), DropObjectById(), DropRole(), EnableDisableTrigger(), EnumValuesDelete(), exec_object_restorecon(), ExecAlterExtensionStmt(), ExecGrant_Largeobject(), extension_config_remove(), fetch_statentries_for_relation(), find_composite_type_dependencies(), find_inheritance_children_extended(), findDependentObjects(), findDomainNotNullConstraint(), get_catalog_object_by_oid(), get_database_oid(), get_db_info(), get_domain_constraint_oid(), get_index_constraint(), get_index_ref_constraints(), get_partition_parent_worker(), get_pkey_attnames(), get_primary_key_attnos(), get_relation_constraint_attnos(), get_relation_constraint_oid(), get_relation_idx_constraint_oid(), get_relation_policy_oid(), get_rels_with_domain(), get_trigger_oid(), GetAllTablesPublications(), GetAttrDefaultColumnAddress(), GetAttrDefaultOid(), getAutoExtensionsOfObject(), GetComment(), GetDatabaseTuple(), GetDatabaseTupleByOid(), GetDefaultOpClass(), getExtensionOfObject(), GetForeignKeyActionTriggers(), GetForeignKeyCheckTriggers(), GetNewOidWithIndex(), getObjectDescription(), getObjectIdentityParts(), getOwnedSequences_internal(), GetParentedForeignKeyRefs(), GetPublicationRelations(), GetPublicationSchemas(), GetSecurityLabel(), GetSharedSecurityLabel(), GetSubscriptionRelations(), has_superclass(), HasSubscriptionRelations(), heap_truncate_find_FKs(), index_concurrently_swap(), IndexSetParentIndex(), is_schema_publication(), LargeObjectDrop(), LargeObjectExistsWithSnapshot(), load_domaintype_info(), load_enum_cache_data(), LookupOpclassInfo(), makeConfigurationDependencies(), MakeConfigurationMapping(), MarkInheritDetached(), MergeConstraintsIntoExisting(), MergeWithExistingConstraint(), movedb(), object_ownercheck(), PartitionHasPendingDetach(), pg_extension_config_dump(), pg_get_constraintdef_worker(), pg_get_serial_sequence(), pg_get_triggerdef_worker(), pg_largeobject_aclmask_snapshot(), RangeDelete(), recordExtensionInitPrivWorker(), recordExtObjInitPriv(), relation_has_policies(), RelationBuildPartitionDesc(), RelationBuildRowSecurity(), RelationBuildRuleLock(), RelationBuildTriggers(), RelationBuildTupleDesc(), RelationGetExclusionInfo(), RelationGetFKeyList(), RelationGetIndexList(), RelationGetStatExtList(), RelationRemoveInheritance(), RelidByRelfilenumber(), RememberAllDependentForRebuilding(), RemoveAttrDefault(), RemoveAttrDefaultById(), RemoveExtensionById(), RemoveInheritance(), RemovePolicyById(), RemoveRewriteRuleById(), RemoveRoleFromInitPriv(), RemoveRoleFromObjectACL(), RemoveRoleFromObjectPolicy(), RemoveStatistics(), RemoveTriggerById(), RemoveTSConfigurationById(), rename_policy(), renametrig(), renametrig_internal(), renametrig_partition(), ReplaceRoleInInitPriv(), replorigin_create(), ScanPgRelation(), SearchCatCacheList(), SearchCatCacheMiss(), sepgsql_attribute_post_create(), sepgsql_database_post_create(), sepgsql_proc_post_create(), sepgsql_proc_setattr(), sepgsql_relation_post_create(), sepgsql_relation_setattr(), sepgsql_relation_setattr_extra(), sepgsql_schema_post_create(), sequenceIsOwned(), SetSecurityLabel(), SetSharedSecurityLabel(), shdepChangeDep(), shdepDropDependency(), shdepDropOwned(), shdepReassignOwned(), systable_inplace_update_begin(), toastrel_valueid_exists(), TriggerSetParentTrigger(), tryAttachPartitionForeignKey(), typeInheritsFrom(), vac_update_datfrozenxid(), and validatePartitionedIndex().
SysScanDesc systable_beginscan_ordered | ( | Relation | heapRelation, |
Relation | indexRelation, | ||
Snapshot | snapshot, | ||
int | nkeys, | ||
ScanKey | key | ||
) |
Definition at line 651 of file genam.c.
References bsysscan, CheckXidAlive, elog, ereport, errcode(), errmsg(), ERROR, GetCatalogSnapshot(), SysScanDescData::heap_rel, i, IgnoreSystemIndexes, index_beginscan(), index_rescan(), IndexRelationGetNumberOfAttributes, SysScanDescData::irel, SysScanDescData::iscan, j, sort-test::key, palloc(), palloc_array, RelationData::rd_index, RegisterSnapshot(), ReindexIsProcessingIndex(), RelationGetRelationName, RelationGetRelid, SysScanDescData::scan, ScanKeyData::sk_attno, SysScanDescData::slot, SysScanDescData::snapshot, table_slot_create(), TransactionIdIsValid, and WARNING.
Referenced by BuildEventTriggerCache(), check_toasted_attribute(), enum_endpoint(), enum_range_internal(), heap_fetch_toast_slice(), inv_getsize(), inv_read(), inv_truncate(), inv_write(), lookup_ts_config_cache(), and toast_delete_datum().
void systable_endscan | ( | SysScanDesc | sysscan | ) |
Definition at line 604 of file genam.c.
References AccessShareLock, bsysscan, CheckXidAlive, ExecDropSingleTupleTableSlot(), index_close(), index_endscan(), SysScanDescData::irel, SysScanDescData::iscan, pfree(), SysScanDescData::scan, SysScanDescData::slot, SysScanDescData::snapshot, table_endscan(), TransactionIdIsValid, and UnregisterSnapshot().
Referenced by AfterTriggerSetState(), AlterConstraintNamespaces(), AlterDatabase(), AlterDatabaseOwner(), AlterDatabaseRefreshColl(), AlterDomainDropConstraint(), AlterDomainValidateConstraint(), AlterExtensionNamespace(), AlterPolicy(), AlterSeqNamespaces(), AlterSetting(), AlterTypeRecurse(), ApplyExtensionUpdates(), ApplySetting(), ATExecAddOf(), ATExecAlterColumnType(), ATExecAlterConstraint(), ATExecAlterConstrRecurse(), ATExecAttachPartition(), ATExecDropConstraint(), ATExecValidateConstraint(), ATPrepChangePersistence(), AttrDefaultFetch(), change_owner_fix_column_acls(), change_owner_recurse_to_sequences(), changeDependenciesOf(), changeDependenciesOn(), changeDependencyFor(), CheckConstraintFetch(), checkSharedDependencies(), ChooseConstraintName(), CloneFkReferenced(), CloneRowTriggersToPartition(), ConstraintNameExists(), ConstraintNameIsUsed(), CopyStatistics(), copyTemplateDependencies(), CountDBSubscriptions(), CreateComments(), CreateInheritance(), CreatePolicy(), CreateSharedComments(), CreateTriggerFiringOn(), DefineOpClass(), DefineTSConfiguration(), DeleteAttributeTuples(), DeleteComments(), deleteDependencyRecordsFor(), deleteDependencyRecordsForClass(), deleteDependencyRecordsForSpecific(), DeleteInheritsTuple(), DeleteInitPrivs(), deleteOneObject(), DeleteSecurityLabel(), DeleteSharedComments(), DeleteSharedSecurityLabel(), DeleteSystemAttributeTuples(), drop_parent_dependency(), DropClonedTriggersFromPartition(), DropConfigurationMapping(), dropDatabaseDependencies(), DropObjectById(), DropRole(), EnableDisableTrigger(), EnumValuesDelete(), exec_object_restorecon(), ExecAlterExtensionStmt(), ExecGrant_Largeobject(), extension_config_remove(), fetch_statentries_for_relation(), find_composite_type_dependencies(), find_inheritance_children_extended(), findDependentObjects(), findDomainNotNullConstraint(), get_catalog_object_by_oid(), get_database_oid(), get_db_info(), get_domain_constraint_oid(), get_index_constraint(), get_index_ref_constraints(), get_partition_parent_worker(), get_pkey_attnames(), get_primary_key_attnos(), get_relation_constraint_attnos(), get_relation_constraint_oid(), get_relation_idx_constraint_oid(), get_relation_policy_oid(), get_rels_with_domain(), get_trigger_oid(), GetAllTablesPublications(), GetAttrDefaultColumnAddress(), GetAttrDefaultOid(), getAutoExtensionsOfObject(), GetComment(), GetDatabaseTuple(), GetDatabaseTupleByOid(), GetDefaultOpClass(), getExtensionOfObject(), GetForeignKeyActionTriggers(), GetForeignKeyCheckTriggers(), GetNewOidWithIndex(), getObjectDescription(), getObjectIdentityParts(), getOwnedSequences_internal(), GetParentedForeignKeyRefs(), GetPublicationRelations(), GetPublicationSchemas(), GetSecurityLabel(), GetSharedSecurityLabel(), GetSubscriptionRelations(), has_superclass(), HasSubscriptionRelations(), heap_truncate_find_FKs(), index_concurrently_swap(), IndexSetParentIndex(), is_schema_publication(), LargeObjectDrop(), LargeObjectExistsWithSnapshot(), load_domaintype_info(), load_enum_cache_data(), LookupOpclassInfo(), makeConfigurationDependencies(), MakeConfigurationMapping(), MarkInheritDetached(), MergeConstraintsIntoExisting(), MergeWithExistingConstraint(), movedb(), object_ownercheck(), PartitionHasPendingDetach(), pg_extension_config_dump(), pg_get_constraintdef_worker(), pg_get_serial_sequence(), pg_get_triggerdef_worker(), pg_largeobject_aclmask_snapshot(), RangeDelete(), recordExtensionInitPrivWorker(), recordExtObjInitPriv(), relation_has_policies(), RelationBuildPartitionDesc(), RelationBuildRowSecurity(), RelationBuildRuleLock(), RelationBuildTriggers(), RelationBuildTupleDesc(), RelationGetExclusionInfo(), RelationGetFKeyList(), RelationGetIndexList(), RelationGetStatExtList(), RelationRemoveInheritance(), RelidByRelfilenumber(), RememberAllDependentForRebuilding(), RemoveAttrDefault(), RemoveAttrDefaultById(), RemoveExtensionById(), RemoveInheritance(), RemovePolicyById(), RemoveRewriteRuleById(), RemoveRoleFromInitPriv(), RemoveRoleFromObjectACL(), RemoveRoleFromObjectPolicy(), RemoveStatistics(), RemoveTriggerById(), RemoveTSConfigurationById(), rename_policy(), renametrig(), renametrig_internal(), renametrig_partition(), ReplaceRoleInInitPriv(), replorigin_create(), ScanPgRelation(), SearchCatCacheList(), SearchCatCacheMiss(), sepgsql_attribute_post_create(), sepgsql_database_post_create(), sepgsql_proc_post_create(), sepgsql_proc_setattr(), sepgsql_relation_post_create(), sepgsql_relation_setattr(), sepgsql_relation_setattr_extra(), sepgsql_schema_post_create(), sequenceIsOwned(), SetSecurityLabel(), SetSharedSecurityLabel(), shdepChangeDep(), shdepDropDependency(), shdepDropOwned(), shdepReassignOwned(), systable_inplace_update_begin(), systable_inplace_update_cancel(), systable_inplace_update_finish(), toastrel_valueid_exists(), TriggerSetParentTrigger(), tryAttachPartitionForeignKey(), typeInheritsFrom(), vac_update_datfrozenxid(), and validatePartitionedIndex().
void systable_endscan_ordered | ( | SysScanDesc | sysscan | ) |
Definition at line 756 of file genam.c.
References Assert, bsysscan, CheckXidAlive, ExecDropSingleTupleTableSlot(), index_endscan(), SysScanDescData::irel, SysScanDescData::iscan, pfree(), SysScanDescData::slot, SysScanDescData::snapshot, TransactionIdIsValid, and UnregisterSnapshot().
Referenced by BuildEventTriggerCache(), check_toasted_attribute(), enum_endpoint(), enum_range_internal(), heap_fetch_toast_slice(), inv_getsize(), inv_read(), inv_truncate(), inv_write(), lookup_ts_config_cache(), and toast_delete_datum().
HeapTuple systable_getnext | ( | SysScanDesc | sysscan | ) |
Definition at line 511 of file genam.c.
References Assert, elog, ERROR, ExecFetchSlotHeapTuple(), ForwardScanDirection, HandleConcurrentAbort(), index_getnext_slot(), SysScanDescData::irel, SysScanDescData::iscan, SysScanDescData::scan, SysScanDescData::slot, table_scan_getnextslot(), and IndexScanDescData::xs_recheck.
Referenced by AfterTriggerSetState(), AlterConstraintNamespaces(), AlterDatabase(), AlterDatabaseOwner(), AlterDatabaseRefreshColl(), AlterDomainDropConstraint(), AlterDomainValidateConstraint(), AlterExtensionNamespace(), AlterPolicy(), AlterSeqNamespaces(), AlterSetting(), AlterTypeRecurse(), ApplyExtensionUpdates(), ApplySetting(), ATExecAddOf(), ATExecAlterColumnType(), ATExecAlterConstraint(), ATExecAlterConstrRecurse(), ATExecAttachPartition(), ATExecDropConstraint(), ATExecValidateConstraint(), ATPrepChangePersistence(), AttrDefaultFetch(), change_owner_fix_column_acls(), change_owner_recurse_to_sequences(), changeDependenciesOf(), changeDependenciesOn(), changeDependencyFor(), CheckConstraintFetch(), checkSharedDependencies(), ChooseConstraintName(), CloneFkReferenced(), CloneRowTriggersToPartition(), ConstraintNameExists(), ConstraintNameIsUsed(), CopyStatistics(), copyTemplateDependencies(), CountDBSubscriptions(), CreateComments(), CreateInheritance(), CreatePolicy(), CreateSharedComments(), CreateTriggerFiringOn(), DefineOpClass(), DefineTSConfiguration(), DeleteAttributeTuples(), DeleteComments(), deleteDependencyRecordsFor(), deleteDependencyRecordsForClass(), deleteDependencyRecordsForSpecific(), DeleteInheritsTuple(), DeleteInitPrivs(), deleteOneObject(), DeleteSecurityLabel(), DeleteSharedComments(), DeleteSharedSecurityLabel(), DeleteSystemAttributeTuples(), drop_parent_dependency(), DropClonedTriggersFromPartition(), DropConfigurationMapping(), dropDatabaseDependencies(), DropObjectById(), DropRole(), EnableDisableTrigger(), EnumValuesDelete(), exec_object_restorecon(), ExecAlterExtensionStmt(), ExecGrant_Largeobject(), extension_config_remove(), fetch_statentries_for_relation(), find_composite_type_dependencies(), find_inheritance_children_extended(), findDependentObjects(), findDomainNotNullConstraint(), get_catalog_object_by_oid(), get_database_oid(), get_db_info(), get_domain_constraint_oid(), get_index_constraint(), get_index_ref_constraints(), get_partition_parent_worker(), get_pkey_attnames(), get_primary_key_attnos(), get_relation_constraint_attnos(), get_relation_constraint_oid(), get_relation_idx_constraint_oid(), get_relation_policy_oid(), get_rels_with_domain(), get_trigger_oid(), GetAllTablesPublications(), GetAttrDefaultColumnAddress(), GetAttrDefaultOid(), getAutoExtensionsOfObject(), GetComment(), GetDatabaseTuple(), GetDatabaseTupleByOid(), GetDefaultOpClass(), getExtensionOfObject(), GetForeignKeyActionTriggers(), GetForeignKeyCheckTriggers(), GetNewOidWithIndex(), getObjectDescription(), getObjectIdentityParts(), getOwnedSequences_internal(), GetParentedForeignKeyRefs(), GetPublicationRelations(), GetPublicationSchemas(), GetSecurityLabel(), GetSharedSecurityLabel(), GetSubscriptionRelations(), has_superclass(), HasSubscriptionRelations(), heap_truncate_find_FKs(), index_concurrently_swap(), IndexSetParentIndex(), is_schema_publication(), LargeObjectDrop(), LargeObjectExistsWithSnapshot(), load_domaintype_info(), load_enum_cache_data(), LookupOpclassInfo(), makeConfigurationDependencies(), MakeConfigurationMapping(), MarkInheritDetached(), MergeConstraintsIntoExisting(), MergeWithExistingConstraint(), movedb(), object_ownercheck(), PartitionHasPendingDetach(), pg_extension_config_dump(), pg_get_constraintdef_worker(), pg_get_serial_sequence(), pg_get_triggerdef_worker(), pg_largeobject_aclmask_snapshot(), RangeDelete(), recordExtensionInitPrivWorker(), recordExtObjInitPriv(), relation_has_policies(), RelationBuildPartitionDesc(), RelationBuildRowSecurity(), RelationBuildRuleLock(), RelationBuildTriggers(), RelationBuildTupleDesc(), RelationGetExclusionInfo(), RelationGetFKeyList(), RelationGetIndexList(), RelationGetStatExtList(), RelationRemoveInheritance(), RelidByRelfilenumber(), RememberAllDependentForRebuilding(), RemoveAttrDefault(), RemoveAttrDefaultById(), RemoveExtensionById(), RemoveInheritance(), RemovePolicyById(), RemoveRewriteRuleById(), RemoveRoleFromInitPriv(), RemoveRoleFromObjectACL(), RemoveRoleFromObjectPolicy(), RemoveStatistics(), RemoveTriggerById(), RemoveTSConfigurationById(), rename_policy(), renametrig(), renametrig_internal(), renametrig_partition(), ReplaceRoleInInitPriv(), replorigin_create(), ScanPgRelation(), SearchCatCacheList(), SearchCatCacheMiss(), sepgsql_attribute_post_create(), sepgsql_database_post_create(), sepgsql_proc_post_create(), sepgsql_proc_setattr(), sepgsql_relation_post_create(), sepgsql_relation_setattr(), sepgsql_relation_setattr_extra(), sepgsql_schema_post_create(), sequenceIsOwned(), SetSecurityLabel(), SetSharedSecurityLabel(), shdepChangeDep(), shdepDropDependency(), shdepDropOwned(), shdepReassignOwned(), systable_inplace_update_begin(), toastrel_valueid_exists(), TriggerSetParentTrigger(), tryAttachPartitionForeignKey(), typeInheritsFrom(), vac_update_datfrozenxid(), and validatePartitionedIndex().
HeapTuple systable_getnext_ordered | ( | SysScanDesc | sysscan, |
ScanDirection | direction | ||
) |
Definition at line 731 of file genam.c.
References Assert, elog, ERROR, ExecFetchSlotHeapTuple(), HandleConcurrentAbort(), index_getnext_slot(), SysScanDescData::irel, SysScanDescData::iscan, SysScanDescData::slot, and IndexScanDescData::xs_recheck.
Referenced by BuildEventTriggerCache(), check_toasted_attribute(), enum_endpoint(), enum_range_internal(), heap_fetch_toast_slice(), inv_getsize(), inv_read(), inv_truncate(), inv_write(), lookup_ts_config_cache(), and toast_delete_datum().
void systable_inplace_update_begin | ( | Relation | relation, |
Oid | indexId, | ||
bool | indexOK, | ||
Snapshot | snapshot, | ||
int | nkeys, | ||
const ScanKeyData * | key, | ||
HeapTuple * | oldtupcopy, | ||
void ** | state | ||
) |
Definition at line 806 of file genam.c.
References Assert, BufferHeapTupleTableSlot::buffer, CHECK_FOR_INTERRUPTS, elog, ereport, errcode(), errmsg(), ERROR, heap_copytuple(), heap_inplace_lock(), SysScanDescData::heap_rel, HeapTupleIsValid, INJECTION_POINT, IsInParallelMode(), IsInplaceUpdateRelation(), IsSystemRelation(), sort-test::key, SysScanDescData::slot, systable_beginscan(), systable_endscan(), systable_getnext(), TTS_IS_BUFFERTUPLE, and unconstify.
Referenced by create_toast_table(), dropdb(), EventTriggerOnLogin(), index_update_stats(), vac_update_datfrozenxid(), and vac_update_relstats().
void systable_inplace_update_cancel | ( | void * | state | ) |
Definition at line 901 of file genam.c.
References BufferHeapTupleTableSlot::buffer, heap_inplace_unlock(), SysScanDescData::heap_rel, SysScanDescData::slot, and systable_endscan().
Referenced by EventTriggerOnLogin(), index_update_stats(), vac_update_datfrozenxid(), and vac_update_relstats().
void systable_inplace_update_finish | ( | void * | state, |
HeapTuple | tuple | ||
) |
Definition at line 882 of file genam.c.
References BufferHeapTupleTableSlot::buffer, heap_inplace_update_and_unlock(), SysScanDescData::heap_rel, SysScanDescData::slot, and systable_endscan().
Referenced by create_toast_table(), dropdb(), EventTriggerOnLogin(), index_update_stats(), vac_update_datfrozenxid(), and vac_update_relstats().
bool systable_recheck_tuple | ( | SysScanDesc | sysscan, |
HeapTuple | tup | ||
) |
Definition at line 570 of file genam.c.
References Assert, ExecFetchSlotHeapTuple(), GetCatalogSnapshot(), HandleConcurrentAbort(), SysScanDescData::heap_rel, RelationGetRelid, SysScanDescData::slot, and table_tuple_satisfies_snapshot().
Referenced by CatalogCacheCreateEntry(), findDependentObjects(), and shdepDropOwned().
Definition at line 152 of file indexam.c.
References try_relation_open(), and validate_relation_kind().
Referenced by reindex_index().