postgresql/src/tools/pgindent/typedefs.list

2816 lines
41 KiB
Plaintext
Raw Normal View History

2010-02-26 02:55:35 +01:00
ABITVEC
ACCESS_ALLOWED_ACE
ACL
2010-02-26 02:55:35 +01:00
ACL_SIZE_INFORMATION
AES_KEY
AFFIX
ASN1_INTEGER
ASN1_STRING
AV
A_ArrayExpr
A_Const
A_Expr
A_Expr_Kind
A_Indices
A_Indirection
A_Star
AbsoluteTime
AccessPriv
Acl
AclItem
AclMaskHow
AclMode
AclObjectKind
AclResult
AcquireSampleRowsFunc
2010-02-26 02:55:35 +01:00
ActiveSnapshotElt
AddForeignUpdateTargets_function
2010-02-26 02:55:35 +01:00
AffixNode
AffixNodeData
AfterTriggerEvent
AfterTriggerEventChunk
AfterTriggerEventData
AfterTriggerEventList
AfterTriggerShared
AfterTriggerSharedData
AfterTriggersData
Agg
AggClauseCosts
2010-02-26 02:55:35 +01:00
AggHashEntry
AggInfo
AggState
AggStatePerAgg
AggStatePerGroup
AggStatePerGroupData
AggStatePerPhase
2010-02-26 02:55:35 +01:00
AggStrategy
AggVals
2010-02-26 02:55:35 +01:00
Aggref
AggrefExprState
AlenState
2010-02-26 02:55:35 +01:00
Alias
AllocBlock
AllocChunk
AllocPointer
AllocSet
AllocSetContext
AllocateDesc
AllocateDescKind
AlterDatabaseSetStmt
AlterDatabaseStmt
AlterDefaultPrivilegesStmt
AlterDomainStmt
AlterEnumStmt
AlterEventTrigStmt
AlterExtensionContentsStmt
AlterExtensionStmt
2010-02-26 02:55:35 +01:00
AlterFdwStmt
AlterForeignServerStmt
AlterFunctionStmt
AlterObjectSchemaStmt
AlterOpFamilyStmt
AlterOwnerStmt
AlterPolicyStmt
2010-02-26 02:55:35 +01:00
AlterRoleSetStmt
AlterRoleStmt
AlterSeqStmt
AlterSystemStmt
AlterTSConfigType
2010-02-26 02:55:35 +01:00
AlterTSConfigurationStmt
AlterTSDictionaryStmt
AlterTableCmd
AlterTableMoveAllStmt
AlterTableSpaceOptionsStmt
2010-02-26 02:55:35 +01:00
AlterTableStmt
AlterTableType
AlterUserMappingStmt
AlteredTableInfo
AlternativeSubPlan
AlternativeSubPlanState
AnalyzeAttrComputeStatsFunc
2010-02-26 02:55:35 +01:00
AnalyzeAttrFetchFunc
AnalyzeForeignTable_function
2010-02-26 02:55:35 +01:00
AnlIndexData
AnyArrayType
2010-02-26 02:55:35 +01:00
Append
AppendPath
AppendRelInfo
AppendState
Archive
ArchiveEntryPtr
ArchiveFormat
ArchiveHandle
ArchiveMode
ArchiverOutput
2010-02-26 02:55:35 +01:00
ArchiverStage
ArrayAnalyzeExtraData
2010-02-26 02:55:35 +01:00
ArrayBuildState
ArrayBuildStateAny
ArrayBuildStateArr
2010-02-26 02:55:35 +01:00
ArrayCoerceExpr
ArrayCoerceExprState
ArrayConstIterState
ArrayExpr
ArrayExprIterState
ArrayExprState
ArrayIterator
2010-02-26 02:55:35 +01:00
ArrayMapState
ArrayMetaState
ArrayParseState
ArrayRef
ArrayRefExprState
ArrayType
AsyncQueueControl
AsyncQueueEntry
AttInMetadata
AttoptCacheEntry
AttoptCacheKey
AttrDefInfo
AttrDefault
AttrNumber
AttributeOpts
AuditEvent
AuditEventStackItem
2010-02-26 02:55:35 +01:00
AuthRequest
AutoVacOpts
AutoVacuumShmemStruct
AuxProcType
BF_KEY
BF_ctx
BF_key
BF_word
BF_word_signed
2010-02-26 02:55:35 +01:00
BIGNUM
BIO
BIO_METHOD
BITVEC
BITVECP
BMS_Comparison
2010-02-26 02:55:35 +01:00
BMS_Membership
BN_CTX
BOOL
BOOLEAN
BOX
BTArrayKeyInfo
2010-02-26 02:55:35 +01:00
BTBuildState
BTCycleId
BTIndexStat
BTMetaPageData
BTOneVacInfo
BTPageOpaque
BTPageOpaqueData
BTPageStat
BTPageState
BTScanOpaque
BTScanOpaqueData
BTScanPos
2010-02-26 02:55:35 +01:00
BTScanPosData
BTScanPosItem
BTSortArrayContext
2010-02-26 02:55:35 +01:00
BTSpool
BTStack
BTStackData
BTVacInfo
BTVacState
BTWriteState
BYTE
Backend
BackendId
BackendParameters
BackendState
BackgroundWorker
BackgroundWorkerArray
BackgroundWorkerHandle
BackgroundWorkerSlot
BaseBackupCmd
BeginForeignModify_function
BeginForeignScan_function
BernoulliSamplerData
BgWorkerStartTime
BgwHandleStatus
BipartiteMatchState
2010-02-26 02:55:35 +01:00
BitmapAnd
BitmapAndPath
BitmapAndState
BitmapHeapPath
BitmapHeapScan
BitmapHeapScanState
BitmapIndexScan
BitmapIndexScanState
BitmapOr
BitmapOrPath
BitmapOrState
Bitmapset
BlobInfo
Block
BlockId
BlockIdData
BlockNumber
BlockSampler
BlockSamplerData
BlowfishContext
BoolAggState
2010-02-26 02:55:35 +01:00
BoolExpr
BoolExprState
BoolExprType
BoolTestType
BooleanTest
BpChar
BrinBuildState
BrinDesc
BrinMemTuple
BrinMetaPageData
BrinOpaque
BrinOpcInfo
BrinOptions
BrinRevmap
BrinSpecialSpace
BrinTuple
BrinValues
2010-02-26 02:55:35 +01:00
Bucket
BufFile
BufFlags
Buffer
BufferAccessStrategy
BufferAccessStrategyType
BufferCachePagesContext
BufferCachePagesRec
BufferDesc
BufferDescPadded
2010-02-26 02:55:35 +01:00
BufferLookupEnt
BufferStrategyControl
BufferTag
BufferUsage
BuildAccumulator
BulkInsertState
CACHESIGN
CAC_state
CAST_KEY
CEOUC_WAIT_MODE
2010-02-26 02:55:35 +01:00
CFuncHashTabEntry
CHAR
CHECKPOINT
2010-02-26 02:55:35 +01:00
CHKVAL
CIRCLE
CMPDAffix
CONTEXT
COP
CRITICAL_SECTION
CState
CV
C_block
2010-02-26 02:55:35 +01:00
CachedPlan
CachedPlanSource
CancelRequestPacket
CaseExpr
CaseExprState
CaseTestExpr
CaseWhen
CaseWhenState
Cash
CastInfo
CatCList
CatCTup
CatCache
CatCacheHeader
CatalogId
CatalogIndexState
ChangeVarNodes_context
CheckPoint
CheckPointStmt
CheckpointStatsData
CheckpointerRequest
CheckpointerShmemStruct
2010-02-26 02:55:35 +01:00
Chromosome
City
ClientAuthentication_hook_type
2010-02-26 02:55:35 +01:00
ClientData
ClonePtr
ClosePortalStmt
ClosePtr
Clump
2010-07-06 21:18:19 +02:00
ClusterInfo
2010-02-26 02:55:35 +01:00
ClusterStmt
CmdType
CoalesceExpr
CoalesceExprState
CoerceParamHook
CoerceToDomain
CoerceToDomainState
CoerceToDomainValue
CoerceViaIO
CoerceViaIOState
CoercionContext
CoercionForm
CoercionPathType
CollInfo
CollateClause
CollateExpr
CollateStrength
CollectedATSubcmd
CollectedCommand
CollectedCommandType
ColorTrgm
ColorTrgmInfo
2010-02-26 02:55:35 +01:00
ColumnCompareData
ColumnDef
ColumnIOData
ColumnRef
ComboCidEntry
ComboCidEntryData
ComboCidKey
ComboCidKeyData
Command
CommandDest
CommandId
CommentItem
CommentStmt
CommitTimestampEntry
CommitTimestampShared
CommonEntry
2010-02-26 02:55:35 +01:00
CommonTableExpr
CompareScalarsContext
CompositeTypeStmt
CompressionAlgorithm
CompressorState
ConfigFileVariable
ConfigVariable
ConnCacheEntry
ConnCacheKey
2010-02-26 02:55:35 +01:00
ConnStatusType
ConnType
ConsiderSplitContext
2010-02-26 02:55:35 +01:00
Const
ConstrCheck
ConstrType
Constraint
ConstraintCategory
ConstraintInfo
ConstraintsSetStmt
2010-07-06 21:18:19 +02:00
ControlData
2010-02-26 02:55:35 +01:00
ControlFileData
ConvInfo
ConvProcInfo
ConversionLocation
2010-02-26 02:55:35 +01:00
ConvertRowtypeExpr
ConvertRowtypeExprState
CookedConstraint
CopyDest
CopyState
CopyStateData
CopyStmt
Cost
CostSelector
Counters
CoverExt
2010-02-26 02:55:35 +01:00
CoverPos
CreateCastStmt
CreateConversionStmt
CreateDomainStmt
CreateEnumStmt
CreateEventTrigStmt
CreateExtensionStmt
2010-02-26 02:55:35 +01:00
CreateFdwStmt
CreateForeignServerStmt
CreateForeignTableStmt
2010-02-26 02:55:35 +01:00
CreateFunctionStmt
CreateOpClassItem
CreateOpClassStmt
CreateOpFamilyStmt
CreatePLangStmt
CreatePolicyStmt
CreateRangeStmt
CreateReplicationSlotCmd
2010-02-26 02:55:35 +01:00
CreateRoleStmt
CreateSchemaStmt
CreateSchemaStmtContext
CreateSeqStmt
CreateStmt
CreateStmtContext
CreateTableAsStmt
2010-02-26 02:55:35 +01:00
CreateTableSpaceStmt
CreateTransformStmt
2010-02-26 02:55:35 +01:00
CreateTrigStmt
CreateUserMappingStmt
CreatedbStmt
CredHandle
2010-02-26 02:55:35 +01:00
CteItem
CteScan
CteScanState
CteState
CtlCommand
CtxtHandle
2010-02-26 02:55:35 +01:00
CurrentOfExpr
CustomExecMethods
2010-02-26 02:55:35 +01:00
CustomOutPtr
CustomPath
CustomPathMethods
CustomScan
CustomScanMethods
CustomScanState
2010-02-26 02:55:35 +01:00
CycleCtr
DBState
DBWriteRequest
2010-02-26 02:55:35 +01:00
DCHCacheEntry
DEADLOCK_INFO
DECountItem
2010-02-26 02:55:35 +01:00
DES_cblock
DES_key_schedule
DH
DIR
DNSServiceErrorType
DNSServiceRef
2010-02-26 02:55:35 +01:00
DR_copy
DR_intorel
DR_printtup
DR_sqlfunction
DR_transientrel
2010-02-26 02:55:35 +01:00
DWORD
DataDumperPtr
DataPageDeleteStack
DateADT
Datum
DatumTupleFields
2010-07-06 21:18:19 +02:00
DbInfo
DbInfoArr
2010-02-26 02:55:35 +01:00
DeClonePtr
DeadLockState
DeallocateStmt
DeclareCursorStmt
DecodedBkpBlock
DecodingOutputState
2010-02-26 02:55:35 +01:00
DefElem
DefElemAction
DefaultACLInfo
DefineStmt
DeleteStmt
DependencyType
DestReceiver
DictISpell
DictInt
DictSimple
DictSnowball
DictSubState
DictSyn
DictThesaurus
DisableTimeoutParams
2010-02-26 02:55:35 +01:00
DiscardMode
DiscardStmt
DistinctExpr
DoStmt
DocRepresentation
DomainConstraintCache
DomainConstraintRef
2010-02-26 02:55:35 +01:00
DomainConstraintState
DomainConstraintType
DomainIOData
DropBehavior
DropOwnedStmt
DropReplicationSlotCmd
2010-02-26 02:55:35 +01:00
DropRoleStmt
DropStmt
DropTableSpaceStmt
DropUserMappingStmt
DropdbStmt
DumpId
DumpOptions
2010-02-26 02:55:35 +01:00
DumpableObject
DumpableObjectType
DynamicFileList
DynamicZoneAbbrev
EC_KEY
2010-02-26 02:55:35 +01:00
EDGE
ENGINE
EOM_flatten_into_method
EOM_get_flat_size_method
2010-02-26 02:55:35 +01:00
EPQState
EPlan
EState
EVP_MD
EVP_MD_CTX
EVP_PKEY
EachState
2010-02-26 02:55:35 +01:00
Edge
ElementsState
EnableTimeoutParams
2010-02-26 02:55:35 +01:00
EndBlobPtr
EndBlobsPtr
EndDataPtr
EndForeignModify_function
EndForeignScan_function
EnumItem
2010-02-26 02:55:35 +01:00
EolType
EquivalenceClass
EquivalenceMember
ErrorContextCallback
ErrorData
EventTriggerCacheEntry
EventTriggerCacheItem
EventTriggerCacheStateType
EventTriggerData
EventTriggerEvent
EventTriggerInfo
EventTriggerQueryState
2010-02-26 02:55:35 +01:00
ExceptionLabelMap
ExceptionMap
ExecAuxRowMark
ExecForeignDelete_function
ExecForeignInsert_function
ExecForeignUpdate_function
2010-02-26 02:55:35 +01:00
ExecRowMark
ExecScanAccessMtd
ExecScanRecheckMtd
ExecStatus
ExecStatusType
ExecuteStmt
ExecutorCheckPerms_hook_type
2010-02-26 02:55:35 +01:00
ExecutorEnd_hook_type
ExecutorFinish_hook_type
2010-02-26 02:55:35 +01:00
ExecutorRun_hook_type
ExecutorStart_hook_type
ExpandedArrayHeader
ExpandedObjectHeader
ExpandedObjectMethods
ExplainForeignModify_function
ExplainForeignScan_function
2010-02-26 02:55:35 +01:00
ExplainFormat
ExplainOneQuery_hook_type
ExplainState
ExplainStmt
Expr
ExprContext
ExprContextCallbackFunction
ExprContext_CB
ExprDoneCond
ExprState
ExprStateEvalFunc
ExtensionBehavior
ExtensionControlFile
ExtensionInfo
ExtensionVersionInfo
FDWCollateState
FD_SET
2010-02-26 02:55:35 +01:00
FILE
FILETIME
FSMAddress
FSMPage
FSMPageData
FState
FakeRelCacheEntry
FakeRelCacheEntryData
FastPathStrongRelationLockData
2010-02-26 02:55:35 +01:00
FdwInfo
FdwRoutine
2010-02-26 02:55:35 +01:00
FetchDirection
FetchStmt
FieldNot
FieldSelect
FieldSelectState
FieldStore
FieldStoreState
File
FileFdwExecutionState
FileFdwPlanState
2010-02-26 02:55:35 +01:00
FileName
2010-07-06 21:18:19 +02:00
FileNameMap
2010-02-26 02:55:35 +01:00
FindSplitData
FixedParallelState
2010-02-26 02:55:35 +01:00
FixedParamState
FmgrBuiltin
FmgrHookEventType
2010-02-26 02:55:35 +01:00
FmgrInfo
ForeignDataWrapper
ForeignPath
ForeignScan
ForeignScanState
2010-02-26 02:55:35 +01:00
ForeignServer
ForeignServerInfo
ForeignTable
2010-02-26 02:55:35 +01:00
ForkNumber
FormData_pg_aggregate
FormData_pg_am
FormData_pg_amop
FormData_pg_amproc
FormData_pg_attrdef
FormData_pg_attribute
FormData_pg_auth_members
FormData_pg_authid
FormData_pg_cast
FormData_pg_class
FormData_pg_collation
2010-02-26 02:55:35 +01:00
FormData_pg_constraint
FormData_pg_conversion
FormData_pg_database
FormData_pg_default_acl
FormData_pg_depend
FormData_pg_enum
FormData_pg_event_trigger
FormData_pg_extension
2010-02-26 02:55:35 +01:00
FormData_pg_foreign_data_wrapper
FormData_pg_foreign_server
FormData_pg_foreign_table
2010-02-26 02:55:35 +01:00
FormData_pg_index
FormData_pg_inherits
FormData_pg_language
FormData_pg_largeobject
FormData_pg_largeobject_metadata
FormData_pg_namespace
FormData_pg_opclass
FormData_pg_operator
FormData_pg_opfamily
FormData_pg_pltemplate
FormData_pg_policy
2010-02-26 02:55:35 +01:00
FormData_pg_proc
FormData_pg_range
FormData_pg_replication_origin
2010-02-26 02:55:35 +01:00
FormData_pg_rewrite
FormData_pg_sequence
FormData_pg_shdepend
FormData_pg_statistic
FormData_pg_tablesample_method
2010-02-26 02:55:35 +01:00
FormData_pg_tablespace
FormData_pg_transform
2010-02-26 02:55:35 +01:00
FormData_pg_trigger
FormData_pg_ts_config
FormData_pg_ts_config_map
FormData_pg_ts_dict
FormData_pg_ts_parser
FormData_pg_ts_template
FormData_pg_type
FormData_pg_user_mapping
Form_pg_aggregate
Form_pg_am
Form_pg_amop
Form_pg_amproc
Form_pg_attrdef
Form_pg_attribute
Form_pg_auth_members
Form_pg_authid
Form_pg_cast
Form_pg_class
Form_pg_collation
2010-02-26 02:55:35 +01:00
Form_pg_constraint
Form_pg_conversion
Form_pg_database
Form_pg_default_acl
Form_pg_depend
Form_pg_enum
Form_pg_event_trigger
Form_pg_extension
2010-02-26 02:55:35 +01:00
Form_pg_foreign_data_wrapper
Form_pg_foreign_server
Form_pg_foreign_table
2010-02-26 02:55:35 +01:00
Form_pg_index
Form_pg_inherits
Form_pg_language
Form_pg_largeobject
Form_pg_largeobject_metadata
Form_pg_namespace
Form_pg_opclass
Form_pg_operator
Form_pg_opfamily
Form_pg_pltemplate
Form_pg_policy
2010-02-26 02:55:35 +01:00
Form_pg_proc
Form_pg_range
Form_pg_replication_origin
2010-02-26 02:55:35 +01:00
Form_pg_rewrite
Form_pg_sequence
Form_pg_shdepend
Form_pg_statistic
Form_pg_tablesample_method
2010-02-26 02:55:35 +01:00
Form_pg_tablespace
Form_pg_transform
2010-02-26 02:55:35 +01:00
Form_pg_trigger
Form_pg_ts_config
Form_pg_ts_config_map
Form_pg_ts_dict
Form_pg_ts_parser
Form_pg_ts_template
Form_pg_type
Form_pg_user_mapping
FormatNode
FromCharDateMode
FromExpr
FuncCall
FuncCallContext
FuncCandidateList
FuncDetailCode
FuncExpr
FuncExprState
FuncInfo
FuncWithArgs
FunctionCallInfo
FunctionCallInfoData
FunctionParameter
FunctionParameterMode
FunctionScan
FunctionScanPerFuncState
2010-02-26 02:55:35 +01:00
FunctionScanState
Gather
GatherPath
GatherState
FuzzyAttrMatchState
2010-02-26 02:55:35 +01:00
GBT_NUMKEY
GBT_NUMKEY_R
GBT_VARKEY
GBT_VARKEY_R
GENERAL_NAME
GISTBuildBuffers
2010-02-26 02:55:35 +01:00
GISTBuildState
GISTENTRY
GISTInsertStack
GISTInsertState
GISTNodeBuffer
GISTNodeBufferPage
2010-02-26 02:55:35 +01:00
GISTPageOpaque
GISTPageOpaqueData
GISTPageSplitInfo
2010-02-26 02:55:35 +01:00
GISTSTATE
GISTScanOpaque
GISTScanOpaqueData
GISTSearchHeapItem
GISTSearchItem
2010-02-26 02:55:35 +01:00
GISTTYPE
GIST_SPLITVEC
GV
Gene
GenericCosts
2010-02-26 02:55:35 +01:00
GenericExprState
GeqoPrivateData
GetForeignJoinPaths_function
GetForeignPaths_function
GetForeignPlan_function
GetForeignRelSize_function
GetForeignRowMarkType_function
GetState
GiSTOptions
2010-02-26 02:55:35 +01:00
GinBtree
GinBtreeData
GinBtreeDataLeafInsertData
GinBtreeEntryInsertData
2010-02-26 02:55:35 +01:00
GinBtreeStack
GinBuildState
GinChkVal
GinEntryAccumulator
GinIndexStat
2010-02-26 02:55:35 +01:00
GinMetaPageData
GinNullCategory
2010-02-26 02:55:35 +01:00
GinOptions
GinPageOpaque
GinPageOpaqueData
GinPlaceToPageRC
GinPostingList
GinQualCounts
2010-02-26 02:55:35 +01:00
GinScanEntry
GinScanKey
GinScanOpaque
GinScanOpaqueData
GinState
GinStatsData
GinTernaryValue
2010-02-26 02:55:35 +01:00
GinTupleCollector
GinVacuumState
GistBDItem
GistBufferingMode
2010-02-26 02:55:35 +01:00
GistEntryVector
GistInetKey
2010-02-26 02:55:35 +01:00
GistNSN
GistSplitUnion
GistSplitVector
GlobalTransaction
GrantObjectType
GrantRoleStmt
GrantStmt
GrantTargetType
Group
GroupState
GroupVarInfo
GroupingFunc
GroupingFuncExprState
GroupingSet
GroupingSetKind
2010-02-26 02:55:35 +01:00
GucAction
GucBoolAssignHook
GucBoolCheckHook
2010-02-26 02:55:35 +01:00
GucContext
GucEnumAssignHook
GucEnumCheckHook
2010-02-26 02:55:35 +01:00
GucIntAssignHook
GucIntCheckHook
2010-02-26 02:55:35 +01:00
GucRealAssignHook
GucRealCheckHook
2010-02-26 02:55:35 +01:00
GucShowHook
GucSource
GucStack
GucStackState
GucStringAssignHook
GucStringCheckHook
2010-02-26 02:55:35 +01:00
HANDLE
HASHACTION
HASHBUCKET
HASHCTL
HASHELEMENT
HASHHDR
HASHSEGMENT
HASH_SEQ_STATUS
HCRYPTPROV
HE
2010-02-26 02:55:35 +01:00
HEntry
HIST_ENTRY
HKEY
HLOCAL
HMODULE
HOldEntry
HRESULT
2010-02-26 02:55:35 +01:00
HSParser
HSpool
HStore
HTAB
HTSU_Result
HTSV_Result
HV
Hash
HashAllocFunc
HashBuildState
HashCompareFunc
HashCopyFunc
HashJoin
HashJoinState
HashJoinTable
HashJoinTuple
HashMemoryChunk
2010-02-26 02:55:35 +01:00
HashMetaPage
HashMetaPageData
HashPageOpaque
HashPageOpaqueData
HashPath
HashScanList
HashScanListData
HashScanOpaque
HashScanOpaqueData
HashSkewBucket
HashState
HashValueFunc
HbaLine
HbaToken
2010-02-26 02:55:35 +01:00
HeadlineParsedText
HeadlineWordEntry
HeapScanDesc
HeapTuple
HeapTupleData
HeapTupleFields
HeapTupleHeader
HeapTupleHeaderData
HeapUpdateFailureData
2010-02-26 02:55:35 +01:00
HistControl
HotStandbyState
I32
INFIX
INTERFACE_INFO
2010-02-26 02:55:35 +01:00
IOFuncSelector
IPCompareMethod
ITEM
IV
IdentLine
2010-02-26 02:55:35 +01:00
IdentifierLookup
IdentifySystemCmd
ImportForeignSchemaStmt
ImportForeignSchemaType
ImportForeignSchema_function
ImportQual
InclusionOpaque
2010-02-26 02:55:35 +01:00
IncrementVarSublevelsUp_context
Index
IndexArrayKeyInfo
IndexAttrBitmapKind
2010-02-26 02:55:35 +01:00
IndexBuildCallback
IndexBuildResult
IndexBulkDeleteCallback
IndexBulkDeleteResult
IndexClauseSet
2010-02-26 02:55:35 +01:00
IndexElem
IndexInfo
IndexList
IndexOnlyScan
IndexOnlyScanState
2010-02-26 02:55:35 +01:00
IndexOptInfo
IndexPath
IndexQualInfo
2010-02-26 02:55:35 +01:00
IndexRuntimeKeyInfo
IndexScan
IndexScanDesc
IndexScanState
IndexStateFlagsAction
2010-02-26 02:55:35 +01:00
IndexStmt
IndexTuple
IndexTupleData
IndexUniqueCheck
IndexVacuumInfo
IndirectBlock
IndxInfo
InferClause
InferenceElem
2010-02-26 02:55:35 +01:00
InfoItem
InhInfo
InhOption
InheritableSocket
2010-02-26 02:55:35 +01:00
InlineCodeBlock
InsertStmt
Instrumentation
Int128AggState
2010-02-26 02:55:35 +01:00
Int8TransTypeData
IntArray
InternalDefaultACL
InternalGrant
Interval
IntoClause
InvalidationChunk
InvalidationListHeader
IpcMemoryId
IpcMemoryKey
IpcSemaphoreId
IpcSemaphoreKey
IsForeignRelUpdatable_function
2010-02-26 02:55:35 +01:00
IspellDict
Item
ItemId
ItemIdData
ItemLength
ItemOffset
2010-02-26 02:55:35 +01:00
ItemPointer
ItemPointerData
IterateForeignScan_function
JEntry
JHashState
2010-02-26 02:55:35 +01:00
JOBOBJECTINFOCLASS
JOBOBJECT_BASIC_LIMIT_INFORMATION
JOBOBJECT_BASIC_UI_RESTRICTIONS
JOBOBJECT_SECURITY_LIMIT_INFORMATION
Join
JoinCostWorkspace
2010-02-26 02:55:35 +01:00
JoinExpr
JoinHashEntry
JoinPath
JoinPathExtraData
2010-02-26 02:55:35 +01:00
JoinState
JoinType
JsonHashEntry
JsonLexContext
JsonParseContext
JsonSemAction
JsonTokenType
JsonTypeCategory
Jsonb
JsonbContainer
JsonbInState
JsonbIterState
JsonbIterator
JsonbIteratorToken
JsonbPair
JsonbParseState
JsonbTypeCategory
JsonbValue
2010-02-26 02:55:35 +01:00
JunkFilter
KeyArray
2010-02-26 02:55:35 +01:00
KeySuffix
KeyWord
LARGE_INTEGER
LDAP
LDAPMessage
LDAPURLDesc
2010-02-26 02:55:35 +01:00
LDAP_TIMEVAL
LINE
LOCALLOCK
LOCALLOCKOWNER
LOCALLOCKTAG
Implement genuine serializable isolation level. Until now, our Serializable mode has in fact been what's called Snapshot Isolation, which allows some anomalies that could not occur in any serialized ordering of the transactions. This patch fixes that using a method called Serializable Snapshot Isolation, based on research papers by Michael J. Cahill (see README-SSI for full references). In Serializable Snapshot Isolation, transactions run like they do in Snapshot Isolation, but a predicate lock manager observes the reads and writes performed and aborts transactions if it detects that an anomaly might occur. This method produces some false positives, ie. it sometimes aborts transactions even though there is no anomaly. To track reads we implement predicate locking, see storage/lmgr/predicate.c. Whenever a tuple is read, a predicate lock is acquired on the tuple. Shared memory is finite, so when a transaction takes many tuple-level locks on a page, the locks are promoted to a single page-level lock, and further to a single relation level lock if necessary. To lock key values with no matching tuple, a sequential scan always takes a relation-level lock, and an index scan acquires a page-level lock that covers the search key, whether or not there are any matching keys at the moment. A predicate lock doesn't conflict with any regular locks or with another predicate locks in the normal sense. They're only used by the predicate lock manager to detect the danger of anomalies. Only serializable transactions participate in predicate locking, so there should be no extra overhead for for other transactions. Predicate locks can't be released at commit, but must be remembered until all the transactions that overlapped with it have completed. That means that we need to remember an unbounded amount of predicate locks, so we apply a lossy but conservative method of tracking locks for committed transactions. If we run short of shared memory, we overflow to a new "pg_serial" SLRU pool. We don't currently allow Serializable transactions in Hot Standby mode. That would be hard, because even read-only transactions can cause anomalies that wouldn't otherwise occur. Serializable isolation mode now means the new fully serializable level. Repeatable Read gives you the old Snapshot Isolation level that we have always had. Kevin Grittner and Dan Ports, reviewed by Jeff Davis, Heikki Linnakangas and Anssi Kääriäinen
2011-02-07 22:46:51 +01:00
LOCALPREDICATELOCK
2010-02-26 02:55:35 +01:00
LOCK
LOCKMASK
LOCKMETHODID
LOCKMODE
LOCKTAG
LONG
LONG_PTR
LOOP
2010-02-26 02:55:35 +01:00
LPBYTE
LPCTSTR
LPCWSTR
LPDWORD
LPSECURITY_ATTRIBUTES
LPSERVICE_STATUS
LPSTR
LPTHREAD_START_ROUTINE
LPTSTR
LPVOID
LPWSTR
LSEG
LVRelStats
LWLock
LWLockHandle
NamedLWLockTranche
LWLockMinimallyPadded
2010-02-26 02:55:35 +01:00
LWLockMode
LWLockPadded
LWLockTranche
NamedLWLockTrancheRequest
LabelProvider
2010-02-26 02:55:35 +01:00
LargeObjectDesc
Latch
LateralJoinInfo
LerpFunc
2010-02-26 02:55:35 +01:00
LexDescr
LexemeEntry
LexemeHashKey
LexemeInfo
LexemeKey
LexizeData
Limit
LimitState
LimitStateCond
List
ListCell
ListDictionary
ListParsedLex
ListenAction
ListenActionKind
ListenStmt
LoadStmt
LocalBufferLookupEnt
LocalPgBackendStatus
2010-02-26 02:55:35 +01:00
LocalTransactionId
LocationIndex
LockAcquireResult
LockClauseStrength
2010-02-26 02:55:35 +01:00
LockData
LockInfoData
LockInstanceData
2010-02-26 02:55:35 +01:00
LockMethod
LockMethodData
LockRelId
LockRows
LockRowsState
LockStmt
LockTagType
LockTupleMode
LockWaitPolicy
2010-02-26 02:55:35 +01:00
LockingClause
LogOpts
2010-02-26 02:55:35 +01:00
LogStmtLevel
LogicalDecodeBeginCB
LogicalDecodeChangeCB
LogicalDecodeCommitCB
LogicalDecodeFilterByOriginCB
LogicalDecodeShutdownCB
LogicalDecodeStartupCB
LogicalDecodingContext
LogicalErrorCallbackState
LogicalOutputPluginInit
LogicalOutputPluginWriterPrepareWrite
LogicalOutputPluginWriterWrite
LogicalRewriteMappingData
2010-02-26 02:55:35 +01:00
LogicalTape
LogicalTapeSet
MAGIC
MBuf
MEMORY_BASIC_INFORMATION
MINIDUMPWRITEDUMP
MINIDUMP_TYPE
2010-07-06 21:18:19 +02:00
MJEvalResult
MasterEndParallelItemPtr
MasterStartParallelItemPtr
2010-02-26 02:55:35 +01:00
Material
MaterialPath
MaterialState
MdfdVec
MembersLiveRange
2010-02-26 02:55:35 +01:00
MemoryContext
MemoryContextCallback
MemoryContextCallbackFunction
2010-02-26 02:55:35 +01:00
MemoryContextData
MemoryContextMethods
MergeAppend
MergeAppendPath
MergeAppendState
2010-02-26 02:55:35 +01:00
MergeJoin
MergeJoinClause
MergeJoinState
MergePath
MergeScanSelCache
MinMaxAggInfo
MinMaxExpr
MinMaxExprState
MinMaxOp
MinimalTuple
MinimalTupleData
MinmaxOpaque
2010-02-26 02:55:35 +01:00
ModifyTable
ModifyTableState
MsgType
MultiAssignRef
2010-02-26 02:55:35 +01:00
MultiXactId
MultiXactMember
2010-02-26 02:55:35 +01:00
MultiXactOffset
MultiXactStateData
MultiXactStatus
2010-02-26 02:55:35 +01:00
MyData
NDBOX
NODE
NUMCacheEntry
NUMDesc
NUMProc
NV
Name
NameData
NamedArgExpr
NamespaceInfo
NestLoop
NestLoopParam
2010-02-26 02:55:35 +01:00
NestLoopState
NestPath
NewColumnValue
NewConstraint
Node
NodeTag
NonEmptyRange
2010-02-26 02:55:35 +01:00
Notification
NotifyStmt
Nsrt
NullIfExpr
NullTest
NullTestState
NullTestType
Numeric
NumericAggState
2010-02-26 02:55:35 +01:00
NumericDigit
NumericSortSupport
2010-02-26 02:55:35 +01:00
NumericVar
OM_uint32
2010-02-26 02:55:35 +01:00
OP
OSAPerGroupState
OSAPerQueryState
OSInfo
2010-02-26 02:55:35 +01:00
OSSLDigest
OSVERSIONINFO
OVERLAPPED
ObjectAccessDrop
ObjectAccessNamespaceSearch
ObjectAccessPostAlter
ObjectAccessPostCreate
ObjectAccessType
2010-02-26 02:55:35 +01:00
ObjectAddress
ObjectAddressExtra
ObjectAddressStack
ObjectAddresses
ObjectClass
ObjectPropertyType
2010-02-26 02:55:35 +01:00
ObjectType
Offset
OffsetNumber
OffsetVarNodes_context
Oid
OidOptions
OkeysState
OldSerXidControl
2010-02-26 02:55:35 +01:00
OldToNewMapping
OldToNewMappingData
OldTriggerInfo
Oldstyle_fnextra
OnCommitAction
OnCommitItem
OnConflictAction
OnConflictClause
OnConflictExpr
OpBtreeInterpretation
2010-02-26 02:55:35 +01:00
OpClassCacheEnt
OpExpr
OpFamilyMember
OpclassInfo
Operator
OpfamilyInfo
OprCacheEntry
OprCacheKey
OprInfo
OprProofCacheEntry
OprProofCacheKey
OutputContext
OutputPluginCallbacks
OutputPluginOptions
OutputPluginOutputType
2010-02-26 02:55:35 +01:00
OverrideSearchPath
OverrideStackEntry
PACE_HEADER
PACL
ParallelExecutorInfo
2010-02-26 02:55:35 +01:00
PATH
PBOOL
PCtxtHandle
2010-02-26 02:55:35 +01:00
PFN
PGAsyncStatusType
PGCALL2
PGEvent
PGEventConnDestroy
PGEventConnReset
PGEventId
PGEventProc
PGEventRegister
PGEventResultCopy
PGEventResultCreate
PGEventResultDestroy
PGFInfoFunction
PGFunction
PGLZ_HistEntry
PGLZ_Strategy
PGMessageField
PGModuleMagicFunction
PGNoticeHooks
PGPROC
PGP_CFB
PGP_Context
PGP_MPI
PGP_PubKey
PGP_S2K
PGPing
2010-02-26 02:55:35 +01:00
PGQueryClass
PGRUsage
PGSemaphore
PGSemaphoreData
PGSetenvStatusType
PGShmemHeader
PGTransactionStatusType
PGVerbosity
PGXACT
PG_Locale_Strategy
2010-02-26 02:55:35 +01:00
PG_Lock_Status
PG_init_t
PGcancel
PGconn
PGdataValue
2010-02-26 02:55:35 +01:00
PGlobjfuncs
PGnotify
PGresAttDesc
PGresAttValue
PGresParamDesc
PGresult
PGresult_data
PHANDLE
PLAINTREE
PLTemplate
PLUID_AND_ATTRIBUTES
PLcword
PLpgSQL_arrayelem
PLpgSQL_case_when
PLpgSQL_condition
PLpgSQL_datum
PLpgSQL_diag_item
PLpgSQL_exception
PLpgSQL_exception_block
PLpgSQL_execstate
PLpgSQL_expr
PLpgSQL_func_hashkey
PLpgSQL_function
PLpgSQL_if_elsif
2010-02-26 02:55:35 +01:00
PLpgSQL_nsitem
PLpgSQL_plugin
PLpgSQL_raise_option
PLpgSQL_rec
PLpgSQL_recfield
PLpgSQL_resolve_option
PLpgSQL_row
PLpgSQL_stmt
PLpgSQL_stmt_assert
2010-02-26 02:55:35 +01:00
PLpgSQL_stmt_assign
PLpgSQL_stmt_block
PLpgSQL_stmt_case
PLpgSQL_stmt_close
PLpgSQL_stmt_dynexecute
PLpgSQL_stmt_dynfors
PLpgSQL_stmt_execsql
PLpgSQL_stmt_exit
PLpgSQL_stmt_fetch
PLpgSQL_stmt_forc
PLpgSQL_stmt_foreach_a
2010-02-26 02:55:35 +01:00
PLpgSQL_stmt_fori
PLpgSQL_stmt_forq
PLpgSQL_stmt_fors
PLpgSQL_stmt_getdiag
PLpgSQL_stmt_if
PLpgSQL_stmt_loop
PLpgSQL_stmt_open
PLpgSQL_stmt_perform
PLpgSQL_stmt_raise
PLpgSQL_stmt_return
PLpgSQL_stmt_return_next
PLpgSQL_stmt_return_query
PLpgSQL_stmt_while
PLpgSQL_trigtype
2010-02-26 02:55:35 +01:00
PLpgSQL_type
PLpgSQL_var
PLpgSQL_variable
PLwdatum
PLword
PLyCursorObject
2010-02-26 02:55:35 +01:00
PLyDatumToOb
PLyDatumToObFunc
PLyExceptionEntry
PLyExecutionContext
2010-02-26 02:55:35 +01:00
PLyObToDatum
PLyObToDatumFunc
PLyObToTuple
PLyPlanObject
PLyProcedure
PLyProcedureEntry
PLyProcedureKey
2010-02-26 02:55:35 +01:00
PLyResultObject
PLySubtransactionData
PLySubtransactionObject
2010-02-26 02:55:35 +01:00
PLyTupleToOb
PLyTypeInfo
PLyTypeInput
PLyTypeOutput
PMINIDUMP_CALLBACK_INFORMATION
PMINIDUMP_EXCEPTION_INFORMATION
PMINIDUMP_USER_STREAM_INFORMATION
2010-02-26 02:55:35 +01:00
PMSignalData
PMSignalReason
PMState
POLYGON
PQArgBlock
PQEnvironmentOption
PQExpBuffer
PQExpBufferData
PQcommMethods
2010-02-26 02:55:35 +01:00
PQconninfoOption
PQnoticeProcessor
PQnoticeReceiver
PQprintOpt
Implement genuine serializable isolation level. Until now, our Serializable mode has in fact been what's called Snapshot Isolation, which allows some anomalies that could not occur in any serialized ordering of the transactions. This patch fixes that using a method called Serializable Snapshot Isolation, based on research papers by Michael J. Cahill (see README-SSI for full references). In Serializable Snapshot Isolation, transactions run like they do in Snapshot Isolation, but a predicate lock manager observes the reads and writes performed and aborts transactions if it detects that an anomaly might occur. This method produces some false positives, ie. it sometimes aborts transactions even though there is no anomaly. To track reads we implement predicate locking, see storage/lmgr/predicate.c. Whenever a tuple is read, a predicate lock is acquired on the tuple. Shared memory is finite, so when a transaction takes many tuple-level locks on a page, the locks are promoted to a single page-level lock, and further to a single relation level lock if necessary. To lock key values with no matching tuple, a sequential scan always takes a relation-level lock, and an index scan acquires a page-level lock that covers the search key, whether or not there are any matching keys at the moment. A predicate lock doesn't conflict with any regular locks or with another predicate locks in the normal sense. They're only used by the predicate lock manager to detect the danger of anomalies. Only serializable transactions participate in predicate locking, so there should be no extra overhead for for other transactions. Predicate locks can't be released at commit, but must be remembered until all the transactions that overlapped with it have completed. That means that we need to remember an unbounded amount of predicate locks, so we apply a lossy but conservative method of tracking locks for committed transactions. If we run short of shared memory, we overflow to a new "pg_serial" SLRU pool. We don't currently allow Serializable transactions in Hot Standby mode. That would be hard, because even read-only transactions can cause anomalies that wouldn't otherwise occur. Serializable isolation mode now means the new fully serializable level. Repeatable Read gives you the old Snapshot Isolation level that we have always had. Kevin Grittner and Dan Ports, reviewed by Jeff Davis, Heikki Linnakangas and Anssi Kääriäinen
2011-02-07 22:46:51 +01:00
PREDICATELOCK
PREDICATELOCKTAG
PREDICATELOCKTARGET
PREDICATELOCKTARGETTAG
2010-02-26 02:55:35 +01:00
PROCESS_INFORMATION
PROCLOCK
PROCLOCKTAG
PROC_HDR
PROC_QUEUE
PSID
PSID_AND_ATTRIBUTES
PSQL_COMP_CASE
2010-02-26 02:55:35 +01:00
PSQL_ECHO
PSQL_ECHO_HIDDEN
PSQL_ERROR_ROLLBACK
PTOKEN_GROUPS
PTOKEN_USER
PVCAggregateBehavior
2010-02-26 02:55:35 +01:00
PVCPlaceHolderBehavior
PVOID
PX_Alias
PX_Cipher
PX_Combo
PX_HMAC
PX_MD
Page
PageGistNSN
2010-02-26 02:55:35 +01:00
PageHeader
PageHeaderData
PageXLogRecPtr
2010-02-26 02:55:35 +01:00
PagetableEntry
Pairs
ParallelArgs
ParallelContext
2010-02-26 02:55:35 +01:00
ParallelSlot
ParallelState
ParallelWorkerInfo
2010-02-26 02:55:35 +01:00
Param
ParamExecData
ParamExternData
ParamFetchHook
ParamKind
ParamListInfo
ParamPathInfo
2010-02-26 02:55:35 +01:00
ParamRef
ParentMapEntry
2010-02-26 02:55:35 +01:00
ParseCallbackState
ParseExprKind
ParseNamespaceItem
2010-02-26 02:55:35 +01:00
ParseParamRefHook
ParseState
ParsedLex
ParsedText
ParsedWord
ParserSetupHook
ParserState
Path
PathClauseUsage
PathCostComparison
PathHashStack
2010-02-26 02:55:35 +01:00
PathKey
PathKeysComparison
Pattern_Prefix_Status
Pattern_Type
PendingOperationEntry
PendingRelDelete
PendingUnlinkEntry
Allow to trigger kernel writeback after a configurable number of writes. Currently writes to the main data files of postgres all go through the OS page cache. This means that some operating systems can end up collecting a large number of dirty buffers in their respective page caches. When these dirty buffers are flushed to storage rapidly, be it because of fsync(), timeouts, or dirty ratios, latency for other reads and writes can increase massively. This is the primary reason for regular massive stalls observed in real world scenarios and artificial benchmarks; on rotating disks stalls on the order of hundreds of seconds have been observed. On linux it is possible to control this by reducing the global dirty limits significantly, reducing the above problem. But global configuration is rather problematic because it'll affect other applications; also PostgreSQL itself doesn't always generally want this behavior, e.g. for temporary files it's undesirable. Several operating systems allow some control over the kernel page cache. Linux has sync_file_range(2), several posix systems have msync(2) and posix_fadvise(2). sync_file_range(2) is preferable because it requires no special setup, whereas msync() requires the to-be-flushed range to be mmap'ed. For the purpose of flushing dirty data posix_fadvise(2) is the worst alternative, as flushing dirty data is just a side-effect of POSIX_FADV_DONTNEED, which also removes the pages from the page cache. Thus the feature is enabled by default only on linux, but can be enabled on all systems that have any of the above APIs. While desirable and likely possible this patch does not contain an implementation for windows. With the infrastructure added, writes made via checkpointer, bgwriter and normal user backends can be flushed after a configurable number of writes. Each of these sources of writes controlled by a separate GUC, checkpointer_flush_after, bgwriter_flush_after and backend_flush_after respectively; they're separate because the number of flushes that are good are separate, and because the performance considerations of controlled flushing for each of these are different. A later patch will add checkpoint sorting - after that flushes from the ckeckpoint will almost always be desirable. Bgwriter flushes are most of the time going to be random, which are slow on lots of storage hardware. Flushing in backends works well if the storage and bgwriter can keep up, but if not it can have negative consequences. This patch is likely to have negative performance consequences without checkpoint sorting, but unfortunately so has sorting without flush control. Discussion: alpine.DEB.2.10.1506011320000.28433@sto Author: Fabien Coelho and Andres Freund
2016-02-19 21:13:05 +01:00
PendingWriteback
2010-02-26 02:55:35 +01:00
PerlInterpreter
Perl_ppaddr_t
Permutation
PgBackendSSLStatus
2010-02-26 02:55:35 +01:00
PgBackendStatus
PgBenchExpr
PgBenchExprType
PgFdwAnalyzeState
PgFdwModifyState
PgFdwOption
PgFdwRelationInfo
PgFdwScanState
2010-02-26 02:55:35 +01:00
PgIfAddrCallback
PgStat_ArchiverStats
2010-02-26 02:55:35 +01:00
PgStat_BackendFunctionEntry
PgStat_Counter
PgStat_FunctionCallUsage
PgStat_FunctionCounts
PgStat_FunctionEntry
PgStat_GlobalStats
PgStat_Msg
PgStat_MsgAnalyze
PgStat_MsgArchiver
2010-02-26 02:55:35 +01:00
PgStat_MsgAutovacStart
PgStat_MsgBgWriter
PgStat_MsgDeadlock
2010-02-26 02:55:35 +01:00
PgStat_MsgDropdb
PgStat_MsgDummy
PgStat_MsgFuncpurge
PgStat_MsgFuncstat
PgStat_MsgHdr
PgStat_MsgInquiry
PgStat_MsgRecoveryConflict
2010-02-26 02:55:35 +01:00
PgStat_MsgResetcounter
PgStat_MsgResetsharedcounter
PgStat_MsgResetsinglecounter
PgStat_MsgTabpurge
PgStat_MsgTabstat
PgStat_MsgTempFile
2010-02-26 02:55:35 +01:00
PgStat_MsgVacuum
PgStat_Shared_Reset_Target
PgStat_Single_Reset_Type
PgStat_StatDBEntry
PgStat_StatFuncEntry
PgStat_StatTabEntry
PgStat_SubXactStatus
PgStat_TableCounts
PgStat_TableEntry
PgStat_TableStatus
PgStat_TableXactStatus
PgXmlErrorContext
PgXmlStrictness
2010-02-26 02:55:35 +01:00
Pg_finfo_record
Pg_magic_struct
PipeProtoChunk
PipeProtoHeader
PlaceHolderInfo
PlaceHolderVar
Plan
PlanForeignModify_function
2010-02-26 02:55:35 +01:00
PlanInvalItem
PlanRowMark
PlanState
PlannedStmt
PlannerGlobal
PlannerInfo
PlannerParamItem
Point
Pointer
PolicyInfo
PolyNumAggState
2010-02-26 02:55:35 +01:00
Pool
PopulateRecordsetState
2010-02-26 02:55:35 +01:00
Port
Portal
PortalHashEnt
PortalStatus
PortalStrategy
PostParseColumnRefHook
PostgresPollingStatusType
PostingItem
PostponedQual
2010-02-26 02:55:35 +01:00
PreParseColumnRefHook
PredClass
PredIterInfo
PredIterInfoData
PredXactList
PredXactListElement
Implement genuine serializable isolation level. Until now, our Serializable mode has in fact been what's called Snapshot Isolation, which allows some anomalies that could not occur in any serialized ordering of the transactions. This patch fixes that using a method called Serializable Snapshot Isolation, based on research papers by Michael J. Cahill (see README-SSI for full references). In Serializable Snapshot Isolation, transactions run like they do in Snapshot Isolation, but a predicate lock manager observes the reads and writes performed and aborts transactions if it detects that an anomaly might occur. This method produces some false positives, ie. it sometimes aborts transactions even though there is no anomaly. To track reads we implement predicate locking, see storage/lmgr/predicate.c. Whenever a tuple is read, a predicate lock is acquired on the tuple. Shared memory is finite, so when a transaction takes many tuple-level locks on a page, the locks are promoted to a single page-level lock, and further to a single relation level lock if necessary. To lock key values with no matching tuple, a sequential scan always takes a relation-level lock, and an index scan acquires a page-level lock that covers the search key, whether or not there are any matching keys at the moment. A predicate lock doesn't conflict with any regular locks or with another predicate locks in the normal sense. They're only used by the predicate lock manager to detect the danger of anomalies. Only serializable transactions participate in predicate locking, so there should be no extra overhead for for other transactions. Predicate locks can't be released at commit, but must be remembered until all the transactions that overlapped with it have completed. That means that we need to remember an unbounded amount of predicate locks, so we apply a lossy but conservative method of tracking locks for committed transactions. If we run short of shared memory, we overflow to a new "pg_serial" SLRU pool. We don't currently allow Serializable transactions in Hot Standby mode. That would be hard, because even read-only transactions can cause anomalies that wouldn't otherwise occur. Serializable isolation mode now means the new fully serializable level. Repeatable Read gives you the old Snapshot Isolation level that we have always had. Kevin Grittner and Dan Ports, reviewed by Jeff Davis, Heikki Linnakangas and Anssi Kääriäinen
2011-02-07 22:46:51 +01:00
PredicateLockData
PredicateLockTargetType
2010-02-26 02:55:35 +01:00
PrepareStmt
PreparedParamsData
PreparedStatement
PrewarmType
2010-02-26 02:55:35 +01:00
PrintExtraTocPtr
PrintTocDataPtr
PrintfArgType
PrintfArgValue
PrintfTarget
2010-02-26 02:55:35 +01:00
PrinttupAttrInfo
PrivTarget
PrivateRefCountEntry
2010-02-26 02:55:35 +01:00
ProcArrayStruct
ProcLangInfo
ProcSignalReason
ProcSignalSlot
ProcState
ProcessUtilityContext
2010-02-26 02:55:35 +01:00
ProcessUtility_hook_type
ProcessingMode
ProjectionInfo
ProtocolVersion
PrsStorage
PruneState
PsqlScanResult
PsqlScanState
PsqlScanStateData
PsqlSettings
PullFilter
PullFilterOps
PushFilter
PushFilterOps
PushFunction
PyCodeObject
PyMappingMethods
2010-02-26 02:55:35 +01:00
PyMethodDef
PyObject
PySequenceMethods
PyTypeObject
Py_ssize_t
QPRS_STATE
QTN2QTState
QTNode
QUERYTYPE
QualCost
QualItem
Query
QueryDesc
QueryInfo
QueryItem
QueryItemType
QueryMode
QueryOperand
QueryOperator
QueryRepresentation
QuerySource
QueueBackendStatus
QueuePosition
RBNode
RBOrderControl
RBTree
REPARSE_JUNCTION_DATA_BUFFER
2010-02-26 02:55:35 +01:00
RIX
RI_CompareHashEntry
RI_CompareKey
RI_ConstraintInfo
RI_QueryHashEntry
RI_QueryKey
RSA
RTEKind
RWConflict
RWConflictPoolHeader
RangeBound
2010-02-26 02:55:35 +01:00
RangeFunction
RangeIOData
2010-02-26 02:55:35 +01:00
RangeQueryClause
RangeSubselect
RangeTableSample
2010-02-26 02:55:35 +01:00
RangeTblEntry
RangeTblFunction
2010-02-26 02:55:35 +01:00
RangeTblRef
RangeType
2010-02-26 02:55:35 +01:00
RangeVar
RangeVarGetRelidCallback
2010-02-26 02:55:35 +01:00
RawColumnDefault
ReScanForeignScan_function
2010-02-26 02:55:35 +01:00
ReadBufPtr
ReadBufferMode
ReadBytePtr
ReadExtraTocPtr
ReadFunc
2010-02-26 02:55:35 +01:00
ReassignOwnedStmt
RecordCacheEntry
RecordCompareData
RecordIOData
RecoveryTargetAction
2010-07-06 21:18:19 +02:00
RecoveryTargetType
2010-02-26 02:55:35 +01:00
RecursionContext
RecursiveUnion
RecursiveUnionState
RefetchForeignRow_function
RefreshMatViewStmt
2010-02-26 02:55:35 +01:00
RegProcedure
Regis
RegisNode
RegisteredBgWorker
ReindexObjectType
2010-02-26 02:55:35 +01:00
ReindexStmt
RelFileNode
RelFileNodeBackend
2010-02-26 02:55:35 +01:00
RelIdCacheEnt
2010-07-06 21:18:19 +02:00
RelInfo
RelInfoArr
2010-02-26 02:55:35 +01:00
RelMapFile
RelMapping
RelOptInfo
RelOptKind
RelToCheck
RelToCluster
RelabelType
Relation
RelationAmInfo
RelationData
RelationPtr
RelativeTime
RelcacheCallbackFunction
RelfilenodeMapEntry
RelfilenodeMapKey
2010-02-26 02:55:35 +01:00
Relids
RelocationBufferInfo
2010-02-26 02:55:35 +01:00
RenameStmt
ReopenPtr
ReorderBuffer
ReorderBufferApplyChangeCB
ReorderBufferBeginCB
ReorderBufferChange
ReorderBufferCommitCB
ReorderBufferDiskChange
ReorderBufferIterTXNEntry
ReorderBufferIterTXNState
ReorderBufferTXN
ReorderBufferTXNByIdEnt
ReorderBufferToastEnt
ReorderBufferTupleBuf
ReorderBufferTupleCidEnt
ReorderBufferTupleCidKey
ReorderTuple
RepOriginId
ReplaceVarsFromTargetList_context
ReplaceVarsNoMatchOption
ReplicaIdentityStmt
ReplicationKind
ReplicationSlot
ReplicationSlotCtlData
ReplicationSlotOnDisk
ReplicationSlotPersistency
ReplicationSlotPersistentData
ReplicationState
ReplicationStateCtl
ReplicationStateOnDisk
2010-02-26 02:55:35 +01:00
ResTarget
ReservoirState
ReservoirStateData
2010-02-26 02:55:35 +01:00
ResourceOwner
ResourceReleaseCallback
ResourceReleaseCallbackItem
ResourceReleasePhase
RestoreOptions
RestrictInfo
Result
ResultPath
ResultRelInfo
ResultState
ReturnSetInfo
RevmapContents
RewriteMappingDataEntry
RewriteMappingFile
2010-02-26 02:55:35 +01:00
RewriteRule
RewriteState
RmgrData
RmgrDescData
2010-02-26 02:55:35 +01:00
RmgrId
RmgrIds
RoleSpec
RoleSpecType
2010-02-26 02:55:35 +01:00
RoleStmtType
RowCompareExpr
RowCompareExprState
RowCompareType
RowExpr
RowExprState
RowMarkClause
RowMarkType
RowSecurityDesc
RowSecurityPolicy
2010-02-26 02:55:35 +01:00
RuleInfo
RuleLock
RuleStmt
RunningTransactions
RunningTransactionsData
SC_HANDLE
SECURITY_ATTRIBUTES
SECURITY_STATUS
2010-02-26 02:55:35 +01:00
SEG
Implement genuine serializable isolation level. Until now, our Serializable mode has in fact been what's called Snapshot Isolation, which allows some anomalies that could not occur in any serialized ordering of the transactions. This patch fixes that using a method called Serializable Snapshot Isolation, based on research papers by Michael J. Cahill (see README-SSI for full references). In Serializable Snapshot Isolation, transactions run like they do in Snapshot Isolation, but a predicate lock manager observes the reads and writes performed and aborts transactions if it detects that an anomaly might occur. This method produces some false positives, ie. it sometimes aborts transactions even though there is no anomaly. To track reads we implement predicate locking, see storage/lmgr/predicate.c. Whenever a tuple is read, a predicate lock is acquired on the tuple. Shared memory is finite, so when a transaction takes many tuple-level locks on a page, the locks are promoted to a single page-level lock, and further to a single relation level lock if necessary. To lock key values with no matching tuple, a sequential scan always takes a relation-level lock, and an index scan acquires a page-level lock that covers the search key, whether or not there are any matching keys at the moment. A predicate lock doesn't conflict with any regular locks or with another predicate locks in the normal sense. They're only used by the predicate lock manager to detect the danger of anomalies. Only serializable transactions participate in predicate locking, so there should be no extra overhead for for other transactions. Predicate locks can't be released at commit, but must be remembered until all the transactions that overlapped with it have completed. That means that we need to remember an unbounded amount of predicate locks, so we apply a lossy but conservative method of tracking locks for committed transactions. If we run short of shared memory, we overflow to a new "pg_serial" SLRU pool. We don't currently allow Serializable transactions in Hot Standby mode. That would be hard, because even read-only transactions can cause anomalies that wouldn't otherwise occur. Serializable isolation mode now means the new fully serializable level. Repeatable Read gives you the old Snapshot Isolation level that we have always had. Kevin Grittner and Dan Ports, reviewed by Jeff Davis, Heikki Linnakangas and Anssi Kääriäinen
2011-02-07 22:46:51 +01:00
SERIALIZABLEXACT
SERIALIZABLEXID
SERIALIZABLEXIDTAG
2010-02-26 02:55:35 +01:00
SERVICE_STATUS
SERVICE_STATUS_HANDLE
SERVICE_TABLE_ENTRY
SHA1_CTX
SHA224_CTX
SHA256_CTX
SHA384_CTX
SHA512_CTX
SHM_QUEUE
SID_AND_ATTRIBUTES
SID_IDENTIFIER_AUTHORITY
SID_NAME_USE
SISeg
SMgrRelation
SMgrRelationData
SOCKADDR
SOCKET
2010-02-26 02:55:35 +01:00
SPELL
SPIPlanPtr
SPITupleTable
SPLITCOST
SPNode
SPNodeData
SPPageDesc
SQLDropObject
2010-02-26 02:55:35 +01:00
SQLFunctionCache
SQLFunctionCachePtr
SQLFunctionParseInfoPtr
2010-02-26 02:55:35 +01:00
SSL
SSL_CTX
STARTUPINFO
STRLEN
SV
SampleScan
SampleScanState
SamplerRandomState
2010-02-26 02:55:35 +01:00
ScalarArrayOpExpr
ScalarArrayOpExprState
ScalarItem
ScalarMCVItem
Scan
ScanDirection
ScanKey
ScanKeyData
ScanKeyword
ScanStackEntry
2010-02-26 02:55:35 +01:00
ScanState
ScanTypeControl
SchemaQuery
SecBuffer
SecBufferDesc
SecLabelItem
SecLabelStmt
2010-02-26 02:55:35 +01:00
SelectStmt
Selectivity
SemiAntiJoinFactors
2010-02-26 02:55:35 +01:00
SeqScan
SeqScanState
SeqTable
SeqTableData
SerCommitSeqNo
SerializedSnapshotData
Session
2010-02-26 02:55:35 +01:00
SetConstraintState
SetConstraintStateData
SetConstraintTriggerData
SetFunctionReturnMode
SetOp
SetOpCmd
SetOpHashEntry
SetOpState
SetOpStatePerGroup
SetOpStatePerGroupData
SetOpStrategy
SetOperation
SetOperationStmt
SetToDefault
SetupWorkerPtr
2010-02-26 02:55:35 +01:00
SharedDependencyType
SharedInvalCatalogMsg
SharedInvalCatcacheMsg
SharedInvalRelcacheMsg
SharedInvalRelmapMsg
SharedInvalSmgrMsg
SharedInvalSnapshotMsg
2010-02-26 02:55:35 +01:00
SharedInvalidationMessage
ShellTypeInfo
ShmemIndexEnt
ShutdownInformation
2010-02-26 02:55:35 +01:00
ShutdownMode
SignTSVector
SimpleEcontextStackEntry
SimpleOidList
SimpleOidListCell
SimpleStringList
SimpleStringListCell
SingleBoundSortItem
2010-02-26 02:55:35 +01:00
Size
SlotNumber
2010-02-26 02:55:35 +01:00
SlruCtl
SlruCtlData
SlruErrorCause
SlruFlush
SlruFlushData
SlruPageStatus
SlruScanCallback
2010-02-26 02:55:35 +01:00
SlruShared
SlruSharedData
SnapBuild
SnapBuildOnDisk
SnapBuildState
2010-02-26 02:55:35 +01:00
Snapshot
SnapshotData
SnapshotSatisfiesFunc
SockAddr
Sort
SortBy
SortByDir
SortByNulls
SortGroupClause
SortShimExtra
2010-02-26 02:55:35 +01:00
SortState
SortSupport
SortSupportData
2010-02-26 02:55:35 +01:00
SortTuple
SortTupleComparator
SortedPoint
SpGistBuildState
SpGistCache
SpGistDeadTuple
SpGistDeadTupleData
SpGistInnerTuple
SpGistInnerTupleData
SpGistLUPCache
SpGistLastUsedPage
SpGistLeafTuple
SpGistLeafTupleData
SpGistMetaPageData
SpGistNodeTuple
SpGistNodeTupleData
SpGistPageOpaque
SpGistPageOpaqueData
SpGistScanOpaque
SpGistScanOpaqueData
SpGistState
SpGistTypeDesc
2010-02-26 02:55:35 +01:00
SpecialJoinInfo
SplitInterval
SplitLR
2010-02-26 02:55:35 +01:00
SplitVar
SplitedPageLayout
StackElem
StandardChunkHeader
StartBlobPtr
StartBlobsPtr
StartDataPtr
StartReplicationCmd
2010-02-26 02:55:35 +01:00
StartupPacket
StatEntry
StatMsgType
StateFileChunk
Stats
2010-02-26 02:55:35 +01:00
StdAnalyzeData
StdRdOptions
Step
2010-02-26 02:55:35 +01:00
StopList
StrategyNumber
StringInfo
StringInfoData
StripnullState
2010-02-26 02:55:35 +01:00
SubLink
SubLinkType
SubPlan
SubPlanState
SubTransactionId
SubXactCallback
SubXactCallbackItem
SubXactEvent
SubqueryScan
SubqueryScanState
Syn
SysScanDesc
SyscacheCallbackFunction
SystemSamplerData
2010-02-26 02:55:35 +01:00
TAR_MEMBER
TBMIterateResult
TBMIterator
TBMStatus
TBlockState
TIDBitmap
TOKEN_DEFAULT_DACL
TOKEN_INFORMATION_CLASS
TOKEN_USER
TParser
TParserCharTest
TParserPosition
TParserSpecial
TParserState
TParserStateAction
TParserStateActionItem
TRGM
TResult
TSAnyCacheEntry
TSConfigCacheEntry
TSConfigInfo
TSDictInfo
TSDictionaryCacheEntry
TSLexeme
TSParserCacheEntry
TSParserInfo
TSQuery
TSQueryData
TSQueryParserState
TSQuerySign
TSReadPointer
TSTemplateInfo
TSTokenTypeStorage
TSVector
TSVectorData
TSVectorParseState
TSVectorStat
TState
TStoreState
TTOffList
TYPCATEGORY
T_Action
T_WorkerStatus
2010-02-26 02:55:35 +01:00
TabStatusArray
TableDataInfo
TableInfo
TableLikeClause
TableSampleClause
TableSampleDesc
2010-02-26 02:55:35 +01:00
TableSpaceCacheEntry
TableSpaceOpts
TablespaceList
TablespaceListCell
2010-02-26 02:55:35 +01:00
TargetEntry
Tcl_DString
Tcl_FileProc
Tcl_HashEntry
Tcl_HashTable
Tcl_Interp
Tcl_NotifierProcs
Tcl_Time
TestDecodingData
TestSpec
2010-02-26 02:55:35 +01:00
TextFreq
TextPositionState
TextSortSupport
2010-02-26 02:55:35 +01:00
TheLexeme
TheSubstitute
TidHashKey
TidPath
TidScan
TidScanState
TimeADT
TimeInterval
TimeIntervalData
TimeLineHistoryCmd
TimeLineHistoryEntry
2010-02-26 02:55:35 +01:00
TimeLineID
TimeOffset
TimeStamp
2010-02-26 02:55:35 +01:00
TimeTzADT
TimeZoneAbbrevTable
TimeoutId
TimeoutType
2010-02-26 02:55:35 +01:00
Timestamp
TimestampTz
TmFromChar
TmToChar
TocEntry
TokenAuxData
TrackItem
TransInvalidationInfo
TransState
TransactionId
TransactionState
TransactionStateData
TransactionStmt
TransactionStmtKind
TransformInfo
TrgmArc
TrgmArcInfo
TrgmColor
TrgmColorInfo
TrgmNFA
TrgmPackArcInfo
TrgmPackedArc
TrgmPackedGraph
TrgmPackedState
TrgmPrefix
TrgmState
TrgmStateKey
TrieChar
2010-02-26 02:55:35 +01:00
Trigger
TriggerData
TriggerDesc
TriggerEvent
TriggerFlags
TriggerInfo
TruncateStmt
TupOutputState
TupSortStatus
TupStoreStatus
TupleConstr
TupleConversionMap
TupleDesc
TupleHashEntry
TupleHashEntryData
TupleHashIterator
TupleHashTable
2015-11-06 22:58:45 +01:00
TupleQueueReader
2010-02-26 02:55:35 +01:00
TupleTableSlot
Tuplesortstate
Tuplestorestate
TwoPhaseCallback
TwoPhaseFileHeader
TwoPhaseLockRecord
TwoPhasePgStatRecord
Implement genuine serializable isolation level. Until now, our Serializable mode has in fact been what's called Snapshot Isolation, which allows some anomalies that could not occur in any serialized ordering of the transactions. This patch fixes that using a method called Serializable Snapshot Isolation, based on research papers by Michael J. Cahill (see README-SSI for full references). In Serializable Snapshot Isolation, transactions run like they do in Snapshot Isolation, but a predicate lock manager observes the reads and writes performed and aborts transactions if it detects that an anomaly might occur. This method produces some false positives, ie. it sometimes aborts transactions even though there is no anomaly. To track reads we implement predicate locking, see storage/lmgr/predicate.c. Whenever a tuple is read, a predicate lock is acquired on the tuple. Shared memory is finite, so when a transaction takes many tuple-level locks on a page, the locks are promoted to a single page-level lock, and further to a single relation level lock if necessary. To lock key values with no matching tuple, a sequential scan always takes a relation-level lock, and an index scan acquires a page-level lock that covers the search key, whether or not there are any matching keys at the moment. A predicate lock doesn't conflict with any regular locks or with another predicate locks in the normal sense. They're only used by the predicate lock manager to detect the danger of anomalies. Only serializable transactions participate in predicate locking, so there should be no extra overhead for for other transactions. Predicate locks can't be released at commit, but must be remembered until all the transactions that overlapped with it have completed. That means that we need to remember an unbounded amount of predicate locks, so we apply a lossy but conservative method of tracking locks for committed transactions. If we run short of shared memory, we overflow to a new "pg_serial" SLRU pool. We don't currently allow Serializable transactions in Hot Standby mode. That would be hard, because even read-only transactions can cause anomalies that wouldn't otherwise occur. Serializable isolation mode now means the new fully serializable level. Repeatable Read gives you the old Snapshot Isolation level that we have always had. Kevin Grittner and Dan Ports, reviewed by Jeff Davis, Heikki Linnakangas and Anssi Kääriäinen
2011-02-07 22:46:51 +01:00
TwoPhasePredicateLockRecord
TwoPhasePredicateRecord
TwoPhasePredicateRecordType
Implement genuine serializable isolation level. Until now, our Serializable mode has in fact been what's called Snapshot Isolation, which allows some anomalies that could not occur in any serialized ordering of the transactions. This patch fixes that using a method called Serializable Snapshot Isolation, based on research papers by Michael J. Cahill (see README-SSI for full references). In Serializable Snapshot Isolation, transactions run like they do in Snapshot Isolation, but a predicate lock manager observes the reads and writes performed and aborts transactions if it detects that an anomaly might occur. This method produces some false positives, ie. it sometimes aborts transactions even though there is no anomaly. To track reads we implement predicate locking, see storage/lmgr/predicate.c. Whenever a tuple is read, a predicate lock is acquired on the tuple. Shared memory is finite, so when a transaction takes many tuple-level locks on a page, the locks are promoted to a single page-level lock, and further to a single relation level lock if necessary. To lock key values with no matching tuple, a sequential scan always takes a relation-level lock, and an index scan acquires a page-level lock that covers the search key, whether or not there are any matching keys at the moment. A predicate lock doesn't conflict with any regular locks or with another predicate locks in the normal sense. They're only used by the predicate lock manager to detect the danger of anomalies. Only serializable transactions participate in predicate locking, so there should be no extra overhead for for other transactions. Predicate locks can't be released at commit, but must be remembered until all the transactions that overlapped with it have completed. That means that we need to remember an unbounded amount of predicate locks, so we apply a lossy but conservative method of tracking locks for committed transactions. If we run short of shared memory, we overflow to a new "pg_serial" SLRU pool. We don't currently allow Serializable transactions in Hot Standby mode. That would be hard, because even read-only transactions can cause anomalies that wouldn't otherwise occur. Serializable isolation mode now means the new fully serializable level. Repeatable Read gives you the old Snapshot Isolation level that we have always had. Kevin Grittner and Dan Ports, reviewed by Jeff Davis, Heikki Linnakangas and Anssi Kääriäinen
2011-02-07 22:46:51 +01:00
TwoPhasePredicateXactRecord
2010-02-26 02:55:35 +01:00
TwoPhaseRecordOnDisk
TwoPhaseRmgrId
TwoPhaseStateData
TxidEpoch
TxidSnapshot
Type
TypeCacheEntry
TypeCacheEnumData
2010-02-26 02:55:35 +01:00
TypeCast
TypeFuncClass
TypeInfo
TypeName
U32
U8
UINT
ULARGE_INTEGER
ULONG
ULONG_PTR
UV
Unique
UniquePath
UniquePathMethod
UniqueState
UnlistenStmt
UnresolvedTup
UnresolvedTupData
UpdateStmt
UserAuth
UserMapping
UserOpts
2010-02-26 02:55:35 +01:00
VacAttrStats
VacAttrStatsP
VacuumParams
2010-02-26 02:55:35 +01:00
VacuumStmt
Value
ValuesScan
ValuesScanState
Var
VarBit
VarChar
VarParamState
Variable
VariableAssignHook
VariableCache
VariableCacheData
VariableSetKind
VariableSetStmt
VariableShowStmt
VariableSpace
VariableStatData
Vfd
ViewCheckOption
ViewOptions
2010-02-26 02:55:35 +01:00
ViewStmt
VirtualTransactionId
Vsrt
WAITORTIMERCALLBACK
2010-02-26 02:55:35 +01:00
WAIT_ORDER
WALInsertLock
WALInsertLockPadded
2010-02-26 02:55:35 +01:00
WCHAR
WCOKind
WIDGET
2010-02-26 02:55:35 +01:00
WIN32_FILE_ATTRIBUTE_DATA
WORD
WORKSTATE
WSABUF
WSADATA
WSANETWORKEVENTS
WSAPROTOCOL_INFO
2010-07-06 21:18:19 +02:00
WalLevel
2010-02-26 02:55:35 +01:00
WalRcvData
WalRcvState
WalSnd
WalSndCtlData
WalSndSendDataCallback
WalSndState
WholeRowVarExprState
2010-02-26 02:55:35 +01:00
WindowAgg
WindowAggState
WindowClause
WindowDef
WindowFunc
WindowFuncExprState
WindowFuncLists
WindowObject
WindowObjectData
WindowStatePerAgg
WindowStatePerAggData
WindowStatePerFunc
WithCheckOption
2010-02-26 02:55:35 +01:00
WithClause
WordEntry
WordEntryIN
WordEntryPos
WordEntryPosVector
WordEntryPosVector1
2010-02-26 02:55:35 +01:00
WorkTableScan
WorkTableScanState
WorkerInfo
WorkerInfoData
WorkerJobDumpPtr
WorkerJobRestorePtr
2010-02-26 02:55:35 +01:00
Working_State
WriteBufPtr
WriteBytePtr
WriteDataPtr
WriteExtraTocPtr
WriteFunc
Allow to trigger kernel writeback after a configurable number of writes. Currently writes to the main data files of postgres all go through the OS page cache. This means that some operating systems can end up collecting a large number of dirty buffers in their respective page caches. When these dirty buffers are flushed to storage rapidly, be it because of fsync(), timeouts, or dirty ratios, latency for other reads and writes can increase massively. This is the primary reason for regular massive stalls observed in real world scenarios and artificial benchmarks; on rotating disks stalls on the order of hundreds of seconds have been observed. On linux it is possible to control this by reducing the global dirty limits significantly, reducing the above problem. But global configuration is rather problematic because it'll affect other applications; also PostgreSQL itself doesn't always generally want this behavior, e.g. for temporary files it's undesirable. Several operating systems allow some control over the kernel page cache. Linux has sync_file_range(2), several posix systems have msync(2) and posix_fadvise(2). sync_file_range(2) is preferable because it requires no special setup, whereas msync() requires the to-be-flushed range to be mmap'ed. For the purpose of flushing dirty data posix_fadvise(2) is the worst alternative, as flushing dirty data is just a side-effect of POSIX_FADV_DONTNEED, which also removes the pages from the page cache. Thus the feature is enabled by default only on linux, but can be enabled on all systems that have any of the above APIs. While desirable and likely possible this patch does not contain an implementation for windows. With the infrastructure added, writes made via checkpointer, bgwriter and normal user backends can be flushed after a configurable number of writes. Each of these sources of writes controlled by a separate GUC, checkpointer_flush_after, bgwriter_flush_after and backend_flush_after respectively; they're separate because the number of flushes that are good are separate, and because the performance considerations of controlled flushing for each of these are different. A later patch will add checkpoint sorting - after that flushes from the ckeckpoint will almost always be desirable. Bgwriter flushes are most of the time going to be random, which are slow on lots of storage hardware. Flushing in backends works well if the storage and bgwriter can keep up, but if not it can have negative consequences. This patch is likely to have negative performance consequences without checkpoint sorting, but unfortunately so has sorting without flush control. Discussion: alpine.DEB.2.10.1506011320000.28433@sto Author: Fabien Coelho and Andres Freund
2016-02-19 21:13:05 +01:00
WritebackContext
2010-02-26 02:55:35 +01:00
X509
X509_NAME
X509_NAME_ENTRY
X509_STORE
X509_STORE_CTX
XLTW_Oper
2010-02-26 02:55:35 +01:00
XLogCtlData
XLogCtlInsert
XLogDumpConfig
XLogDumpPrivate
XLogDumpStats
2010-02-26 02:55:35 +01:00
XLogLongPageHeader
XLogLongPageHeaderData
XLogPageHeader
XLogPageHeaderData
XLogPageReadCB
XLogPageReadPrivate
XLogReaderState
2010-02-26 02:55:35 +01:00
XLogRecData
XLogRecPtr
XLogRecord
XLogRecordBlockCompressHeader
XLogRecordBlockHeader
XLogRecordBlockImageHeader
XLogRecordBuffer
XLogRedoAction
XLogSegNo
XLogSource
2010-02-26 02:55:35 +01:00
XLogwrtResult
XLogwrtRqst
XPVIV
XactCallback
XactCallbackItem
XactEvent
XactLockTableWaitInfo
2010-02-26 02:55:35 +01:00
XidStatus
XmlExpr
XmlExprOp
XmlExprState
XmlOptionType
XmlSerialize
YYLTYPE
YYSTYPE
YY_BUFFER_STATE
_SPI_connection
_SPI_plan
__AssignProcessToJobObject
__CreateJobObject
__CreateRestrictedToken
__IsProcessInJob
__QueryInformationJobObject
__RegisterWaitForSingleObject
2010-02-26 02:55:35 +01:00
__SetInformationJobObject
_resultmap
_stringlist
acquireLocksOnSubLinks_context
adjust_appendrel_attrs_context
allocfunc
array_iter
2010-02-26 02:55:35 +01:00
array_unnest_fctx
assign_collations_context
2010-02-26 02:55:35 +01:00
autovac_table
av_relation
avl_dbase
avw_dbase
backslashResult
base_yy_extra_type
basebackup_options
bgworker_main_type
binaryheap
binaryheap_comparator
2010-02-26 02:55:35 +01:00
bitmapword
bits16
bits32
bits8
bool
boolean
brin_column_state
brin_page_state
2010-02-26 02:55:35 +01:00
bytea
cached_re_str
cashKEY
celt
cfp
check_agg_arguments_context
2010-02-26 02:55:35 +01:00
check_network_data
check_object_relabel_type
2010-02-26 02:55:35 +01:00
check_password_hook_type
check_ungrouped_columns_context
chkpass
chr
clock_t
cmpEntriesArg
2010-02-26 02:55:35 +01:00
cmpfunc
codes_t
coercion
collation_cache_entry
2010-02-26 02:55:35 +01:00
color
config_var_value
2010-02-26 02:55:35 +01:00
contain_aggs_of_level_context
convert_testexpr_context
core_YYSTYPE
core_yy_extra_type
core_yyscan_t
cost_qual_eval_context
count_agg_clauses_context
2010-02-26 02:55:35 +01:00
createdb_failure_params
crosstab_HashEnt
crosstab_cat_desc
datapagemap_iterator_t
datapagemap_t
2010-02-26 02:55:35 +01:00
dateKEY
datetkn
dce_uuid_t
2010-02-26 02:55:35 +01:00
decimal
deparse_columns
2010-02-26 02:55:35 +01:00
deparse_context
deparse_expr_cxt
2010-02-26 02:55:35 +01:00
deparse_namespace
destructor
dev_t
directory_fctx
disassembledLeaf
dlist_head
dlist_iter
dlist_mutable_iter
dlist_node
2010-02-26 02:55:35 +01:00
ds_state
dsm_control_header
dsm_control_item
dsm_handle
dsm_op
dsm_segment
dsm_segment_detach_callback
2010-07-06 21:18:19 +02:00
eLogType
2010-02-26 02:55:35 +01:00
ean13
eary
ec_matches_callback_type
ec_member_foreign_arg
ec_member_matches_arg
emit_log_hook_type
2010-02-26 02:55:35 +01:00
eval_const_expressions_context
event_trigger_command_tag_check_result
event_trigger_support_data
exec_thread_arg
2010-02-26 02:55:35 +01:00
execution_state
explain_get_index_name_hook_type
f_smgr
fd_set
file_action_t
file_entry_t
file_type_t
filemap_t
2010-02-26 02:55:35 +01:00
finalize_primnode_context
find_expr_references_context
fix_join_expr_context
fix_scan_expr_context
fix_upper_expr_context
flatten_join_alias_vars_context
float4
float4KEY
float8
float8KEY
fmAggrefPtr
fmExprContextCallbackFunction
2010-02-26 02:55:35 +01:00
fmNodePtr
fmStringInfo
fmgr_hook_type
foreign_glob_cxt
foreign_loc_cxt
freeaddrinfo_ptr_t
2010-02-26 02:55:35 +01:00
freefunc
fsec_t
func_ptr
gbt_vsrt_arg
2010-02-26 02:55:35 +01:00
gbtree_ninfo
gbtree_vinfo
generate_series_fctx
generate_series_numeric_fctx
2010-02-26 02:55:35 +01:00
generate_series_timestamp_fctx
generate_series_timestamptz_fctx
generate_subscripts_fctx
get_attavgwidth_hook_type
get_index_stats_hook_type
get_relation_info_hook_type
get_relation_stats_hook_type
getaddrinfo_ptr_t
getnameinfo_ptr_t
2010-02-26 02:55:35 +01:00
gid_t
gin_leafpage_items_state
2010-02-26 02:55:35 +01:00
ginxlogCreatePostingTree
ginxlogDeleteListPages
ginxlogDeletePage
ginxlogInsert
ginxlogInsertDataInternal
ginxlogInsertEntry
2010-02-26 02:55:35 +01:00
ginxlogInsertListPage
ginxlogRecompressDataLeaf
2010-02-26 02:55:35 +01:00
ginxlogSplit
ginxlogUpdateMeta
ginxlogVacuumDataLeafPage
2010-02-26 02:55:35 +01:00
gistxlogPage
gistxlogPageSplit
gistxlogPageUpdate
gseg_picksplit_item
gss_OID
2010-02-26 02:55:35 +01:00
gss_buffer_desc
gss_cred_id_t
gss_ctx_id_t
gss_name_t
gtrgm_consistent_cache
2010-02-26 02:55:35 +01:00
gzFile
hashfunc
hbaPort
heap_page_items_state
help_handler
hlCheck
hyperLogLogState
import_error_callback_arg
2010-02-26 02:55:35 +01:00
indexed_tlist
inet
inetKEY
inet_struct
init_function
2010-07-06 21:18:19 +02:00
inline_error_callback_arg
2010-02-26 02:55:35 +01:00
ino_t
inquiry
2010-02-26 02:55:35 +01:00
instr_time
int128
2010-02-26 02:55:35 +01:00
int16
int16KEY
int2vector
int32
int32KEY
int32_t
int64
int64KEY
int8
internalPQconninfoOption
2010-02-26 02:55:35 +01:00
intptr_t
intvKEY
itemIdSort
itemIdSortData
jmp_buf
join_search_hook_type
json_aelem_action
json_ofield_action
json_scalar_action
json_struct_action
keyEntryData
2010-02-26 02:55:35 +01:00
key_t
lclContext
lclTocEntry
leafSegmentInfo
2010-02-26 02:55:35 +01:00
line_t
locale_t
2010-02-26 02:55:35 +01:00
locate_agg_of_level_context
locate_var_of_level_context
locate_windowfunc_context
logstreamer_param
2010-02-26 02:55:35 +01:00
lquery
lquery_level
lquery_variant
ltree
ltree_gist
ltree_level
ltxtquery
mXactCacheEnt
macKEY
macaddr
map_variable_attnos_context
2010-02-26 02:55:35 +01:00
mb2wchar_with_len_converter
mbcharacter_incrementer
2010-02-26 02:55:35 +01:00
mbdisplaylen_converter
mblen_converter
mbverifier
md5_ctxt
metastring
mix_data_t
mixedStruct
mode_t
movedb_failure_params
mp_digit
mp_int
mp_result
mp_sign
mp_size
mp_word
mpz_t
mxact
mxtruncinfo
needs_fmgr_hook_type
2010-02-26 02:55:35 +01:00
nodeitem
normal_rand_fctx
ntile_context
numeric
objectType
object_access_hook_type
2010-02-26 02:55:35 +01:00
off_t
oidKEY
oidvector
on_dsm_detach_callback
on_exit_nicely_callback
2010-02-26 02:55:35 +01:00
ossldata
output_type
2010-07-06 21:18:19 +02:00
pageCnvCtx
pairingheap
pairingheap_comparator
pairingheap_node
parallel_worker_main_type
2010-07-06 21:18:19 +02:00
parse_error_callback_arg
2010-02-26 02:55:35 +01:00
pcolor
pendingPosition
pgParameterStatus
pg_atomic_flag
pg_atomic_uint32
pg_atomic_uint64
2010-02-26 02:55:35 +01:00
pg_conv_map
pg_crc32
pg_crc32c
pg_ctype_cache
2010-02-26 02:55:35 +01:00
pg_enc
pg_enc2gettext
pg_enc2name
pg_encname
pg_gssinfo
pg_int64
2010-02-26 02:55:35 +01:00
pg_local_to_utf
pg_local_to_utf_combined
pg_locale_t
2010-02-26 02:55:35 +01:00
pg_on_exit_callback
pg_re_flags
pg_stack_base_t
2010-02-26 02:55:35 +01:00
pg_time_t
pg_tz
pg_tz_cache
pg_tzenum
pg_utf_to_local
pg_utf_to_local_combined
pg_uuid_t
pg_wc_probefunc
2010-02-26 02:55:35 +01:00
pg_wchar
pg_wchar_tbl
pgp_armor_headers_state
2010-02-26 02:55:35 +01:00
pgpid_t
pgsocket
pgsql_thing_t
pgssEntry
pgssHashKey
pgssJumbleState
pgssLocationLen
2010-02-26 02:55:35 +01:00
pgssSharedState
pgssVersion
2010-02-26 02:55:35 +01:00
pgstat_page
pgstattuple_type
pgthreadlock_t
pid_t
planner_hook_type
plperl_array_info
2010-02-26 02:55:35 +01:00
plperl_call_data
plperl_interp_desc
2010-02-26 02:55:35 +01:00
plperl_proc_desc
plperl_proc_key
plperl_proc_ptr
2010-02-26 02:55:35 +01:00
plperl_query_desc
plperl_query_entry
plpgsql_CastHashEntry
plpgsql_CastHashKey
2010-02-26 02:55:35 +01:00
plpgsql_HashEnt
pltcl_interp_desc
2010-02-26 02:55:35 +01:00
pltcl_proc_desc
pltcl_proc_key
pltcl_proc_ptr
2010-02-26 02:55:35 +01:00
pltcl_query_desc
post_parse_analyze_hook_type
2010-02-26 02:55:35 +01:00
pqbool
pqsigfunc
printQueryOpt
printTableContent
printTableFooter
printTableOpt
printTextFormat
printTextLineFormat
printTextLineWrap
printTextRule
priv_map
process_file_callback_t
2010-02-26 02:55:35 +01:00
process_sublinks_context
promptStatus_t
pthread_attr_t
2010-02-26 02:55:35 +01:00
pthread_key_t
pthread_mutex_t
pthread_once_t
pthread_t
pull_var_clause_context
pull_varattnos_context
2010-02-26 02:55:35 +01:00
pull_varnos_context
pull_vars_context
2010-02-26 02:55:35 +01:00
pullup_replace_vars_context
pushdown_safety_info
2010-02-26 02:55:35 +01:00
qsort_arg_comparator
query_pathkeys_callback
2010-02-26 02:55:35 +01:00
radius_attribute
radius_packet
rangeTableEntry_used_context
rank_context
rb_allocfunc
rb_combiner
2010-02-26 02:55:35 +01:00
rb_comparator
rb_freefunc
reduce_outer_joins_state
regex_arc_t
2010-02-26 02:55:35 +01:00
regex_t
regexp
2010-02-26 02:55:35 +01:00
regexp_matches_ctx
registered_buffer
2010-02-26 02:55:35 +01:00
regmatch_t
regoff_t
regproc
relopt_bool
relopt_gen
relopt_int
relopt_kind
relopt_parse_elt
relopt_real
relopt_string
relopt_type
relopt_value
remoteConn
remoteConnHashEnt
remoteDep
rendezvousHashEntry
replace_rte_variables_callback
replace_rte_variables_context
rewrite_event
rijndael_ctx
rm_detail_t
role_auth_extra
row_security_policy_hook_type
2010-02-26 02:55:35 +01:00
save_buffer
security_barrier_replace_vars_context
2010-02-26 02:55:35 +01:00
sequence_magic
set_join_pathlist_hook_type
set_rel_pathlist_hook_type
shm_mq
shm_mq_handle
shm_mq_iovec
shm_mq_result
shm_toc
shm_toc_entry
shm_toc_estimator
2010-02-26 02:55:35 +01:00
shmem_startup_hook_type
sig_atomic_t
sigjmp_buf
signedbitmapword
sigset_t
size_t
slist_head
slist_iter
slist_mutable_iter
slist_node
2010-02-26 02:55:35 +01:00
slock_t
smgrid
spgBulkDeleteState
spgChooseIn
spgChooseOut
spgChooseResultType
spgConfigIn
spgConfigOut
spgInnerConsistentIn
spgInnerConsistentOut
spgLeafConsistentIn
spgLeafConsistentOut
spgNodePtr
spgPickSplitIn
spgPickSplitOut
spgVacPendingItem
spgxlogAddLeaf
spgxlogAddNode
spgxlogMoveLeafs
spgxlogPickSplit
spgxlogSplitTuple
spgxlogState
spgxlogVacuumLeaf
spgxlogVacuumRedirect
spgxlogVacuumRoot
2010-02-26 02:55:35 +01:00
sql_error_callback_arg
sqlparseInfo
sqlparseState
2010-02-26 02:55:35 +01:00
ss_lru_item_t
ss_scan_location_t
ss_scan_locations_t
ssize_t
standard_qp_extra
2010-02-26 02:55:35 +01:00
stemmer_module
stmtCacheEntry
storeInfo
storeRes_func
stream_stop_callback
2010-02-26 02:55:35 +01:00
substitute_actual_parameters_context
substitute_actual_srf_parameters_context
substitute_multiple_relids_context
svtype
2010-02-26 02:55:35 +01:00
symbol
tablespaceinfo
2010-02-26 02:55:35 +01:00
teReqs
teSection
temp_tablespaces_extra
test_function
test_shm_mq_header
2010-02-26 02:55:35 +01:00
text
timeKEY
time_t
timeout_handler_proc
timeout_params
timerCA
2010-02-26 02:55:35 +01:00
tlist_vinfo
toast_compress_header
2010-07-06 21:18:19 +02:00
transferMode
transfer_thread_arg
2010-02-26 02:55:35 +01:00
trgm
trgm_mb_char
trivalue
2010-02-26 02:55:35 +01:00
tsKEY
ts_db_fctx
ts_tokentype
tsearch_readline_state
txid
tzEntry
u1byte
u4byte
u_char
u_int
uchr
uid_t
uint128
2010-02-26 02:55:35 +01:00
uint16
uint16_t
2010-02-26 02:55:35 +01:00
uint32
uint32_t
uint64
uint8
uint8_t
2010-02-26 02:55:35 +01:00
uintptr_t
unicodeStyleBorderFormat
unicodeStyleColumnFormat
unicodeStyleFormat
unicodeStyleRowFormat
unicode_linestyle
unit_conversion
unlogged_relation_entry
utf_local_conversion_func
2010-02-26 02:55:35 +01:00
uuid_rc_t
uuid_t
v_i_state
va_list
vacuumingOptions
2010-02-26 02:55:35 +01:00
validate_string_relopt
varatt_expanded
2010-02-26 02:55:35 +01:00
varattrib_1b
varattrib_1b_e
varattrib_4b
walrcv_connect_type
walrcv_disconnect_type
walrcv_endstreaming_type
walrcv_identify_system_type
walrcv_readtimelinehistoryfile_type
2010-02-26 02:55:35 +01:00
walrcv_receive_type
walrcv_send_type
walrcv_startstreaming_type
wchar2mb_with_len_converter
2010-02-26 02:55:35 +01:00
wchar_t
win32_deadchild_waitinfo
win32_pthread
2010-02-26 02:55:35 +01:00
wint_t
worker_state
worktable
xl_brin_createidx
xl_brin_insert
xl_brin_revmap_extend
xl_brin_samepage_update
xl_brin_update
2010-02-26 02:55:35 +01:00
xl_btree_delete
xl_btree_insert
xl_btree_mark_page_halfdead
2010-02-26 02:55:35 +01:00
xl_btree_metadata
xl_btree_newroot
xl_btree_reuse_page
xl_btree_split
xl_btree_unlink_page
2010-02-26 02:55:35 +01:00
xl_btree_vacuum
xl_commit_ts_set
2010-02-26 02:55:35 +01:00
xl_dbase_create_rec
xl_dbase_drop_rec
xl_end_of_recovery
2010-02-26 02:55:35 +01:00
xl_heap_clean
xl_heap_cleanup_info
xl_heap_confirm
2010-02-26 02:55:35 +01:00
xl_heap_delete
xl_heap_freeze_page
xl_heap_freeze_tuple
2010-02-26 02:55:35 +01:00
xl_heap_header
xl_heap_inplace
xl_heap_insert
xl_heap_lock
xl_heap_lock_updated
xl_heap_multi_insert
xl_heap_new_cid
xl_heap_rewrite_mapping
2010-02-26 02:55:35 +01:00
xl_heap_update
xl_heap_visible
2010-02-26 02:55:35 +01:00
xl_invalid_page
xl_invalid_page_key
xl_multi_insert_tuple
2010-02-26 02:55:35 +01:00
xl_multixact_create
Rework the way multixact truncations work. The fact that multixact truncations are not WAL logged has caused a fair share of problems. Amongst others it requires to do computations during recovery while the database is not in a consistent state, delaying truncations till checkpoints, and handling members being truncated, but offset not. We tried to put bandaids on lots of these issues over the last years, but it seems time to change course. Thus this patch introduces WAL logging for multixact truncations. This allows: 1) to perform the truncation directly during VACUUM, instead of delaying it to the checkpoint. 2) to avoid looking at the offsets SLRU for truncation during recovery, we can just use the master's values. 3) simplify a fair amount of logic to keep in memory limits straight, this has gotten much easier During the course of fixing this a bunch of additional bugs had to be fixed: 1) Data was not purged from memory the member's SLRU before deleting segments. This happened to be hard or impossible to hit due to the interlock between checkpoints and truncation. 2) find_multixact_start() relied on SimpleLruDoesPhysicalPageExist - but that doesn't work for offsets that haven't yet been flushed to disk. Add code to flush the SLRUs to fix. Not pretty, but it feels slightly safer to only make decisions based on actual on-disk state. 3) find_multixact_start() could be called concurrently with a truncation and thus fail. Via SetOffsetVacuumLimit() that could lead to a round of emergency vacuuming. The problem remains in pg_get_multixact_members(), but that's quite harmless. For now this is going to only get applied to 9.5+, leaving the issues in the older branches in place. It is quite possible that we need to backpatch at a later point though. For the case this gets backpatched we need to handle that an updated standby may be replaying WAL from a not-yet upgraded primary. We have to recognize that situation and use "old style" truncation (i.e. looking at the SLRUs) during WAL replay. In contrast to before, this now happens in the startup process, when replaying a checkpoint record, instead of the checkpointer. Doing truncation in the restartpoint is incorrect, they can happen much later than the original checkpoint, thereby leading to wraparound. To avoid "multixact_redo: unknown op code 48" errors standbys would have to be upgraded before primaries. A later patch will bump the WAL page magic, and remove the legacy truncation codepaths. Legacy truncation support is just included to make a possible future backpatch easier. Discussion: 20150621192409.GA4797@alap3.anarazel.de Reviewed-By: Robert Haas, Alvaro Herrera, Thomas Munro Backpatch: 9.5 for now
2015-09-26 19:04:25 +02:00
xl_multixact_truncate
2010-07-06 21:18:19 +02:00
xl_parameter_change
2010-02-26 02:55:35 +01:00
xl_relmap_update
xl_replorigin_drop
xl_replorigin_set
xl_restore_point
2010-02-26 02:55:35 +01:00
xl_running_xacts
xl_seq_rec
xl_smgr_create
xl_smgr_truncate
xl_standby_lock
xl_standby_locks
xl_tblspc_create_rec
xl_tblspc_drop_rec
xl_xact_abort
xl_xact_assignment
xl_xact_commit
xl_xact_dbinfo
xl_xact_invals
xl_xact_origin
xl_xact_parsed_abort
xl_xact_parsed_commit
xl_xact_relfilenodes
xl_xact_subxacts
xl_xact_twophase
xl_xact_xinfo
2010-02-26 02:55:35 +01:00
xmlBuffer
xmlBufferPtr
xmlChar
xmlDocPtr
xmlErrorPtr
xmlExternalEntityLoader
xmlGenericErrorFunc
2010-02-26 02:55:35 +01:00
xmlNodePtr
xmlNodeSetPtr
xmlParserCtxtPtr
xmlParserInputPtr
xmlStructuredErrorFunc
2010-02-26 02:55:35 +01:00
xmlTextWriter
xmlTextWriterPtr
xmlXPathCompExprPtr
xmlXPathContextPtr
xmlXPathObjectPtr
xmltype
xpath_workspace
xsltSecurityPrefsPtr
2010-02-26 02:55:35 +01:00
xsltStylesheetPtr
xsltTransformContextPtr
yy_parser
2010-02-26 02:55:35 +01:00
yy_size_t
yyscan_t
z_stream
z_streamp
zic_t