From aaf715afcc10de308c34bb9a8eb967f82866c3d1 Mon Sep 17 00:00:00 2001 From: "Andrei V. Lepikhov" Date: Wed, 7 Jan 2026 10:54:42 +0100 Subject: [PATCH 1/4] Fix pgindent script to prevent typedef duplicates The gen-typedefs.sh script accumulated duplicates on each run because it only appended to typedefs.list. Fixed by: - Uncommenting curl to fetch fresh PostgreSQL typedefs (overwrites file) - Adding sort/uniq to remove any internal duplicates - Cleaning up typedefs.list Sorting allow us to stabilise the content in case a struct or enum has been displaced. This ensures repeated script runs produce consistent, deduplicated output. --- utils/pgindent/gen-typedefs.sh | 7 +- utils/pgindent/typedefs.list | 4073 ++++++++++++++++---------------- 2 files changed, 2081 insertions(+), 1999 deletions(-) diff --git a/utils/pgindent/gen-typedefs.sh b/utils/pgindent/gen-typedefs.sh index 66c362edd..329ac01b7 100755 --- a/utils/pgindent/gen-typedefs.sh +++ b/utils/pgindent/gen-typedefs.sh @@ -1,11 +1,16 @@ #!/bin/bash -#curl https://buildfarm.postgresql.org/cgi-bin/typedefs.pl > typedefs.list +# Fetch PostgreSQL core typedefs from buildfarm +curl https://buildfarm.postgresql.org/cgi-bin/typedefs.pl > typedefs.list +# Extract Spock-specific typedefs from source code and append them grep -nri "typedef struct" ../../ --include="*.c" --include="*.h" | grep -v "{" | awk '{print $3}' >> typedefs.list grep -nri "typedef enum" ../../ --include="*.c" --include="*.h" | grep -v "{" | awk '{print $3}' >> typedefs.list grep -nri "typedef union" ../../ --include="*.c" --include="*.h" | grep -v "{" | awk '{print $3}' >> typedefs.list +# Remove duplicates and sort +sort typedefs.list | uniq > typedefs.list.tmp && mv typedefs.list.tmp typedefs.list + find ../../ -type f \( -name "*.c" -o -name "*.h" \) -print0 \ | xargs -0 pgindent --typedefs typedefs.list diff --git a/utils/pgindent/typedefs.list b/utils/pgindent/typedefs.list index adfc133f5..f451ea0dc 100644 --- a/utils/pgindent/typedefs.list +++ b/utils/pgindent/typedefs.list @@ -1,13 +1,16 @@ -ACCESS_ALLOWED_ACE -ACL -ACL_SIZE_INFORMATION -AFFIX -ASN1_INTEGER -ASN1_OBJECT -ASN1_OCTET_STRING -ASN1_STRING -ATAlterConstraint -AV + +__m128i +__m512i +__mmask64 +__time64_t +_dev_t +_ino_t +_locale_t +_resultmap +_SPI_connection +_SPI_plan +_stringlist +/* A_ArrayExpr A_Const A_Expr @@ -16,27 +19,37 @@ A_Indices A_Indirection A_Star AbsoluteTime +ACCESS_ALLOWED_ACE +access_vector_t AccessMethodInfo AccessPriv Acl +ACL +ACL_SIZE_INFORMATION AclItem AclMaskHow AclMode AclResult +acquireLocksOnSubLinks_context AcquireSampleRowsFunc +ActionErrCallbackArg ActionList ActiveSnapshotElt +add_nulling_relids_context +addFkConstraintSides AddForeignUpdateTargets_function AddrInfo +adjust_appendrel_attrs_context +AFFIX AffixNode AffixNodeData AfterTriggerEvent AfterTriggerEventChunk AfterTriggerEventData AfterTriggerEventList +AfterTriggersData AfterTriggerShared AfterTriggerSharedData -AfterTriggersData AfterTriggersQueryData AfterTriggersTableData AfterTriggersTransData @@ -45,6 +58,8 @@ AggClauseCosts AggClauseInfo AggInfo AggPath +Aggref +AggregateInstrumentation AggSplit AggState AggStatePerAgg @@ -54,18 +69,16 @@ AggStatePerPhase AggStatePerTrans AggStrategy AggTransInfo -Aggref -AggregateInstrumentation AlenState Alias +AllocateDesc +AllocateDescKind AllocBlock AllocFreeListLink AllocPointer AllocSet AllocSetContext AllocSetFreeList -AllocateDesc -AllocateDescKind AlterCollationStmt AlterDatabaseRefreshCollStmt AlterDatabaseSetStmt @@ -73,6 +86,7 @@ AlterDatabaseStmt AlterDefaultPrivilegesStmt AlterDomainStmt AlterDomainType +AlteredTableInfo AlterEnumStmt AlterEventTrigStmt AlterExtensionContentsStmt @@ -80,10 +94,11 @@ AlterExtensionStmt AlterFdwStmt AlterForeignServerStmt AlterFunctionStmt +AlternativeSubPlan AlterObjectDependsStmt AlterObjectSchemaStmt -AlterOpFamilyStmt AlterOperatorStmt +AlterOpFamilyStmt AlterOwnerStmt AlterPolicyStmt AlterPublicationAction @@ -96,9 +111,6 @@ AlterStatsStmt AlterSubscriptionStmt AlterSubscriptionType AlterSystemStmt -AlterTSConfigType -AlterTSConfigurationStmt -AlterTSDictionaryStmt AlterTableCmd AlterTableMoveAllStmt AlterTablePass @@ -106,12 +118,39 @@ AlterTableSpaceOptionsStmt AlterTableStmt AlterTableType AlterTableUtilityContext +AlterTSConfigType +AlterTSConfigurationStmt +AlterTSDictionaryStmt AlterTypeRecurseParams AlterTypeStmt AlterUserMappingStmt -AlteredTableInfo -AlternativeSubPlan +amadjustmembers_function +ambeginscan_function +ambuild_function +ambuildempty_function +ambuildphasename_function +ambulkdelete_function +amcanreturn_function AmcheckOptions +amcostestimate_function +amendscan_function +amestimateparallelscan_function +amgetbitmap_function +amgettreeheight_function +amgettuple_function +aminitparallelscan_function +aminsert_function +aminsertcleanup_function +ammarkpos_function +amoptions_function +amparallelrescan_function +amproperty_function +amrescan_function +amrestrpos_function +amtranslate_cmptype_function +amtranslate_strategy_function +amvacuumcleanup_function +amvalidate_function AnalyzeAttrComputeStatsFunc AnalyzeAttrFetchFunc AnalyzeForeignTable_function @@ -123,7 +162,10 @@ AppendPath AppendRelInfo AppendState ApplyErrorCallbackArg +ApplyExecState ApplyExecutionData +ApplyMIState +ApplyReplayEntryData ApplySubXactData Archive ArchiveCheckConfiguredCB @@ -136,11 +178,13 @@ ArchiveModuleCallbacks ArchiveModuleInit ArchiveModuleState ArchiveOpts +ArchiverOutput +ArchiverStage ArchiveShutdownCB ArchiveStartupCB ArchiveStreamState -ArchiverOutput -ArchiverStage +array_iter +array_unnest_fctx ArrayAnalyzeExtraData ArrayBuildState ArrayBuildStateAny @@ -157,83 +201,56 @@ ArraySortCachedInfo ArraySubWorkspace ArrayToken ArrayType +ASN1_INTEGER +ASN1_OBJECT +ASN1_OCTET_STRING +ASN1_STRING +assign_collations_context +astreamer +astreamer_archive_context +astreamer_extractor +astreamer_gzip_decompressor +astreamer_gzip_writer +astreamer_lz4_frame +astreamer_member +astreamer_ops +astreamer_plain_writer +astreamer_recovery_injector +astreamer_tar_archiver +astreamer_tar_parser +astreamer_verify +astreamer_zstd_frame AsyncQueueControl AsyncQueueEntry AsyncRequest +ATAlterConstraint AttInMetadata -AttStatsSlot AttoptCacheEntry AttoptCacheKey -AttrDefInfo AttrDefault +AttrDefInfo +AttributeOpts AttrMap AttrMissing AttrNumber -AttributeOpts +AttStatsSlot +auth_password_hook_typ AuthRequest AuthToken AutoPrewarmReadStreamData AutoPrewarmSharedState +autovac_table AutoVacOpts AutoVacuumShmemStruct AutoVacuumWorkItem AutoVacuumWorkItemType -BF_ctx -BF_key -BF_word -BF_word_signed -BIGNUM -BIO -BIO_METHOD -BITVECP -BMS_Comparison -BMS_Membership -BN_CTX -BOOL -BOOLEAN -BOX -BTArrayKeyInfo -BTBuildState -BTCallbackState -BTCycleId -BTDedupInterval -BTDedupState -BTDedupStateData -BTDeletedPageData -BTIndexStat -BTInsertState -BTInsertStateData -BTLeader -BTMetaPageData -BTOneVacInfo -BTOptions -BTPS_State -BTPageOpaque -BTPageOpaqueData -BTPageStat -BTPageState -BTParallelScanDesc -BTPendingFSM -BTReadPageState -BTScanInsert -BTScanInsertData -BTScanKeyPreproc -BTScanOpaque -BTScanOpaqueData -BTScanPosData -BTScanPosItem -BTShared -BTSortArrayContext -BTSpool -BTStack -BTStackData -BTVacInfo -BTVacState -BTVacuumPosting -BTVacuumPostingData -BTWriteState -BUF_MEM -BYTE +AV +av_relation +avc_cache +avl_dbase +avl_node +avl_tree +avw_dbase BackendParameters BackendStartupData BackendState @@ -243,24 +260,52 @@ BackgroundWorker BackgroundWorkerArray BackgroundWorkerHandle BackgroundWorkerSlot +backslashResult +backup_file_entry +backup_file_hash +backup_manifest_info +backup_manifest_option +backup_wal_range BackupState Barrier +base_yy_extra_type +basebackup_options BaseBackupCmd BaseBackupTargetHandle BaseBackupTargetType +bbsink +bbsink_copystream +bbsink_gzip +bbsink_lz4 +bbsink_ops +bbsink_server +bbsink_shell +bbsink_state +bbsink_throttle +bbsink_zstd BeginDirectModify_function BeginForeignInsert_function BeginForeignModify_function BeginForeignScan_function BeginSampleScan_function BernoulliSamplerData -BgWorkerStartTime +BF_ctx +BF_key +BF_word +BF_word_signed BgwHandleStatus +bgworker_main_type +BgWorkerStartTime +bh_node_type +BIGNUM BinaryArithmFunc +binaryheap +binaryheap_comparator BinaryUpgradeClassOidItem BindParamCbData +BIO +BIO_METHOD BipartiteMatchState -BitString BitmapAnd BitmapAndPath BitmapAndState @@ -275,13 +320,23 @@ BitmapOr BitmapOrPath BitmapOrState Bitmapset +bitmapword +bits16 +bits32 +bits8 +BitString +BITVECP Block +BlockedProcData +BlockedProcsData BlockId BlockIdData BlockInfoRecord BlockNumber BlockRangeReadStreamPrivate BlockRefTable +blockreftable_hash +blockreftable_iterator BlockRefTableBuffer BlockRefTableChunk BlockRefTableEntry @@ -291,9 +346,8 @@ BlockRefTableSerializedEntry BlockRefTableWriter BlockSampler BlockSamplerData -BlockedProcData -BlockedProcsData BlocktableEntry +bloom_filter BloomBuildState BloomFilter BloomMetaPageData @@ -306,13 +360,22 @@ BloomScanOpaqueData BloomSignatureWord BloomState BloomTuple +BMS_Comparison +BMS_Membership +BN_CTX +BOOL BoolAggState +Boolean +BOOLEAN +BooleanTest BoolExpr BoolExprType +boolKEY BoolTestType -Boolean -BooleanTest +BOX BpChar +brin_column_state +brin_serialize_callback_type BrinBuildState BrinDesc BrinInsertState @@ -329,28 +392,71 @@ BrinSpecialSpace BrinStatsData BrinTuple BrinValues -BtreeCheckState -BtreeLastVisibleEntry -BtreeLevel -Bucket -BufFile -Buffer -BufferAccessStrategy -BufferAccessStrategyType -BufferCacheNumaContext -BufferCacheNumaRec -BufferCacheOsPagesContext -BufferCacheOsPagesRec -BufferCachePagesContext -BufferCachePagesRec -BufferDesc -BufferDescPadded -BufferHeapTupleTableSlot -BufferLookupEnt +BTArrayKeyInfo +BTBuildState +BTCallbackState +BTCycleId +BTDedupInterval +BTDedupState +BTDedupStateData +BTDeletedPageData +BTIndexStat +BTInsertState +BTInsertStateData +BTLeader +BTMetaPageData +BTOneVacInfo +BTOptions +BTPageOpaque +BTPageOpaqueData +BTPageStat +BTPageState +BTParallelScanDesc +BTPendingFSM +BTPS_State +BTReadPageState +btree_gin_convert_function +btree_gin_leftmost_function +BtreeCheckState +BtreeLastVisibleEntry +BtreeLevel +BTScanInsert +BTScanInsertData +BTScanKeyPreproc +BTScanOpaque +BTScanOpaqueData +BTScanPosData +BTScanPosItem +BTShared +BTSortArrayContext +BTSpool +BTStack +BTStackData +BTVacInfo +BTVacState +BTVacuumPosting +BTVacuumPostingData +BTWriteState +Bucket +BUF_MEM +Buffer +BufferAccessStrategy +BufferAccessStrategyType +BufferCacheNumaContext +BufferCacheNumaRec +BufferCacheOsPagesContext +BufferCacheOsPagesRec +BufferCachePagesContext +BufferCachePagesRec +BufferDesc +BufferDescPadded +BufferHeapTupleTableSlot +BufferLookupEnt BufferManagerRelation BufferStrategyControl BufferTag BufferUsage +BufFile BuildAccumulator BuiltinScript BulkInsertState @@ -359,32 +465,11 @@ BulkWriteBuffer BulkWriteState BumpBlock BumpContext -CACHESIGN +BY_HANDLE_FILE_INFORMATION +BYTE +bytea CAC_state -CCFastEqualFN -CCHashFN -CEOUC_WAIT_MODE -CFuncHashTabEntry -CHAR -CHECKPOINT -CHKVAL -CIRCLE -CMPDAffix -CONTEXT -COP -CRITICAL_SECTION -CRSSnapshotAction -CState -CTECycleClause -CTEMaterialize -CTESearchClause -CURL -CURLM -CURLMcode -CURLMsg -CURLcode -CURLoption -CV +cached_re_str CachedExpression CachedFunction CachedFunctionCompileCallback @@ -393,32 +478,57 @@ CachedFunctionHashEntry CachedFunctionHashKey CachedPlan CachedPlanSource +CACHESIGN CallContext CallStmt CancelRequestPacket +canonicalize_state Cardinality CaseExpr CaseKind CaseTestExpr CaseWhen Cash +cashKEY CastInfo -CatCInProgress -CatCList -CatCTup -CatCache -CatCacheHeader CatalogId +catalogid_hash CatalogIdMapEntry CatalogIndexState +CatCache +CatCacheHeader +CatCInProgress +CatCList +CatCTup +cb_cleanup_dir +cb_options +cb_tablespace +cb_tablespace_mapping +CCFastEqualFN +CCHashFN +CEOUC_WAIT_MODE +CFuncHashTabEntry ChangeVarNodes_callback ChangeVarNodes_context +CHAR +char16_t +char32_t +check_agg_arguments_context +check_function_callback +check_network_data +check_object_relabel_type +check_password_hook_type CheckPoint -CheckPointStmt -CheckpointStatsData +CHECKPOINT CheckpointerRequest CheckpointerShmemStruct +CheckpointStatsData +CheckPointStmt +child_process_kind +CHKVAL +chr Chromosome +CIRCLE CkptSortItem CkptTsStatus ClientAuthentication_hook_type @@ -436,7 +546,10 @@ ClusterInfo ClusterParams ClusterStmt CmdType +CMPDAffix +cmpEntriesArg CoalesceExpr +codes_t CoerceParamHook CoerceToDomain CoerceToDomainValue @@ -445,14 +558,18 @@ CoercionContext CoercionForm CoercionPathType CollAliasData -CollInfo -CollParam CollateClause CollateExpr CollateStrength +collation_cache_entry +collation_cache_hash CollectedATSubcmd CollectedCommand CollectedCommandType +CollInfo +CollParam +color +colormaprange ColorTrgm ColorTrgmInfo ColumnCompareData @@ -477,6 +594,7 @@ CommitTimestampShared CommonEntry CommonTableExpr CompactAttribute +compare_context CompareScalarsContext CompareType CompiledExprState @@ -487,35 +605,51 @@ CompressFileHandle CompressionLocation CompressorState ComputeXidHorizonsResult +ConditionalStack ConditionVariable ConditionVariableMinimallyPadded -ConditionalStack +config_handle +config_var_value ConfigData ConfigVariable ConflictTupleInfo ConflictType +conn_errorMessage_func +conn_oauth_client_id_func +conn_oauth_client_secret_func +conn_oauth_discovery_uri_func +conn_oauth_issuer_id_func +conn_oauth_scope_func +conn_sasl_state_func ConnCacheEntry ConnCacheKey +ConnectionStateEnum +ConnectionTiming ConnParams ConnStatusType ConnType -ConnectionStateEnum -ConnectionTiming ConsiderSplitContext Const -ConstrCheck -ConstrType Constraint ConstraintCategory ConstraintInfo ConstraintsSetStmt +ConstrCheck +ConstrType +contain_aggs_of_level_context +contain_placeholder_references_context +CONTEXT ControlData ControlFileData -ConvInfo -ConvProcInfo ConversionLocation +convert_testexpr_context ConvertRowtypeExpr +ConvInfo +ConvProcInfo CookedConstraint +COP +copy_data_dest_cb +copy_data_source_cb CopyDest CopyFormatOptions CopyFromRoutine @@ -533,15 +667,25 @@ CopyStmt CopyToRoutine CopyToState CopyToStateData +core_yy_extra_type +core_yyscan_t +core_YYSTYPE +corrupt_items Cost +cost_qual_eval_context CostSelector +count_param_references_context Counters CoverExt CoverPos +cp_hash_func +create_upper_paths_hook_type CreateAmStmt CreateCastStmt CreateConversionStmt +createdb_failure_params CreateDBRelInfo +CreatedbStmt CreateDBStrategy CreateDomainStmt CreateEnumStmt @@ -572,14 +716,30 @@ CreateTableSpaceStmt CreateTransformStmt CreateTrigStmt CreateUserMappingStmt -CreatedbStmt CredHandle +CRITICAL_SECTION +crosstab_cat_desc +crosstab_HashEnt +CRSSnapshotAction +CState +CTECycleClause CteItem +CTEMaterialize CteScan CteScanState +CTESearchClause CteState CtlCommand CtxtHandle +CURL +curl_infotype +curl_socket_t +curl_version_info_data +CURLcode +CURLM +CURLMcode +CURLMsg +CURLoption CurrentOfExpr CustomExecMethods CustomOutPtrType @@ -587,79 +747,100 @@ CustomPath CustomScan CustomScanMethods CustomScanState +CV CycleCtr -DBState -DCHCacheEntry -DEADLOCK_INFO -DECountItem -DH -DIR -DNSServiceErrorType -DNSServiceRef -DR_copy -DR_intorel -DR_printtup -DR_sqlfunction -DR_transientrel -DSMREntryType -DSMRegistryCtxStruct -DSMRegistryEntry +DatabaseInfo DataDirSyncMethod DataDumperPtr DataPageDeleteStack +datapagemap_iterator_t +datapagemap_t DataTypesUsageChecks DataTypesUsageVersionCheck -DatabaseInfo DateADT +dateKEY DateTimeErrorExtra +datetkn Datum DatumTupleFields DbInfo DbInfoArr DbLocaleInfo -DeClonePtrType +DBState +dce_uuid_t +DCHCacheEntry +dclist_head +DEADLOCK_INFO DeadLockState DeallocateStmt +decimal DeclareCursorStmt +DeClonePtrType DecodedBkpBlock DecodedXLogRecord DecodingOutputState +DECountItem +DefaultACLInfo DefElem DefElemAction -DefaultACLInfo DefineStmt DefnDumperPtr DeleteStmt +deparse_columns +deparse_context +deparse_expr_cxt +deparse_namespace DependencyGenerator DependencyGeneratorData DependencyType +derives_hash DeserialIOData DestReceiver -DictISpell +dev_t +DH DictInt +DictISpell DictSimple DictSnowball DictSubState DictSyn DictThesaurus DimensionInfo +DIR DirectoryMethodData DirectoryMethodFile DisableTimeoutParams +disassembledLeaf DiscardMode DiscardStmt DispatchOption DistanceValue DistinctExpr -DoState -DoStmt +dlist_head +dlist_iter +dlist_mutable_iter +dlist_node +dm_code +dm_codes +dm_letter +dm_node +DNSServiceErrorType +DNSServiceRef DocRepresentation DomainConstraintCache DomainConstraintRef DomainConstraintState DomainConstraintType DomainIOData -DropBehavior +DoState +DoStmt +DR_copy +DR_intorel +DR_printtup +DR_sqlfunction +DR_transientrel +DropBehavior +DropdbStmt DropOwnedStmt DropReplicationSlotCmd DropRoleStmt @@ -667,36 +848,65 @@ DropStmt DropSubscriptionStmt DropTableSpaceStmt DropUserMappingStmt -DropdbStmt -DumpComponents -DumpId -DumpOptions -DumpSignalInformation +ds_state +dsa_area +dsa_area_control +dsa_area_pool +dsa_area_span +dsa_handle +dsa_pointer +dsa_pointer_atomic +dsa_segment_header +dsa_segment_index +dsa_segment_map +dshash_compare_function +dshash_copy_function +dshash_hash +dshash_hash_function +dshash_parameters +dshash_partition +dshash_seq_status +dshash_table +dshash_table_control +dshash_table_handle +dshash_table_item +dsm_control_header +dsm_control_item +dsm_handle +dsm_op +dsm_segment +dsm_segment_detach_callback +DSMRegistryCtxStruct +DSMRegistryEntry +DSMREntryType DumpableAcl DumpableObject DumpableObjectType DumpableObjectWithAcl +DumpComponents +DumpCtx +DumpId +DumpOptions +DumpSignalInformation +duration +DWORD DynamicFileList DynamicZoneAbbrev +EachState +ean13 +eary +ec_matches_callback_type +ec_member_foreign_arg +ec_member_matches_arg ECDerivesEntry ECDerivesKey -EDGE -ENGINE -EOM_flatten_into_method -EOM_get_flat_size_method -EPQState -EPlan -EState -EStatus -EVP_CIPHER -EVP_CIPHER_CTX -EVP_MD -EVP_MD_CTX -EVP_PKEY -EachState Edge +EDGE EditableObjectType +element_type ElementsState +eLogType +emit_log_hook_type EnableTimeoutParams EndDataPtrType EndDirectModify_function @@ -707,21 +917,29 @@ EndLOPtrType EndLOsPtrType EndOfWalRecoveryInfo EndSampleScan_function +ENGINE EnumItem EolType -EphemeralNameRelationType +EOM_flatten_into_method +EOM_get_flat_size_method EphemeralNamedRelation EphemeralNamedRelationData EphemeralNamedRelationMetadata EphemeralNamedRelationMetadataData +EphemeralNameRelationType +EPlan +EPQState EquivalenceClass EquivalenceMember EquivalenceMemberIterator ErrorContextCallback ErrorData ErrorSaveContext +EState +EStatus EstimateDSMForeignScan_function EstimationInfo +eval_const_expressions_context EventTriggerCacheEntry EventTriggerCacheItem EventTriggerCacheStateType @@ -729,8 +947,14 @@ EventTriggerData EventTriggerEvent EventTriggerInfo EventTriggerQueryState +EVP_CIPHER +EVP_CIPHER_CTX +EVP_MD +EVP_MD_CTX +EVP_PKEY ExceptionLabelMap ExceptionMap +exec_thread_arg ExecAuxRowMark ExecEvalBoolSubroutine ExecEvalSubroutine @@ -749,17 +973,23 @@ ExecScanRecheckMtd ExecStatus ExecStatusType ExecuteStmt +execution_state ExecutorCheckPerms_hook_type ExecutorEnd_hook_type ExecutorFinish_hook_type ExecutorRun_hook_type ExecutorStart_hook_type +exit_function ExpandedArrayHeader ExpandedObjectHeader ExpandedObjectMethods ExpandedRange ExpandedRecordFieldInfo ExpandedRecordHeader +explain_get_index_name_hook_type +explain_per_node_hook_type +explain_per_plan_hook_type +explain_validate_options_hook_type ExplainDirectModify_function ExplainExtensionOption ExplainForeignModify_function @@ -774,8 +1004,8 @@ ExplainWorkersState ExportedSnapshot Expr ExprContext -ExprContextCallbackFunction ExprContext_CB +ExprContextCallbackFunction ExprDoneCond ExprEvalOp ExprEvalOpLookup @@ -790,54 +1020,83 @@ ExtensibleNodeMethods ExtensionControlFile ExtensionInfo ExtensionVersionInfo -FDWCollateState -FD_SET -FILE -FILETIME -FPI -FSMAddress -FSMPage -FSMPageData +f_smgr +FailoverSlotFilter +FailoverSlotFilterKey FakeRelCacheEntry FakeRelCacheEntryData +fasthash_state FastPathStrongRelationLockData +fd_set +FD_SET +FDWCollateState FdwInfo FdwRoutine +fe_oauth_state +fe_scram_state +fe_scram_state_enum +fetch_range_request FetchDirection FetchDirectionKeywords FetchStmt FieldSelect FieldStore File +FILE +file_action_t +file_content_type_t +file_entry_t +file_type_t FileBackupMethod FileFdwExecutionState FileFdwPlanState +filehash_hash +filehash_iterator +filemap_t FileNameMap FileSet FileTag +FILETIME +fill_string_relopt FilterCommandType FilterObjectType FilterStateData +finalize_primnode_context FinalPathExtraData +find_dependent_phvs_context +find_expr_references_context FindColsContext FindSplitData FindSplitStrat +fireRIRonSubLink_context First +fix_join_expr_context +fix_scan_expr_context +fix_upper_expr_context +fix_windowagg_cond_context FixedParallelExecutorState FixedParallelState FixedParamState FlagMode +flatten_join_alias_vars_context +flatten_rtes_walker_context Float +float4 +float4KEY +float8 +float8KEY +floating_decimal_32 +floating_decimal_64 FlushPosition +fmgr_hook_type FmgrBuiltin FmgrHookEventType FmgrInfo ForBothCellState ForBothState ForEachState -ForFiveState -ForFourState -ForThreeState +foreign_glob_cxt +foreign_loc_cxt ForeignAsyncConfigureWait_function ForeignAsyncNotify_function ForeignAsyncRequest_function @@ -851,66 +1110,9 @@ ForeignServer ForeignServerInfo ForeignTable ForeignTruncateInfo +ForFiveState +ForFourState 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 -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 -FormData_pg_foreign_data_wrapper -FormData_pg_foreign_server -FormData_pg_foreign_table -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_partitioned_table -FormData_pg_policy -FormData_pg_proc -FormData_pg_publication -FormData_pg_publication_namespace -FormData_pg_publication_rel -FormData_pg_range -FormData_pg_replication_origin -FormData_pg_rewrite -FormData_pg_sequence -FormData_pg_sequence_data -FormData_pg_shdepend -FormData_pg_statistic -FormData_pg_statistic_ext -FormData_pg_statistic_ext_data -FormData_pg_subscription -FormData_pg_subscription_rel -FormData_pg_tablespace -FormData_pg_transform -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 -FormExtraData_pg_attribute Form_pg_aggregate Form_pg_am Form_pg_amop @@ -970,70 +1172,121 @@ Form_pg_ts_template Form_pg_type Form_pg_user_mapping FormatNode -FreeBlockNumberArray -FreeListData -FreePageBtree -FreePageBtreeHeader -FreePageBtreeInternalKey -FreePageBtreeLeafKey -FreePageBtreeSearchResult -FreePageManager -FreePageSpanLeader -From -FromCharDateMode -FromExpr -FullTransactionId -FuncCall -FuncCallContext -FuncCandidateList -FuncDetailCode -FuncExpr -FuncInfo -FuncLookupError -FunctionCallInfo -FunctionCallInfoBaseData -FunctionParameter -FunctionParameterMode -FunctionScan -FunctionScanPerFuncState -FunctionScanState -FuzzyAttrMatchState -GBT_NUMKEY -GBT_NUMKEY_R -GBT_VARKEY -GBT_VARKEY_R -GENERAL_NAME -GISTBuildBuffers -GISTBuildState -GISTDeletedPageContents -GISTENTRY -GISTInsertStack -GISTInsertState -GISTIntArrayBigOptions -GISTIntArrayOptions -GISTNodeBuffer -GISTNodeBufferPage -GISTPageOpaque -GISTPageOpaqueData -GISTPageSplitInfo -GISTSTATE -GISTScanOpaque -GISTScanOpaqueData -GISTSearchHeapItem -GISTSearchItem -GISTTYPE -GIST_SPLITVEC -GMReaderTupleBuffer -GROUP -GUCHashEntry -GV +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 +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 +FormData_pg_foreign_data_wrapper +FormData_pg_foreign_server +FormData_pg_foreign_table +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_partitioned_table +FormData_pg_policy +FormData_pg_proc +FormData_pg_publication +FormData_pg_publication_namespace +FormData_pg_publication_rel +FormData_pg_range +FormData_pg_replication_origin +FormData_pg_rewrite +FormData_pg_sequence +FormData_pg_sequence_data +FormData_pg_shdepend +FormData_pg_statistic +FormData_pg_statistic_ext +FormData_pg_statistic_ext_data +FormData_pg_subscription +FormData_pg_subscription_rel +FormData_pg_tablespace +FormData_pg_transform +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 +FormData_spock_depend +FormExtraData_pg_attribute +ForThreeState +FPI +FreeBlockNumberArray +freefunc +FreeListData +FreePageBtree +FreePageBtreeHeader +FreePageBtreeInternalKey +FreePageBtreeLeafKey +FreePageBtreeSearchResult +FreePageManager +FreePageSpanLeader +From +FromCharDateMode +FromExpr +fsec_t +FSMAddress +FSMPage +FSMPageData +FullTransactionId +FuncCall +FuncCallContext +FuncCandidateList +FuncDetailCode +FuncExpr +FuncInfo +FuncLookupError +FunctionCallInfo +FunctionCallInfoBaseData +FunctionParameter +FunctionParameterMode +FunctionScan +FunctionScanPerFuncState +FunctionScanState +FuzzyAttrMatchState Gather GatherMerge GatherMergePath GatherMergeState GatherPath GatherState +GBT_NUMKEY +GBT_NUMKEY_R +GBT_VARKEY +GBT_VARKEY_R +gbt_vsrt_arg +gbtree_ninfo +gbtree_vinfo Gene +GENERAL_NAME +generate_series_fctx +generate_series_numeric_fctx +generate_series_timestamp_fctx +generate_series_timestamptz_fctx +generate_subscripts_fctx GeneratePruningStepsContext GenerationBlock GenerationContext @@ -1042,6 +1295,10 @@ GenericCosts GenericXLogPageData GenericXLogState GeqoPrivateData +get_attavgwidth_hook_type +get_index_stats_hook_type +get_relation_info_hook_type +get_relation_stats_hook_type GetForeignJoinPaths_function GetForeignModifyBatchSize_function GetForeignPaths_function @@ -1050,7 +1307,8 @@ GetForeignRelSize_function GetForeignRowMarkType_function GetForeignUpperPaths_function GetState -GiSTOptions +gid_t +gin_leafpage_items_state GinBtree GinBtreeData GinBtreeDataLeafInsertData @@ -1086,44 +1344,97 @@ GinTernaryValue GinTuple GinTupleCollector GinVacuumState +ginxlogCreatePostingTree +ginxlogDeleteListPages +ginxlogDeletePage +ginxlogInsert +ginxlogInsertDataInternal +ginxlogInsertEntry +ginxlogInsertListPage +ginxlogRecompressDataLeaf +ginxlogSplit +ginxlogUpdateMeta +ginxlogVacuumDataLeafPage +GIST_SPLITVEC +GISTBuildBuffers GistBuildMode +GISTBuildState +GISTDeletedPageContents +GISTENTRY GistEntryVector GistHstoreOptions GistInetKey +GISTInsertStack +GISTInsertState +GISTIntArrayBigOptions +GISTIntArrayOptions +GISTNodeBuffer +GISTNodeBufferPage GistNSN GistOptBufferingMode +GiSTOptions +GISTPageOpaque +GISTPageOpaqueData +GISTPageSplitInfo +GISTScanOpaque +GISTScanOpaqueData +GISTSearchHeapItem +GISTSearchItem GistSortedBuildLevelState GistSplitUnion GistSplitVector +GISTSTATE GistTsVectorOptions +GISTTYPE GistVacState +gistxlogDelete +gistxlogPage +gistxlogPageDelete +gistxlogPageReuse +gistxlogPageSplit +gistxlogPageUpdate GlobalTransaction GlobalVisHorizonKind GlobalVisState +GMReaderTupleBuffer GrantRoleOptions GrantRoleStmt GrantStmt GrantTargetType Group +GROUP GroupByOrdering GroupClause -GroupPath -GroupPathExtraData -GroupResultPath -GroupState -GroupVarInfo +grouping_sets_data GroupingExprInfo GroupingFunc GroupingSet GroupingSetData GroupingSetKind GroupingSetsPath +GroupPath +GroupPathExtraData +GroupProgressTupDescColumns +GroupResultPath +GroupState +GroupVarInfo +gseg_picksplit_item +gss_buffer_desc +gss_cred_id_t +gss_cred_usage_t +gss_ctx_id_t +gss_key_value_element_desc +gss_key_value_set_desc +gss_name_t +gss_OID_set +gtrgm_consistent_cache GucAction GucBoolAssignHook GucBoolCheckHook GucContext GucEnumAssignHook GucEnumCheckHook +GUCHashEntry GucIntAssignHook GucIntCheckHook GucRealAssignHook @@ -1134,36 +1445,23 @@ GucStack GucStackState GucStringAssignHook GucStringCheckHook +GV +gzFile GzipCompressorState -HASHACTION -HASHBUCKET -HASHCTL -HASHELEMENT -HASHHDR -HASHSEGMENT -HASH_SEQ_STATUS -HE -HEntry -HIST_ENTRY -HKEY -HLOCAL -HMAC_CTX -HMODULE -HOldEntry -HRESULT -HSParser -HSpool -HStore -HTAB -HTSV_Result -HV +HANDLE Hash +HASH_SEQ_STATUS +HASHACTION HashAggBatch HashAggSpill HashAllocFunc +HASHBUCKET HashBuildState HashCompareFunc HashCopyFunc +HASHCTL +HASHELEMENT +HASHHDR HashIndexStat HashInstrumentation HashJoin @@ -1183,13 +1481,16 @@ HashScanOpaque HashScanOpaqueData HashScanPosData HashScanPosItem +HASHSEGMENT HashSkewBucket HashState HashValueFunc HbaLine +HE HeadlineJsonState HeadlineParsedText HeadlineWordEntry +heap_page_items_state HeapCheckContext HeapCheckReadStreamData HeapPageFreeze @@ -1203,36 +1504,45 @@ HeapTupleFreeze HeapTupleHeader HeapTupleHeaderData HeapTupleTableSlot +help_handler +HEntry +HIST_ENTRY HistControl +HKEY +hlCheck +HLOCAL +HMAC_CTX +HMODULE +HOldEntry HotStandbyState +HRESULT +HSParser +HSpool +HStore +hstoreCheckKeyLen_t +hstoreCheckValLen_t +hstorePairs_t +hstoreUniquePairs_t +hstoreUpgrade_t +HTAB +HTSV_Result +HV +hyperLogLogState I32 ICU_Convert_Func ID -INFIX -INT128 -INTERFACE_INFO -IO -IOContext -IOFuncSelector -IOObject -IOOp -IO_STATUS_BLOCK -IPCompareMethod -ITEM -IV -IdentLine IdentifierLookup IdentifySystemCmd +IdentLine IfStackElem +ifState +import_error_callback_arg +ImportForeignSchema_function ImportForeignSchemaStmt ImportForeignSchemaType -ImportForeignSchema_function ImportQual -InProgressEnt -InProgressIO IncludeWal InclusionOpaque -IncrementVarSublevelsUp_context IncrementalBackupInfo IncrementalSort IncrementalSortExecutionStatus @@ -1240,6 +1550,7 @@ IncrementalSortGroupInfo IncrementalSortInfo IncrementalSortPath IncrementalSortState +IncrementVarSublevelsUp_context Index IndexAMProperty IndexAmRoutine @@ -1255,6 +1566,7 @@ IndexClauseSet IndexDeleteCounts IndexDeletePrefetchState IndexDoCheckCallback +indexed_tlist IndexElem IndexFetchHeapData IndexFetchTableData @@ -1277,43 +1589,90 @@ IndexTupleData IndexUniqueCheck IndexVacuumInfo IndxInfo +inet +inet_struct +inetKEY InferClause InferenceElem +INFIX InfoItem -InhInfo InheritableSocket -InitSampleScan_function +InhInfo +init_function InitializeDSMForeignScan_function InitializeWorkerForeignScan_function -InjIoErrorState +initRowMethod +InitSampleScan_function InjectionPointCacheEntry InjectionPointCallback InjectionPointCondition InjectionPointConditionType InjectionPointData InjectionPointEntry -InjectionPointSharedState InjectionPointsCtl +InjectionPointSharedState +InjIoErrorState +inline_cte_walker_context +inline_error_callback_arg InlineCodeBlock +ino_t +InProgressEnt +InProgressIO +inquiry InsertStmt +instr_time Instrumentation +int_fast32_t +int_fast64_t +int128 +INT128 Int128AggState +int16 +int16_t +int16KEY +int2vector +int32 +int32_t +int32KEY +int64 +int64_t +int64KEY +int8 +int8_t Int8TransTypeData -IntRBTreeNode +int8x16_t Integer IntegerSet +INTERFACE_INFO InternalDefaultACL InternalGrant +internalPQconninfoOption Interval IntervalAggState +intmax_t IntoClause -InvalMessageArray +intptr_t +IntRBTreeNode +intset_internal_node +intset_leaf_node +intset_node +intvKEY InvalidationInfo InvalidationMsgsGroup +InvalMessageArray +IO +io_callback_fn +io_stat_col +IO_STATUS_BLOCK +IOContext +IOFuncSelector IoMethodOps +IOObject +IOOp IpcMemoryId IpcMemoryKey IpcMemoryState +IPCompareMethod IpcSemaphoreId IpcSemaphoreKey IsForeignPathAsyncCapable_function @@ -1321,19 +1680,21 @@ IsForeignRelUpdatable_function IsForeignScanParallelSafe_function IsoConnInfo IspellDict +ITEM ItemArray ItemId +itemIdCompact +itemIdCompactData ItemIdData ItemPointer ItemPointerData IterateDirectModify_function IterateForeignScan_function IterateJsonStringValuesState +iterator +IV JEntry JHashState -JOBOBJECT_BASIC_LIMIT_INFORMATION -JOBOBJECT_BASIC_UI_RESTRICTIONS -JOBOBJECT_SECURITY_LIMIT_INFORMATION JitContext JitInstrumentation JitProviderCallbacks @@ -1341,7 +1702,12 @@ JitProviderCompileExprCB JitProviderInit JitProviderReleaseContextCB JitProviderResetAfterErrorCB +jmp_buf +JOBOBJECT_BASIC_LIMIT_INFORMATION +JOBOBJECT_BASIC_UI_RESTRICTIONS +JOBOBJECT_SECURITY_LIMIT_INFORMATION Join +join_search_hook_type JoinCostWorkspace JoinDomain JoinExpr @@ -1352,16 +1718,36 @@ JoinState JoinTreeItem JoinType JsObject -JsValue +json_aelem_action +json_manifest_error_callback +json_manifest_per_file_callback +json_manifest_per_wal_range_callback +json_manifest_system_identifier_callback +json_manifest_version_callback +json_ofield_action +json_scalar_action +json_struct_action JsonAggConstructor JsonAggState JsonArgument JsonArrayAgg JsonArrayConstructor JsonArrayQueryConstructor +Jsonb +JsonbAggState JsonBaseObjectInfo +JsonbContainer JsonBehavior JsonBehaviorType +JsonbInState +JsonbIterator +JsonbIteratorToken +JsonbIterState +JsonbPair +JsonbParseState +JsonbSubWorkspace +JsonbTypeCategory +JsonbValue JsonConstructorExpr JsonConstructorExprState JsonConstructorType @@ -1443,39 +1829,68 @@ JsonValueList JsonValueListIterator JsonValueType JsonWrapper -Jsonb -JsonbAggState -JsonbContainer -JsonbInState -JsonbIterState -JsonbIterator -JsonbIteratorToken -JsonbPair -JsonbParseState -JsonbSubWorkspace -JsonbValue +JsValue JumbleState JunkFilter KAXCompressReason +keepwal_entry +keepwal_hash +key_t KeyAction KeyActions KeyArray +keyEntryData KeySuffix KeyWord +LabelProvider +LagTracker LARGE_INTEGER +LargeObjectDesc +Latch +LauncherLastStartTimesEntry +lclContext +lclTocEntry LDAP +LDAP_TIMEVAL LDAPMessage LDAPURLDesc -LDAP_TIMEVAL +leaf_item +leafSegmentInfo +LerpFunc +LexDescr +LexemeEntry +LexemeHashKey +LexemeInfo +LexemeKey +LexizeData +libpq_gettext_func +libpq_source +libpqsrv_PGresult +LibraryInfo +Limit +LimitOption +LimitPath +LimitState +LimitStateCond LINE +line_t +lineno_t +List +list_sort_comparator +ListCell +ListDictionary +ListenAction +ListenActionKind +ListenStmt +ListParsedLex LLVMAttributeRef LLVMBasicBlockRef LLVMBuilderRef LLVMContextRef LLVMErrorRef LLVMIntPredicate -LLVMJITEventListenerRef LLVMJitContext +LLVMJITEventListenerRef LLVMJitHandle LLVMMemoryBufferRef LLVMModuleRef @@ -1503,92 +1918,49 @@ LLVMTargetMachineRef LLVMTargetRef LLVMTypeRef LLVMValueRef +LoadStmt +loc_chunk +local_relopt +local_relopts +local_source +local_ts_iter +local_ts_radix_tree +LocalBufferLookupEnt +locale_t LOCALLOCK LOCALLOCKOWNER LOCALLOCKTAG -LOCALPREDICATELOCK -LOCK -LOCKMASK -LOCKMETHODID -LOCKMODE -LOCKTAG -LONG -LONG_PTR -LOOP -LPARAM -LPBYTE -LPCWSTR -LPSERVICE_STATUS -LPSTR -LPTHREAD_START_ROUTINE -LPTSTR -LPWSTR -LSEG -LUID -LVRelState -LVSavedErrInfo -LWLock -LWLockHandle -LWLockMode -LWLockPadded -LZ4F_compressionContext_t -LZ4F_decompressOptions_t -LZ4F_decompressionContext_t -LZ4F_errorCode_t -LZ4F_preferences_t -LZ4State -LabelProvider -LagTracker -LargeObjectDesc -Latch -LauncherLastStartTimesEntry -LerpFunc -LexDescr -LexemeEntry -LexemeHashKey -LexemeInfo -LexemeKey -LexizeData -LibraryInfo -Limit -LimitOption -LimitPath -LimitState -LimitStateCond -List -ListCell -ListDictionary -ListParsedLex -ListenAction -ListenActionKind -ListenStmt -LoInfo -LoadStmt -LocalBufferLookupEnt LocalPgBackendStatus +LOCALPREDICATELOCK LocalTransactionId +locate_agg_of_level_context +locate_var_of_level_context +locate_windowfunc_context Location LocationIndex LocationLen +LOCK LockAcquireResult LockClauseStrength LockData LockInfoData +LockingClause LockInstanceData +LOCKMASK LockMethod LockMethodData +LOCKMETHODID +LOCKMODE LockRelId LockRows LockRowsPath LockRowsState LockStmt +LOCKTAG LockTagType LockTupleMode LockViewRecurse_context LockWaitPolicy -LockingClause -LogOpts -LogStmtLevel LogicalDecodeBeginCB LogicalDecodeBeginPrepareCB LogicalDecodeChangeCB @@ -1623,9 +1995,9 @@ LogicalRepCtxStruct LogicalRepMsgType LogicalRepPartMapEntry LogicalRepPreparedTxnData +LogicalRepRelation LogicalRepRelId LogicalRepRelMapEntry -LogicalRepRelation LogicalRepRollbackPreparedTxnData LogicalRepSequenceInfo LogicalRepStreamAbortData @@ -1638,43 +2010,93 @@ LogicalSlotInfo LogicalSlotInfoArr LogicalTape LogicalTapeSet +LogLevel +LogOpts +LogStmtLevel +logstreamer_param +LoInfo +LONG +LONG_PTR LookupSet -LsnReadQueue -LsnReadQueueNextFun -LsnReadQueueNextStatus -LtreeGistOptions -LtreeSignature +LOOP +LPARAM +LPBYTE +LPCWSTR +LPSERVICE_STATUS +LPSTR +LPTHREAD_START_ROUTINE +LPTSTR +LPVOID +LPWSTR +lquery +lquery_level +lquery_variant +LSEG +LsnReadQueue +LsnReadQueueNextFun +LsnReadQueueNextStatus +ltree +ltree_gist +ltree_level +LtreeGistOptions +LtreeSignature +ltxtquery +LUID +LVRelState +LVSavedErrInfo +LWLock +LWLockHandle +LWLockMode +LWLockPadded +LZ4F_compressionContext_t +LZ4F_decompressionContext_t +LZ4F_decompressOptions_t +LZ4F_errorCode_t +LZ4F_preferences_t +LZ4State +mac8KEY +macaddr +macaddr_sortsupport_state +macaddr8 +macKEY MAGIC +manifest_data +manifest_file +manifest_files_hash +manifest_files_iterator +manifest_wal_range +manifest_writer +ManyTestResource +ManyTestResourceKind +map_variable_attnos_context +Material +MaterialPath +MaterialState +max_parallel_hazard_context +mb2wchar_with_len_converter +mbchar_verifier +mbcharacter_incrementer +mbdisplaylen_converter +mblen_converter +mbstr_verifier MBuf MCVHashContext MCVHashEntry MCVHashTable_hash MCVItem MCVList -MEMORY_BASIC_INFORMATION -MGVTBL -MINIDUMPWRITEDUMP -MINIDUMP_TYPE -MJEvalResult -MTTargetRelLookup -MVDependencies -MVDependency -MVNDistinct -MVNDistinctItem -ManyTestResource -ManyTestResourceKind -Material -MaterialPath -MaterialState -MdPathStr MdfdVec +MdPathStr Memoize +memoize_hash +memoize_iterator MemoizeEntry MemoizeInstrumentation MemoizeKey MemoizePath MemoizeState MemoizeTuple +MEMORY_BASIC_INFORMATION MemoryChunk MemoryContext MemoryContextCallback @@ -1700,24 +2122,39 @@ MergeStmt MergeSupportFunc MergeWhenClause MetaCommand +metastring +MGVTBL +MINIDUMP_TYPE +MINIDUMPWRITEDUMP +MinimalTuple +MinimalTupleData +MinimalTupleTableSlot MinMaxAggInfo MinMaxAggPath MinMaxExpr +MinmaxMultiOpaque MinMaxMultiOptions MinMaxOp -MinimalTuple -MinimalTupleData -MinimalTupleTableSlot -MinmaxMultiOpaque MinmaxOpaque +missing_cache_key +mix_data_t +MJEvalResult +mode_t ModifyTable ModifyTableContext ModifyTablePath ModifyTableState MonotonicFunction MorphOpaque +movedb_failure_params MsgType +MTTargetRelLookup MultiAssignRef +multirange_bsearch_comparison +multirange_unnest_fctx +MultirangeIOData +MultirangeParseState +MultirangeType MultiSortSupport MultiSortSupportData MultiXactId @@ -1725,69 +2162,78 @@ MultiXactMember MultiXactOffset MultiXactStateData MultiXactStatus -MultirangeIOData -MultirangeParseState -MultirangeType -NDBOX -NLSVERSIONINFOEX -NODE -NTSTATUS -NUMCacheEntry -NUMDesc -NUMProc -NV +MVDependencies +MVDependency +MVNDistinct +MVNDistinctItem +mxact +mXactCacheEnt +mxtruncinfo Name -NameData -NameHashEntry NamedArgExpr +NameData NamedDSAState NamedDSHState NamedDSMState NamedLWLockTrancheRequest NamedTuplestoreScan NamedTuplestoreScanState +NameHashEntry NamespaceInfo +NDBOX +needs_fmgr_hook_type NestLoop NestLoopParam NestLoopState NestPath +network_sortsupport_state NewColumnValue NewConstraint NextSampleBlock_function NextSampleTuple_function NextValueExpr +nl_item +NLSVERSIONINFOEX Node +NODE +NodeInterfaceTuple +nodeitem NodeTag -NonEmptyRange +NodeTuple NoneCompressorState +NonEmptyRange +normal_rand_fctx Notification NotificationList NotifyStmt NotnullHashEntry +nsphash_hash Nsrt NtDllRoutine NtFlushBuffersFileEx_t +ntile_context +NTSTATUS +NullableDatum NullIfExpr +nullingrel_info +NullingRelsMatch NullTest NullTestType -NullableDatum -NullingRelsMatch +NUMCacheEntry +NUMDesc +numeric Numeric NumericAggState NumericDigit NumericSortSupport NumericSumAccum NumericVar +NUMProc +NV OAuthValidatorCallbacks OAuthValidatorModuleInit -OM_uint32 -OP -OSAPerGroupState -OSAPerQueryState -OSInfo -OSSLCipher -OSSLDigest -OVERLAPPED +object_access_hook_type +object_access_hook_type_str ObjectAccessDrop ObjectAccessNamespaceSearch ObjectAccessPostAlter @@ -1795,265 +2241,83 @@ ObjectAccessPostCreate ObjectAccessType ObjectAddress ObjectAddressAndFlags +ObjectAddresses ObjectAddressExtra ObjectAddressStack -ObjectAddresses ObjectPropertyType ObjectType ObjectWithArgs +off_t Offset OffsetNumber OffsetVarNodes_context Oid +oidKEY OidOptions +oidvector OkeysState OldToNewMapping OldToNewMappingData +OM_uint32 +on_dsm_detach_callback +on_exit_nicely_callback OnCommitAction OnCommitItem OnConflictAction OnConflictClause OnConflictExpr OnConflictSetState +OP OpClassCacheEnt -OpExpr -OpFamilyMember -OpFamilyOpFuncGroup -OpIndexInterpretation OpclassInfo +openssl_tls_init_hook_typ Operator OperatorElement +OpExpr OpfamilyInfo +OpFamilyMember +OpFamilyOpFuncGroup +OpIndexInterpretation OprCacheEntry OprCacheKey OprInfo OprProofCacheEntry OprProofCacheKey OrArgIndexMatch +OSAPerGroupState +OSAPerQueryState +OSInfo +ossl_EVP_cipher_func +OSSLCipher +OSSLDigest +other OuterJoinClauseInfo +output_type OutputPluginCallbacks OutputPluginOptions OutputPluginOutputType +OutputPluginParam +OutputPluginParamKey +overexplain_options +OVERLAPPED OverridingKind PACE_HEADER PACL -PATH -PCtxtHandle -PERL_CONTEXT -PERL_SI -PFN -PGAlignedBlock -PGAlignedXLogBlock -PGAsyncStatusType -PGCALL2 -PGCRYPTO_SHA_t -PGChecksummablePage -PGContextVisibility -PGEvent -PGEventConnDestroy -PGEventConnReset -PGEventId -PGEventProc -PGEventRegister -PGEventResultCopy -PGEventResultCreate -PGEventResultDestroy -PGFInfoFunction -PGFileType -PGFunction -PGIOAlignedBlock -PGLZ_HistEntry -PGLZ_Strategy -PGLoadBalanceType -PGMessageField -PGModuleMagicFunction -PGNoticeHooks -PGOutputData -PGOutputTxnData -PGPROC -PGP_CFB -PGP_Context -PGP_MPI -PGP_PubKey -PGP_S2K -PGPing -PGQueryClass -PGRUsage -PGSemaphore -PGSemaphoreData -PGShmemHeader -PGTargetServerType -PGTernaryBool -PGTransactionStatusType -PGVerbosity -PG_Lock_Status -PG_init_t -PGauthData -PGcancel -PGcancelConn -PGcmdQueueEntry -PGconn -PGdataValue -PGlobjfuncs -PGnotify -PGoauthBearerRequest -PGpipelineStatus -PGpromptOAuthDevice -PGresAttDesc -PGresAttValue -PGresParamDesc -PGresult -PGresult_data -PIO_STATUS_BLOCK -PLAINTREE -PLAssignStmt -PLcword -PLpgSQL_case_when -PLpgSQL_condition -PLpgSQL_datum -PLpgSQL_datum_type -PLpgSQL_diag_item -PLpgSQL_exception -PLpgSQL_exception_block -PLpgSQL_execstate -PLpgSQL_expr -PLpgSQL_function -PLpgSQL_getdiag_kind -PLpgSQL_if_elsif -PLpgSQL_label_type -PLpgSQL_nsitem -PLpgSQL_nsitem_type -PLpgSQL_plugin -PLpgSQL_promise_type -PLpgSQL_raise_option -PLpgSQL_raise_option_type -PLpgSQL_rec -PLpgSQL_recfield -PLpgSQL_resolve_option -PLpgSQL_row -PLpgSQL_rwopt -PLpgSQL_stmt -PLpgSQL_stmt_assert -PLpgSQL_stmt_assign -PLpgSQL_stmt_block -PLpgSQL_stmt_call -PLpgSQL_stmt_case -PLpgSQL_stmt_close -PLpgSQL_stmt_commit -PLpgSQL_stmt_dynexecute -PLpgSQL_stmt_dynfors -PLpgSQL_stmt_execsql -PLpgSQL_stmt_exit -PLpgSQL_stmt_fetch -PLpgSQL_stmt_forc -PLpgSQL_stmt_foreach_a -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_rollback -PLpgSQL_stmt_type -PLpgSQL_stmt_while -PLpgSQL_trigtype -PLpgSQL_type -PLpgSQL_type_type -PLpgSQL_var -PLpgSQL_variable -PLwdatum -PLword -PLyArrayToOb -PLyCursorObject -PLyDatumToOb -PLyDatumToObFunc -PLyExceptionEntry -PLyExecutionContext -PLyObToArray -PLyObToDatum -PLyObToDatumFunc -PLyObToDomain -PLyObToScalar -PLyObToTransform -PLyObToTuple -PLyObject_AsString_t -PLyPlanObject -PLyProcedure -PLyProcedureEntry -PLyProcedureKey -PLyResultObject -PLySRFState -PLySavedArgs -PLyScalarToOb -PLySubtransactionData -PLySubtransactionObject -PLyTransformToOb -PLyTrigType -PLyTupleToOb -PLyUnicode_FromStringAndSize_t -PLy_elog_impl_t -PMChild -PMChildPool -PMINIDUMP_CALLBACK_INFORMATION -PMINIDUMP_EXCEPTION_INFORMATION -PMINIDUMP_USER_STREAM_INFORMATION -PMSignalData -PMSignalReason -PMState -POLYGON -PQArgBlock -PQEnvironmentOption -PQExpBuffer -PQExpBufferData -PQauthDataHook_type -PQcommMethods -PQconninfoOption -PQnoticeProcessor -PQnoticeReceiver -PQprintOpt -PQsslKeyPassHook_OpenSSL_type -PREDICATELOCK -PREDICATELOCKTAG -PREDICATELOCKTARGET -PREDICATELOCKTARGETTAG -PROCESS_INFORMATION -PROCLOCK -PROCLOCKTAG -PROC_HDR -PSID -PSQL_COMP_CASE -PSQL_ECHO -PSQL_ECHO_HIDDEN -PSQL_ERROR_ROLLBACK -PSQL_SEND_MODE -PTEntryArray -PTIterationArray -PTOKEN_PRIVILEGES -PTOKEN_USER -PUTENVPROC -PVIndStats -PVIndVacStatus -PVOID -PVShared -PX_Alias -PX_Cipher -PX_Combo -PX_HMAC -PX_MD Page PageData PageGistNSN PageHeader PageHeaderData -PageXLogRecPtr +pagetable_hash +pagetable_iterator PagetableEntry +PageXLogRecPtr +pairingheap +pairingheap_comparator +pairingheap_node Pairs +pam_handle_t +parallel_worker_main_type ParallelAppendState ParallelApplyWorkerEntry ParallelApplyWorkerInfo @@ -2091,23 +2355,25 @@ ParamPathInfo ParamRef ParamsErrorCbData ParentMapEntry +parse_error_callback_arg ParseCallbackState +ParsedLex +ParsedScript +ParsedText +ParsedWord ParseExprKind ParseLoc ParseNamespaceColumn ParseNamespaceItem ParseParamRefHook -ParseState -ParsedLex -ParsedScript -ParsedText -ParsedWord ParserSetupHook ParserState +ParseState PartClauseInfo PartClauseMatchStatus PartClauseTarget PartialFileSetState +partition_method_t PartitionBoundInfo PartitionBoundInfoData PartitionBoundSpec @@ -2117,6 +2383,8 @@ PartitionDescData PartitionDirectory PartitionDirectoryEntry PartitionDispatch +PartitionedRelPruneInfo +PartitionedRelPruningData PartitionElem PartitionHashBound PartitionKey @@ -2137,43 +2405,120 @@ PartitionScheme PartitionSpec PartitionStrategy PartitionTupleRouting -PartitionedRelPruneInfo -PartitionedRelPruningData PartitionwiseAggregateType PasswordType Path +PATH PathClauseUsage PathCostComparison PathHashStack PathKey PathKeysComparison PathTarget -PatternInfo -PatternInfoArray Pattern_Prefix_Status Pattern_Type +PatternInfo +PatternInfoArray +PCtxtHandle +pe_test_config +pe_test_escape_func +pe_test_vector +pending_label PendingFsyncEntry +pendingPosition PendingRelDelete PendingRelSync PendingUnlinkEntry PendingWrite PendingWriteback -PerLockTagEntry -PerlInterpreter +PERL_CONTEXT Perl_ppaddr_t +PERL_SI +PerlInterpreter +PerLockTagEntry Permutation PermutationStep PermutationStepBlocker PermutationStepBlockerType +PFN +Pg_abi_values +pg_atomic_flag +pg_atomic_uint32 +pg_atomic_uint64 +pg_be_sasl_mech +pg_category_range +pg_checksum_context +pg_checksum_raw_context +pg_checksum_type +pg_compress_algorithm +pg_compress_specification +pg_conn_host +pg_conn_host_type +pg_conv_map +pg_crc32 +pg_crc32c +pg_cryptohash_ctx +pg_cryptohash_errno +pg_cryptohash_type +pg_ctype_cache +pg_enc +pg_enc2name +pg_encname +pg_fe_sasl_mech +Pg_finfo_record +pg_funcptr_t +pg_gssinfo +pg_hmac_ctx +pg_hmac_errno +PG_init_t +pg_local_to_utf_combined +pg_locale_t +PG_Lock_Status +Pg_magic_struct +pg_mb_radix_tree +pg_md5_ctx +pg_on_exit_callback +pg_prng_state +pg_re_flags +pg_regex_t +pg_regmatch_t +pg_regoff_t +pg_saslprep_rc +pg_sha1_ctx +pg_sha224_ctx +pg_sha256_ctx +pg_sha384_ctx +pg_sha512_ctx +pg_snapshot +pg_special_case +pg_stack_base_t +pg_time_t +pg_time_usec_t +pg_tz +pg_tz_cache +pg_tzenum +pg_unicode_category +pg_unicode_decompinfo +pg_unicode_decomposition +pg_unicode_norminfo +pg_unicode_normprops +pg_unicode_properties +pg_unicode_range +pg_unicode_recompinfo +pg_usec_time_t +pg_utf_to_local_combined +pg_uuid_t +pg_wchar +pg_wchar_tbl PgAioBackend PgAioCtl PgAioHandle PgAioHandleCallbackComplete PgAioHandleCallbackID PgAioHandleCallbackReport -PgAioHandleCallbackStage PgAioHandleCallbacks PgAioHandleCallbacksEntry +PgAioHandleCallbackStage PgAioHandleFlags PgAioHandleState PgAioOp @@ -2190,7 +2535,11 @@ PgAioWaitRef PgAioWorkerControl PgAioWorkerSlot PgAioWorkerSubmissionQueue +PGAlignedBlock +PGAlignedXLogBlock PgArchData +PGAsyncStatusType +PGauthData PgBackendGSSStatus PgBackendSSLStatus PgBackendStatus @@ -2201,7 +2550,25 @@ PgBenchExprType PgBenchFunction PgBenchValue PgBenchValueType +PGCALL2 +PGcancel +PGcancelConn +PGChecksummablePage PgChecksumMode +PGcmdQueueEntry +PGconn +PGContextVisibility +PGCRYPTO_SHA_t +PGdataValue +PGEvent +PGEventConnDestroy +PGEventConnReset +PGEventId +PGEventProc +PGEventRegister +PGEventResultCopy +PGEventResultCreate +PGEventResultDestroy PgFdwAnalyzeState PgFdwConnState PgFdwDirectModifyState @@ -2211,23 +2578,51 @@ PgFdwPathExtraData PgFdwRelationInfo PgFdwSamplingMethod PgFdwScanState +PGFileType +PGFInfoFunction +PGFunction PgIfAddrCallback -PgStatShared_Archiver -PgStatShared_Backend -PgStatShared_BgWriter -PgStatShared_Checkpointer -PgStatShared_Common -PgStatShared_Database -PgStatShared_Function -PgStatShared_HashEntry -PgStatShared_IO -PgStatShared_InjectionPoint -PgStatShared_InjectionPointFixed -PgStatShared_Relation -PgStatShared_ReplSlot -PgStatShared_SLRU -PgStatShared_Subscription -PgStatShared_Wal +PGIOAlignedBlock +PGLoadBalanceType +PGlobjfuncs +PGLZ_HistEntry +PGLZ_Strategy +PGMessageField +PGModuleMagicFunction +PGNoticeHooks +PGnotify +PGoauthBearerRequest +PGOutputData +PGOutputTxnData +pgp_armor_headers_state +PGP_CFB +PGP_Context +PGP_MPI +PGP_PubKey +PGP_S2K +pgParameterStatus +PGPing +PGpipelineStatus +PGPROC +PGpromptOAuthDevice +PGQueryClass +PGresAttDesc +PGresAttValue +PGresParamDesc +PGresult +PGresult_data +PGRUsage +PGSemaphore +PGSemaphoreData +PGShmemHeader +pgsocket +pgsql_thing_t +pgssEntry +pgssGlobalStats +pgssHashKey +pgssSharedState +pgssStoreKind +pgssVersion PgStat_ArchiverStats PgStat_Backend PgStat_BackendPending @@ -2236,6 +2631,8 @@ PgStat_BgWriterStats PgStat_BktypeIO PgStat_CheckpointerStats PgStat_Counter +pgstat_entry_ref_hash_hash +pgstat_entry_ref_hash_iterator PgStat_EntryRef PgStat_EntryRefHashEntry PgStat_FetchConsistency @@ -2245,11 +2642,13 @@ PgStat_HashKey PgStat_IO PgStat_KindInfo PgStat_LocalState +pgstat_page PgStat_PendingDroppedStatsItem PgStat_PendingIO -PgStat_SLRUStats PgStat_ShmemControl +PgStat_SLRUStats PgStat_Snapshot +pgstat_snapshot_hash PgStat_SnapshotEntry PgStat_StatDBEntry PgStat_StatFuncEntry @@ -2264,29 +2663,178 @@ PgStat_TableStatus PgStat_TableXactStatus PgStat_WalCounters PgStat_WalStats +PgStatShared_Archiver +PgStatShared_Backend +PgStatShared_BgWriter +PgStatShared_Checkpointer +PgStatShared_Common +PgStatShared_Database +PgStatShared_Function +PgStatShared_HashEntry +PgStatShared_InjectionPoint +PgStatShared_InjectionPointFixed +PgStatShared_IO +PgStatShared_Relation +PgStatShared_ReplSlot +PgStatShared_SLRU +PgStatShared_Subscription +PgStatShared_Wal +pgstattuple_type +PGTargetServerType +PGTernaryBool +pgthreadlock_t +PGTransactionStatusType +PGVerbosity PgXmlErrorContext PgXmlStrictness -Pg_abi_values -Pg_finfo_record -Pg_magic_struct +pid_t +PIO_STATUS_BLOCK PipeProtoChunk PipeProtoHeader +pivot_field PlaceHolderInfo PlaceHolderVar +PLAINTREE Plan PlanDirectModify_function PlanForeignModify_function PlanInvalItem -PlanRowMark -PlanState PlannedStmt PlannedStmtOrigin +planner_hook_type +planner_setup_hook_type +planner_shutdown_hook_type PlannerGlobal PlannerInfo PlannerParamItem +PlanRowMark +PlanState +planstate_tree_walker_callback +PLAssignStmt +PLcword +plperl_array_info +plperl_call_data +plperl_interp_desc +plperl_proc_desc +plperl_proc_key +plperl_proc_ptr +plperl_query_desc +plperl_query_entry +PLpgSQL_case_when +plpgsql_CastExprHashEntry +plpgsql_CastHashEntry +plpgsql_CastHashKey +PLpgSQL_condition +PLpgSQL_datum +PLpgSQL_datum_type +PLpgSQL_diag_item +PLpgSQL_exception +PLpgSQL_exception_block +PLpgSQL_execstate +PLpgSQL_expr +plpgsql_expr_walker_callback +PLpgSQL_function +PLpgSQL_getdiag_kind +PLpgSQL_if_elsif +PLpgSQL_label_type +PLpgSQL_nsitem +PLpgSQL_nsitem_type +PLpgSQL_plugin +PLpgSQL_promise_type +PLpgSQL_raise_option +PLpgSQL_raise_option_type +PLpgSQL_rec +PLpgSQL_recfield +PLpgSQL_resolve_option +PLpgSQL_row +PLpgSQL_rwopt +PLpgSQL_stmt +PLpgSQL_stmt_assert +PLpgSQL_stmt_assign +PLpgSQL_stmt_block +PLpgSQL_stmt_call +PLpgSQL_stmt_case +PLpgSQL_stmt_close +PLpgSQL_stmt_commit +PLpgSQL_stmt_dynexecute +PLpgSQL_stmt_dynfors +PLpgSQL_stmt_execsql +PLpgSQL_stmt_exit +PLpgSQL_stmt_fetch +PLpgSQL_stmt_forc +PLpgSQL_stmt_foreach_a +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_rollback +PLpgSQL_stmt_type +plpgsql_stmt_walker_callback +PLpgSQL_stmt_while +PLpgSQL_trigtype +PLpgSQL_type +PLpgSQL_type_type +PLpgSQL_var +PLpgSQL_variable +pltcl_call_state +pltcl_interp_desc +pltcl_proc_desc +pltcl_proc_key +pltcl_proc_ptr +pltcl_query_desc +PLwdatum +PLword +PLy_elog_impl_t +PLyArrayToOb +PLyCursorObject +PLyDatumToOb +PLyDatumToObFunc +PLyExceptionEntry +PLyExecutionContext +PLyObject_AsString_t +PLyObToArray +PLyObToDatum +PLyObToDatumFunc +PLyObToDomain +PLyObToScalar +PLyObToTransform +PLyObToTuple +PLyPlanObject +PLyProcedure +PLyProcedureEntry +PLyProcedureKey +PLyResultObject +PLySavedArgs +PLyScalarToOb +PLySRFState +PLySubtransactionData +PLySubtransactionObject +PLyTransformToOb +PLyTrigType +PLyTupleToOb +PLyUnicode_FromStringAndSize_t +PMChild +PMChildPool +PMINIDUMP_CALLBACK_INFORMATION +PMINIDUMP_EXCEPTION_INFORMATION +PMINIDUMP_USER_STREAM_INFORMATION +PMSignalData +PMSignalReason +PMState Point +pointer Pointer PolicyInfo +POLYGON +polymorphic_actuals Pool PopulateArrayContext PopulateArrayState @@ -2297,33 +2845,75 @@ Portal PortalHashEnt PortalStatus PortalStrategy -PostParseColumnRefHook -PostRewriteHook +pos_trgm +post_parse_analyze_hook_type PostgresPollingStatusType PostingItem -PreParseColumnRefHook -PredClass -PredIterInfo -PredIterInfoData -PredXactList +PostParseColumnRefHook +postprocess_result_function +PostRewriteHook +PQArgBlock +PQauthDataHook_type +pqbool +PQcommMethods +PQconninfoOption +PQEnvironmentOption +PQExpBuffer +PQExpBufferData +PQnoticeProcessor +PQnoticeReceiver +PQprintOpt +pqsigfunc +PQsslKeyPassHook_OpenSSL_type +PredClass +PREDICATELOCK PredicateLockData +PREDICATELOCKTAG +PREDICATELOCKTARGET +PREDICATELOCKTARGETTAG PredicateLockTargetType +PredIterInfo +PredIterInfoData +PredXactList PrefetchBufferResult -PrepParallelRestorePtrType -PrepareStmt PreparedStatement +PrepareStmt +PreParseColumnRefHook +PrepParallelRestorePtrType PresortedKeyData PrewarmType PrintExtraTocPtrType -PrintTocDataPtrType PrintfArgType PrintfArgValue PrintfTarget +printQueryOpt +printTableContent +printTableFooter +printTableOpt +printTextFormat +printTextLineFormat +printTextLineWrap +printTextRule +PrintTocDataPtrType PrinttupAttrInfo -PrivTarget +printXheaderWidthType +priv_map PrivateRefCountEntry +PrivTarget +PROC_HDR ProcArrayStruct +process_file_callback_t +PROCESS_INFORMATION +process_sublinks_context +ProcessingMode +ProcessUtility_hook_type +ProcessUtilityContext ProcLangInfo +proclist_head +proclist_mutable_iter +proclist_node +PROCLOCK +PROCLOCKTAG ProcNumber ProcSignalBarrierType ProcSignalHeader @@ -2331,16 +2921,14 @@ ProcSignalReason ProcSignalSlot ProcState ProcWaitStatus -ProcessUtilityContext -ProcessUtility_hook_type -ProcessingMode ProgressCommandType +ProjectionInfo +ProjectionPath ProjectSet ProjectSetPath ProjectSetState -ProjectionInfo -ProjectionPath PromptInterruptContext +promptStatus_t ProtocolVersion PrsStorage PruneFreezeParams @@ -2348,12 +2936,29 @@ PruneFreezeResult PruneReason PruneState PruneStepResult +PSID +PSQL_COMP_CASE +PSQL_ECHO +PSQL_ECHO_HIDDEN +PSQL_ERROR_ROLLBACK +PSQL_SEND_MODE PsqlScanCallbacks PsqlScanQuoteType PsqlScanResult PsqlScanState PsqlScanStateData PsqlSettings +PTEntryArray +pthread_barrier_t +pthread_cond_t +pthread_key_t +pthread_mutex_t +pthread_once_t +pthread_t +PTIterationArray +PTOKEN_PRIVILEGES +PTOKEN_USER +ptrdiff_t Publication PublicationActions PublicationAllObjSpec @@ -2367,27 +2972,48 @@ PublicationRelInfo PublicationRelKind PublicationSchemaInfo PublicationTable +published_rel PublishGencolsType +pull_var_clause_context +pull_varattnos_context +pull_varnos_context +pull_vars_context PullFilter PullFilterOps +pullup_replace_vars_context +pushdown_safe_type +pushdown_safety_info PushFilter PushFilterOps PushFunction +PUTENVPROC +PVIndStats +PVIndVacStatus +PVOID +PVShared +PX_Alias +PX_Cipher +PX_Combo +PX_HMAC +PX_MD +Py_ssize_t PyCFunction PyMethodDef PyModuleDef PyObject -PyTypeObject PyType_Slot PyType_Spec -Py_ssize_t +PyTypeObject +qc_hash_func QPRS_STATE +qsort_arg_comparator +qsort_comparator QTN2QTState QTNode -QUERYTYPE QualCost QualItem Query +query_pathkeys_callback QueryCompletion QueryDesc QueryEnvironment @@ -2400,32 +3026,23 @@ QueryOperator QueryRepresentation QueryRepresentationOperand QuerySource +QUERYTYPE QueueBackendStatus +QueuedMessage QueuePosition +QueueTuple QuitSignalReason -RBTNode -RBTOrderControl -RBTree -RBTreeIterator -REPARSE_JUNCTION_DATA_BUFFER -RIX -RI_CompareHashEntry -RI_CompareKey -RI_ConstraintInfo -RI_QueryHashEntry -RI_QueryKey -RTEKind -RTEPermissionInfo -RWConflict -RWConflictData -RWConflictPoolHeader +radius_attribute +radius_packet Range RangeBound RangeBox RangeFunction RangeIOData RangeQueryClause +Ranges RangeSubselect +rangeTableEntry_used_context RangeTableFunc RangeTableFuncCol RangeTableSample @@ -2435,15 +3052,21 @@ RangeTblRef RangeType RangeVar RangeVarGetRelidCallback -Ranges +rank_context RawColumnDefault RawParseMode RawStmt -ReInitializeDSMForeignScan_function -ReScanForeignScan_function -ReadBufPtrType +rbt_allocfunc +rbt_combiner +rbt_comparator +rbt_freefunc +RBTNode +RBTOrderControl +RBTree +RBTreeIterator ReadBufferMode ReadBuffersOperation +ReadBufPtrType ReadBytePtrType ReadExtraTocPtrType ReadFunc @@ -2468,52 +3091,81 @@ RecursionContext RecursiveUnion RecursiveUnionPath RecursiveUnionState +reduce_outer_joins_partial_state +reduce_outer_joins_pass1_state +reduce_outer_joins_pass2_state +reference RefetchForeignRow_function RefreshMatViewStmt -RegProcedure +regc_wc_probefunc +regex_arc_t +regexp +regexp_matches_ctx Regis RegisNode +registered_buffer RegisteredBgWorker +regproc +RegProcedure ReindexErrorInfo ReindexIndexInfo ReindexObjectType ReindexParams ReindexStmt ReindexType +ReInitializeDSMForeignScan_function +RelabelType RelAggInfo +Relation +RelationData +RelationInfo +RelationPtr +RelationSyncEntry +RelcacheCallbackFunction +ReleaseMatchCB RelFileLocator RelFileLocatorBackend RelFileNumber +RelfilenumberMapEntry +RelfilenumberMapKey RelIdCacheEnt +Relids RelIdToTypeIdCacheEntry RelInfo RelInfoArr RelMapFile RelMapping +RelocationBufferInfo +relopt_bool +relopt_enum +relopt_enum_elt_def +relopt_gen +relopt_int +relopt_kind +relopt_parse_elt +relopt_real +relopt_string +relopt_type +relopt_value RelOptInfo RelOptKind +relopts_validator RelPathStr +RelptrFreePageBtree +RelptrFreePageManager +RelptrFreePageSpanLeader RelStatsInfo RelSyncCallbackFunction RelToCheck RelToCluster -RelabelType -Relation -RelationData -RelationInfo -RelationPtr -RelationSyncEntry -RelcacheCallbackFunction -ReleaseMatchCB -RelfilenumberMapEntry -RelfilenumberMapKey -Relids -RelocationBufferInfo -RelptrFreePageBtree -RelptrFreePageManager -RelptrFreePageSpanLeader +remoteConn +remoteConnHashEnt +remoteDep RemoteSlot +RemoteSyncPosition +remove_nulling_relids_context RenameStmt +rendezvousHashEntry ReopenPtrType ReorderBuffer ReorderBufferApplyChangeCB @@ -2537,15 +3189,18 @@ ReorderBufferStreamPrepareCB ReorderBufferStreamStartCB ReorderBufferStreamStopCB ReorderBufferStreamTruncateCB -ReorderBufferTXN -ReorderBufferTXNByIdEnt ReorderBufferToastEnt ReorderBufferTupleCidEnt ReorderBufferTupleCidKey +ReorderBufferTXN +ReorderBufferTXNByIdEnt ReorderBufferUpdateProgressTxnCB ReorderTuple -RepOriginId +rep ReparameterizeForeignPathByChild_function +REPARSE_JUNCTION_DATA_BUFFER +replace_rte_variables_callback +replace_rte_variables_context ReplaceVarsFromTargetList_context ReplaceVarsNoMatchOption ReplaceWrapOption @@ -2560,7 +3215,12 @@ ReplicationSlotPersistentData ReplicationState ReplicationStateCtl ReplicationStateOnDisk -ResTarget +RepOriginId +report_error_fn +RepSetSeqTuple +RepSetTableTuple +RepSetTuple +ReScanForeignScan_function ReservoirState ReservoirStateData ResourceElem @@ -2570,6 +3230,7 @@ ResourceReleaseCallback ResourceReleaseCallbackItem ResourceReleasePhase ResourceReleasePriority +ResTarget RestoreOptions RestorePass RestrictInfo @@ -2577,29 +3238,44 @@ Result ResultRelInfo ResultState ResultType +ret_type RetainDeadTuplesData RetainDeadTuplesPhase -ReturnSetInfo -ReturnStmt ReturningClause ReturningExpr ReturningOption ReturningOptionKind +ReturnSetInfo +ReturnStmt RevmapContents RevokeRoleGrantAction +rewind_source +rewrite_event RewriteMappingDataEntry RewriteMappingFile RewriteRule RewriteState +rf_context +rfile +RI_CompareHashEntry +RI_CompareKey +RI_ConstraintInfo +RI_QueryHashEntry +RI_QueryKey +RIX +rm_detail_t RmgrData RmgrDescData RmgrId +role_auth_extra +rolename_hash RoleNameEntry RoleNameItem RoleSpec RoleSpecType RoleStmtType RollupData +row_security_policy_hook_type RowCompareExpr RowExpr RowIdentityVarInfo @@ -2607,6 +3283,12 @@ RowMarkClause RowMarkType RowSecurityDesc RowSecurityPolicy +rsv_callback +rt_iter +rt_node_class_test_elem +rt_radix_tree +RTEKind +RTEPermissionInfo RtlGetLastNtStatus_t RtlNtStatusToDosError_t RuleInfo @@ -2615,56 +3297,18 @@ RuleStmt RunMode RunningTransactions RunningTransactionsData +RWConflict +RWConflictData +RWConflictPoolHeader +SampleScan +SampleScanGetSampleSize_function +SampleScanState +saophash_hash SASLStatus -SECURITY_ATTRIBUTES -SECURITY_STATUS -SEG -SERIALIZABLEXACT -SERIALIZABLEXID -SERIALIZABLEXIDTAG -SERVICE_STATUS -SERVICE_TABLE_ENTRY -SID_AND_ATTRIBUTES -SID_IDENTIFIER_AUTHORITY -SID_NAME_USE -SISeg -SIZE_T -SMgrRelation -SMgrRelationData -SMgrSortArray -SOCKADDR -SOCKET -SPELL -SPICallbackArg -SPIExecuteOptions -SPIParseOpenOptions -SPIPlanPtr -SPIPrepareOptions -SPITupleTable -SPLITCOST -SPNode -SPNodeData -SPPageDesc -SQLDropObject -SQLFunctionCache -SQLFunctionCachePtr -SQLFunctionHashEntry -SQLFunctionParseInfo -SQLFunctionParseInfoPtr -SQLValueFunction -SQLValueFunctionOp -SSL -SSLExtensionInfoContext -SSL_CTX -STARTUPINFO -STRLEN -SV -SYNCHRONIZATION_BARRIER -SYSTEM_INFO -SampleScan -SampleScanGetSampleSize_function -SampleScanState +save_buffer +save_locale_t SavedTransactionCharacteristics +SC_HANDLE ScalarArrayOpExpr ScalarArrayOpExprHashEntry ScalarArrayOpExprHashTable @@ -2677,10 +3321,13 @@ ScanKey ScanKeyData ScanKeywordHashFunc ScanKeywordList +ScannerCallbackState ScanState ScanTypeControl -ScannerCallbackState SchemaQuery +scram_state +scram_state_enum +script_error_callback_arg SearchPathCacheEntry SearchPathCacheKey SearchPathMatcher @@ -2688,35 +3335,53 @@ SecBuffer SecBufferDesc SecLabelItem SecLabelStmt +SECURITY_ATTRIBUTES +security_class_t +SECURITY_STATUS SeenRelsEntry +SEG +Selectivity SelectLimit SelectStmt SelectStmtPassthrough -Selectivity SelfJoinCandidate -SemTPadded +sem_t SemiAntiJoinFactors +SemTPadded +sepgsql_context_info_t SeqScan SeqScanState +SeqStateTuple SeqTable SeqTableData SeqType +sequence_magic SequenceItem SerCommitSeqNo SerialControl SerialIOData +SERIALIZABLEXACT SerializableXactHandle -SerializeDestReceiver -SerializeMetrics +SERIALIZABLEXID +SERIALIZABLEXIDTAG SerializedActiveRelMaps SerializedClientConnectionInfo +SerializeDestReceiver SerializedRanges SerializedReindexState SerializedSnapshotData SerializedTransactionState +SerializeMetrics +SERVICE_STATUS +SERVICE_STATUS_HANDLE +SERVICE_TABLE_ENTRY Session SessionBackupState SessionEndType +set_conn_altsock_func +set_conn_oauth_token_func +set_join_pathlist_hook_type +set_rel_pathlist_hook_type SetConstraintState SetConstraintStateData SetConstraintTriggerData @@ -2724,19 +3389,20 @@ SetExprState SetFunctionReturnMode SetOp SetOpCmd +SetOperation +SetOperationStmt SetOpPath SetOpState SetOpStatePerGroup SetOpStatePerGroupData SetOpStatePerInput SetOpStrategy -SetOperation -SetOperationStmt SetQuantifier SetToDefault -SetVarReturningType_context SetupWorkerPtrType -ShDependObjectInfo +SetVarReturningType_context +shared_ts_iter +shared_ts_radix_tree SharedAggInfo SharedBitmapHeapInstrumentation SharedBitmapState @@ -2749,32 +3415,50 @@ SharedIncrementalSortInfo SharedIndexScanInstrumentation SharedInvalCatalogMsg SharedInvalCatcacheMsg -SharedInvalRelSyncMsg +SharedInvalidationMessage SharedInvalRelcacheMsg SharedInvalRelmapMsg +SharedInvalRelSyncMsg SharedInvalSmgrMsg SharedInvalSnapshotMsg -SharedInvalidationMessage SharedJitInstrumentation SharedMemoizeInfo SharedRecordTableEntry SharedRecordTableKey SharedRecordTypmodRegistry +Sharedsort SharedSortInfo SharedTuplestore SharedTuplestoreAccessor SharedTuplestoreChunk SharedTuplestoreParticipant SharedTypmodTableEntry -Sharedsort +ShDependObjectInfo ShellTypeInfo ShippableCacheEntry ShippableCacheKey +shm_mq +shm_mq_handle +shm_mq_iovec +shm_mq_result +shm_toc +shm_toc_entry +shm_toc_estimator +shmem_request_hook_type +shmem_startup_hook_type ShmemIndexEnt ShutdownForeignScan_function ShutdownInformation ShutdownMode +SID_AND_ATTRIBUTES +SID_IDENTIFIER_AUTHORITY +SID_NAME_USE +sig_atomic_t +sigjmp_buf +signal_worker_item +signedbitmapword SignTSVector +sigset_t SimpleActionList SimpleActionListCell SimpleEcontextStackEntry @@ -2786,13 +3470,21 @@ SimpleStats SimpleStringList SimpleStringListCell SingleBoundSortItem +SISeg Size +size_t +SIZE_T SkipPages SkipSupport SkipSupportIncDec SlabBlock SlabContext SlabSlot +slist_head +slist_iter +slist_mutable_iter +slist_node +slock_t SlotInvalidationCauseMap SlotNumber SlotSyncCtxStruct @@ -2805,6 +3497,9 @@ SlruShared SlruSharedData SlruWriteAll SlruWriteAllData +SMgrRelation +SMgrRelationData +SMgrSortArray SnapBuild SnapBuildOnDisk SnapBuildState @@ -2812,11 +3507,16 @@ Snapshot SnapshotData SnapshotType SockAddr +SOCKADDR +SOCKET +socket_set +socklen_t Sort SortBy SortByDir SortByNulls SortCoordinate +SortedPoint SortGroupClause SortItem SortPath @@ -2826,17 +3526,26 @@ SortSupport SortSupportData SortTuple SortTupleComparator -SortedPoint +SpecialJoinInfo +SPELL +spgBulkDeleteState +spgChooseIn +spgChooseOut +spgChooseResultType +spgConfigIn +spgConfigOut +spgInnerConsistentIn +spgInnerConsistentOut SpGistBuildState SpGistCache SpGistDeadTuple SpGistDeadTupleData SpGistInnerTuple SpGistInnerTupleData -SpGistLUPCache SpGistLastUsedPage SpGistLeafTuple SpGistLeafTupleData +SpGistLUPCache SpGistMetaPageData SpGistNodeTuple SpGistNodeTupleData @@ -2848,23 +3557,111 @@ SpGistScanOpaqueData SpGistSearchItem SpGistState SpGistTypeDesc -SpecialJoinInfo +spgLeafConsistentIn +spgLeafConsistentOut +spgNodePtr +spgPickSplitIn +spgPickSplitOut +spgVacPendingItem +spgxlogAddLeaf +spgxlogAddNode +spgxlogMoveLeafs +spgxlogPickSplit +spgxlogSplitTuple +spgxlogState +spgxlogVacuumLeaf +spgxlogVacuumRedirect +spgxlogVacuumRoot +SPICallbackArg +SPIExecuteOptions SpinDelayStatus +SPIParseOpenOptions +SPIPlanPtr +SPIPrepareOptions +SPITupleTable +SPKFlushPosition +SPKRelMetaCacheEntry +split_pathtarget_context +split_pathtarget_item +SPLITCOST SplitInterval SplitLR SplitPageLayout SplitPoint SplitTextOutputData SplitVar +SPNode +SPNodeData +spock_copyState +SpockApplyFunctions +SpockApplyProgress +SpockApplyWorker +SpockConflictResolution +SpockConflictType +SpockContext +SpockExceptionBehaviour +SpockExceptionLog +SpockExceptionLogging +SpockGroupEntry +SpockGroupKey +SpockInterface +SpockLocalNode +SpockNode +SpockOutputData +SpockOutputParamType +SpockOutputSlotGroup +SpockProtoAPI +SpockProtoType +SpockReadonlyMode +SpockRelation +SpockRemoteRel +SpockRepSet +SpockResFileHeader +SpockResolveOption +spockStatsEntry +spockStatsKey +spockStatsType +SpockSubscription +SpockSyncEventMessage +SpockSyncStatus +SpockSyncWorker +SpockTableRepInfo +SpockTupleData +SpockWalMessage +SpockWalMessageSimple +SpockWorker +SpockWorkerStatus +SpockWorkerType +SPPageDesc +sql_error_callback_arg +SQLDropObject +SQLFunctionCache +SQLFunctionCachePtr +SQLFunctionHashEntry +SQLFunctionParseInfo +SQLFunctionParseInfoPtr +sqlparseInfo +sqlparseState +SQLValueFunction +SQLValueFunctionOp +ss_lru_item_t +ss_scan_location_t +ss_scan_locations_t +ssize_t +SSL +SSL_CTX +SSLExtensionInfoContext StackElem +standard_qp_extra StartDataPtrType StartLOPtrType StartLOsPtrType StartReplicationCmd +STARTUPINFO StartupStatusEnum +StateFileChunk StatEntry StatExtEntry -StateFileChunk StatisticExtInfo StatsBuildData StatsData @@ -2873,124 +3670,84 @@ StatsExtInfo StdAnalyzeData StdRdOptIndexCleanup StdRdOptions +stemmer_module Step +stmtCacheEntry StopList +storeInfo +storeRes_func StrategyNumber +stream_stop_callback StreamCtl StreamStopReason +string String StringInfo StringInfoData StripnullState +STRLEN SubLink SubLinkType SubOpts SubPlan SubPlanState -SubRelInfo -SubRemoveRels -SubTransactionId -SubXactCallback -SubXactCallbackItem -SubXactEvent -SubXactInfo SubqueryScan SubqueryScanPath SubqueryScanState SubqueryScanStatus +SubRelInfo +SubRemoveRels SubscriptExecSetup SubscriptExecSteps -SubscriptRoutines -SubscriptTransform SubscriptingRef SubscriptingRefState Subscription SubscriptionInfo SubscriptionRelState -SummarizerReadLocalXLogPrivate -SupportRequestCost -SupportRequestIndexCondition -SupportRequestInlineInFrom -SupportRequestModifyInPlace -SupportRequestOptimizeWindowClause +SubscriptionTuple +SubscriptRoutines +SubscriptTransform +substitute_actual_parameters_context +substitute_actual_parameters_in_from_context +substitute_actual_srf_parameters_context +substitute_grouped_columns_context +substitute_phv_relids_context +SubTransactionCommitTsEntry +SubTransactionId +SubXactCallback +SubXactCallbackItem +SubXactEvent +SubXactInfo +subxids_array_status +SummarizerReadLocalXLogPrivate +SupportRequestCost +SupportRequestIndexCondition +SupportRequestInlineInFrom +SupportRequestModifyInPlace +SupportRequestOptimizeWindowClause SupportRequestRows SupportRequestSelectivity SupportRequestSimplify SupportRequestWFuncMonotonic +SV +symbol Syn +SYNCHRONIZATION_BARRIER +SyncingRelationsState SyncOps SyncRepConfigData SyncRepStandbyData SyncRequestHandler SyncRequestType SyncStandbySlotsConfigData -SyncingRelationsState -SysFKRelationship -SysScanDesc SyscacheCallbackFunction +SysFKRelationship SysloggerStartupData +SysScanDesc +SYSTEM_INFO SystemRowsSamplerData SystemSamplerData SystemTimeSamplerData -TAPtype -TAR_MEMBER -TBMIterateResult -TBMIteratingState -TBMIterator -TBMPrivateIterator -TBMSharedIterator -TBMSharedIteratorState -TBMStatus -TBlockState -TCPattern -TIDBitmap -TM_FailureData -TM_IndexDelete -TM_IndexDeleteOp -TM_IndexStatus -TM_Result -TOKEN_DEFAULT_DACL -TOKEN_INFORMATION_CLASS -TOKEN_PRIVILEGES -TOKEN_USER -TParser -TParserCharTest -TParserPosition -TParserSpecial -TParserState -TParserStateAction -TParserStateActionItem -TQueueDestReceiver -TRGM -TSAnyCacheEntry -TSConfigCacheEntry -TSConfigInfo -TSDictInfo -TSDictionaryCacheEntry -TSExecuteCallback -TSLexeme -TSParserCacheEntry -TSParserInfo -TSQuery -TSQueryData -TSQueryParserState -TSQuerySign -TSReadPointer -TSTemplateInfo -TSTernaryValue -TSTokenTypeItem -TSTokenTypeStorage -TSVector -TSVectorBuildState -TSVectorData -TSVectorParseState -TSVectorStat -TState -TStatus -TStoreState -TU_UpdateIndexes -TXNEntryFile -TYPCATEGORY T_Action T_WorkerStatus TableAmRoutine @@ -3007,15 +3764,26 @@ TableSampleClause TableScanDesc TableScanDescData TableSpaceCacheEntry -TableSpaceOpts +tablespaceinfo TablespaceList TablespaceListCell +TableSpaceOpts TapeBlockTrailer TapeShare +TAPtype +tar_file +TAR_MEMBER +TargetEntry TarMethodData TarMethodFile -TargetEntry -TclExceptionNameMap +TBlockState +TBMIterateResult +TBMIteratingState +TBMIterator +TBMPrivateIterator +TBMSharedIterator +TBMSharedIteratorState +TBMStatus Tcl_CmdInfo Tcl_DString Tcl_FileProc @@ -3026,17 +3794,30 @@ Tcl_NotifierProcs Tcl_Obj Tcl_Size Tcl_Time +TclExceptionNameMap +TCPattern +td_entry +temp_tablespaces_extra TempNamespaceStatus -TestDSMRegistryHashEntry -TestDSMRegistryStruct +teSection +test_re_flags +test_regex_ctx +test_shm_mq_header +test_spec +test_start_function +test128 TestDecodingData TestDecodingTxnData +TestDSMRegistryHashEntry +TestDSMRegistryStruct TestSpec TestValueType +text TextFreq TextPositionState TheLexeme TheSubstitute +TIDBitmap TidExpr TidExprType TidHashKey @@ -3050,40 +3831,72 @@ TidScanState TidStore TidStoreIter TidStoreIterResult +time_t TimeADT +timeKEY TimeLineHistoryCmd TimeLineHistoryEntry TimeLineID TimeOffset -TimeStamp -TimeTzADT -TimeZoneAbbrevTable +timeout_handler_proc +timeout_params TimeoutId TimeoutType +timerCA Timestamp +TimeStamp TimestampTz +TimeTzADT +TimeZoneAbbrevTable +tlist_vinfo +TM_FailureData +TM_IndexDelete +TM_IndexDeleteOp +TM_IndexStatus +TM_Result TmFromChar TmToChar +toast_compress_header ToastAttrInfo ToastCompressionId -ToastTupleContext ToastedAttribute +ToastTupleContext TocEntry +TOKEN_DEFAULT_DACL +TOKEN_INFORMATION_CLASS +TOKEN_PRIVILEGES +TOKEN_USER TokenAuxData +tokenize_error_callback_arg TokenizedAuthLine +TParser +TParserCharTest +TParserPosition +TParserSpecial +TParserState +TParserStateAction +TParserStateActionItem +TQueueDestReceiver TrackItem -TransApplyAction -TransInvalidationInfo -TransState TransactionId TransactionState TransactionStateData TransactionStmt TransactionStmtKind TransamVariablesData +TransApplyAction +transfer_thread_arg +transferMode TransformInfo TransformJsonStringValuesState +TransInvalidationInfo TransitionCaptureState +TransState +tree_mutator_callback +tree_walker_callback +trgm +TRGM +trgm_mb_char TrgmArc TrgmArcInfo TrgmBound @@ -3106,21 +3919,51 @@ TriggerEvent TriggerFlags TriggerInfo TriggerTransition +trivalue TruncateStmt +ts_parserstate +ts_tokenizer +ts_tokentype +TSAnyCacheEntry +TSConfigCacheEntry +TSConfigInfo +TSDictInfo +TSDictionaryCacheEntry +tsearch_readline_state +TSExecuteCallback +tsKEY +TSLexeme TsmRoutine -TupOutputState -TupSortStatus -TupStoreStatus +TSParserCacheEntry +TSParserInfo +TSQuery +TSQueryData +TSQueryParserState +TSQuerySign +TSReadPointer +TState +TStatus +TSTemplateInfo +TSTernaryValue +TSTokenTypeItem +TSTokenTypeStorage +TStoreState +TSVector +TSVectorBuildState +TSVectorData +TSVectorParseState +TSVectorStat +TU_UpdateIndexes TupleConstr TupleConversionMap TupleDesc +tuplehash_hash +tuplehash_iterator TupleHashEntry TupleHashEntryData TupleHashIterator TupleHashTable TupleQueueReader -TupleTableSlot -TupleTableSlotOps TuplesortClusterArg TuplesortDatumArg TuplesortIndexArg @@ -3132,6 +3975,11 @@ TuplesortPublic TuplesortSpaceType Tuplesortstate Tuplestorestate +TupleTableSlot +TupleTableSlotOps +TupOutputState +TupSortStatus +TupStoreStatus TwoPhaseCallback TwoPhaseFileHeader TwoPhaseLockRecord @@ -3143,6 +3991,9 @@ TwoPhasePredicateXactRecord TwoPhaseRecordOnDisk TwoPhaseRmgrId TwoPhaseStateData +TXNEntryFile +TYPCATEGORY +type Type TypeCacheEntry TypeCacheEnumData @@ -3152,1037 +4003,23 @@ TypeFuncClass TypeInfo TypeName TzAbbrevCache +tzEntry +u_char +u_int U32 U8 +ua_page_items +ua_page_stats UChar -UCharIterator -UColAttributeValue -UCollator -UConverter -UErrorCode -UINT -ULARGE_INTEGER -ULONG -ULONG_PTR -UV -UVersionInfo -UnicodeNormalizationForm -UnicodeNormalizationQC -Unique -UniquePath -UniqueRelInfo -UniqueState -UnlistenStmt -UnresolvedTup -UnresolvedTupData -UpdateContext -UpdateStmt -UpgradeTask -UpgradeTaskProcessCB -UpgradeTaskReport -UpgradeTaskSlot -UpgradeTaskSlotState -UpgradeTaskStep -UploadManifestCmd -UpperRelationKind -UserAuth -UserContext -UserMapping -UserOpts -VacAttrStats -VacAttrStatsP -VacDeadItemsInfo -VacErrPhase -VacOptValue -VacuumParams -VacuumRelation -VacuumStmt -ValidIOData -ValidateIndexState -ValidatorModuleResult -ValidatorModuleState -ValidatorShutdownCB -ValidatorStartupCB -ValidatorValidateCB -ValuesScan -ValuesScanState -Var -VarBit -VarChar -VarParamState -VarReturningType -VarString -VarStringSortSupport -Variable -VariableAssignHook -VariableSetKind -VariableSetStmt -VariableShowStmt -VariableSpace -VariableStatData -VariableSubstituteHook -Variables -Vector32 -Vector8 -VersionedQuery -Vfd -ViewCheckOption -ViewOptCheckOption -ViewOptions -ViewStmt -VirtualTransactionId -VirtualTupleTableSlot -VolatileFunctionStatus -Vsrt -WAIT_ORDER -WALAvailability -WALInsertLock -WALInsertLockPadded -WALOpenSegment -WALReadError -WALSegmentCloseCB -WALSegmentContext -WALSegmentOpenCB -WCHAR -WCOKind -WFW_WaitOption -WIDGET -WORD -WORKSTATE -WSABUF -WSADATA -WSANETWORKEVENTS -WSAPROTOCOL_INFO -WaitEvent -WaitEventActivity -WaitEventBufferPin -WaitEventClient -WaitEventCustomCounterData -WaitEventCustomEntryByInfo -WaitEventCustomEntryByName -WaitEventIO -WaitEventIPC -WaitEventSet -WaitEventTimeout -WaitLSNProcInfo -WaitLSNResult -WaitLSNState -WaitLSNType -WaitPMResult -WaitStmt -WalCloseMethod -WalCompression -WalInsertClass -WalLevel -WalRcvData -WalRcvExecResult -WalRcvExecStatus -WalRcvState -WalRcvStreamOptions -WalRcvWakeupReason -WalReceiverConn -WalReceiverFunctionsType -WalSnd -WalSndCtlData -WalSndSendDataCallback -WalSndState -WalSummarizerData -WalSummaryFile -WalSummaryIO -WalTimeSample -WalUsage -WalWriteMethod -WalWriteMethodOps -Walfile -WindowAgg -WindowAggPath -WindowAggState -WindowAggStatus -WindowClause -WindowClauseSortData -WindowDef -WindowFunc -WindowFuncExprState -WindowFuncLists -WindowFuncRunCondition -WindowObject -WindowObjectData -WindowStatePerAgg -WindowStatePerAggData -WindowStatePerFunc -WithCheckOption -WithClause -WordBoundaryNext -WordEntry -WordEntryIN -WordEntryPos -WordEntryPosVector -WordEntryPosVector1 -WorkTableScan -WorkTableScanState -WorkerInfo -WorkerInfoData -WorkerInstrumentation -WorkerJobDumpPtrType -WorkerJobRestorePtrType -Working_State -WriteBufPtrType -WriteBytePtrType -WriteDataCallback -WriteDataPtrType -WriteExtraTocPtrType -WriteFunc -WriteManifestState -WriteTarState -WritebackContext -X509 -X509_EXTENSION -X509_NAME -X509_NAME_ENTRY -X509_STORE -X509_STORE_CTX -XLTW_Oper -XLogCtlData -XLogCtlInsert -XLogDumpConfig -XLogDumpPrivate -XLogLongPageHeader -XLogLongPageHeaderData -XLogPageHeader -XLogPageHeaderData -XLogPageReadCB -XLogPageReadPrivate -XLogPageReadResult -XLogPrefetchStats -XLogPrefetcher -XLogPrefetcherFilter -XLogReaderRoutine -XLogReaderState -XLogRecData -XLogRecPtr -XLogRecStats -XLogRecord -XLogRecordBlockCompressHeader -XLogRecordBlockHeader -XLogRecordBlockImageHeader -XLogRecordBuffer -XLogRecoveryCtlData -XLogRedoAction -XLogSegNo -XLogSource -XLogStats -XLogwrtResult -XLogwrtRqst -XPV -XPVIV -XPVMG -XactCallback -XactCallbackItem -XactEvent -XactLockTableWaitInfo -XidBoundsViolation -XidCacheStatus -XidCommitStatus -XidStatus -XmlExpr -XmlExprOp -XmlOptionType -XmlSerialize -XmlTableBuilderData -YYLTYPE -YYSTYPE -YY_BUFFER_STATE -ZSTD_CCtx -ZSTD_CStream -ZSTD_DCtx -ZSTD_DStream -ZSTD_cParameter -ZSTD_inBuffer -ZSTD_outBuffer -ZstdCompressorState -_SPI_connection -_SPI_plan -__m128i -__m512i -__mmask64 -__time64_t -_dev_t -_ino_t -_locale_t -_resultmap -_stringlist -access_vector_t -acquireLocksOnSubLinks_context -addFkConstraintSides -add_nulling_relids_context -adjust_appendrel_attrs_context -amadjustmembers_function -ambeginscan_function -ambuild_function -ambuildempty_function -ambuildphasename_function -ambulkdelete_function -amcanreturn_function -amcostestimate_function -amendscan_function -amestimateparallelscan_function -amgetbitmap_function -amgettreeheight_function -amgettuple_function -aminitparallelscan_function -aminsert_function -aminsertcleanup_function -ammarkpos_function -amoptions_function -amparallelrescan_function -amproperty_function -amrescan_function -amrestrpos_function -amtranslate_cmptype_function -amtranslate_strategy_function -amvacuumcleanup_function -amvalidate_function -array_iter -array_unnest_fctx -assign_collations_context -astreamer -astreamer_archive_context -astreamer_extractor -astreamer_gzip_decompressor -astreamer_gzip_writer -astreamer_lz4_frame -astreamer_member -astreamer_ops -astreamer_plain_writer -astreamer_recovery_injector -astreamer_tar_archiver -astreamer_tar_parser -astreamer_verify -astreamer_zstd_frame -auth_password_hook_typ -autovac_table -av_relation -avc_cache -avl_dbase -avl_node -avl_tree -avw_dbase -backslashResult -backup_file_entry -backup_file_hash -backup_manifest_info -backup_manifest_option -backup_wal_range -base_yy_extra_type -basebackup_options -bbsink -bbsink_copystream -bbsink_gzip -bbsink_lz4 -bbsink_ops -bbsink_server -bbsink_shell -bbsink_state -bbsink_throttle -bbsink_zstd -bgworker_main_type -bh_node_type -binaryheap -binaryheap_comparator -bitmapword -bits16 -bits32 -bits8 -blockreftable_hash -blockreftable_iterator -bloom_filter -boolKEY -brin_column_state -brin_serialize_callback_type -btree_gin_convert_function -btree_gin_leftmost_function -bytea -cached_re_str -canonicalize_state -cashKEY -catalogid_hash -cb_cleanup_dir -cb_options -cb_tablespace -cb_tablespace_mapping -char16_t -char32_t -check_agg_arguments_context -check_function_callback -check_network_data -check_object_relabel_type -check_password_hook_type -child_process_kind -chr -cmpEntriesArg -codes_t -collation_cache_entry -collation_cache_hash -color -colormaprange -compare_context -config_handle -config_var_value -conn_errorMessage_func -conn_oauth_client_id_func -conn_oauth_client_secret_func -conn_oauth_discovery_uri_func -conn_oauth_issuer_id_func -conn_oauth_scope_func -conn_sasl_state_func -contain_aggs_of_level_context -contain_placeholder_references_context -convert_testexpr_context -copy_data_dest_cb -copy_data_source_cb -core_YYSTYPE -core_yy_extra_type -core_yyscan_t -corrupt_items -cost_qual_eval_context -count_param_references_context -cp_hash_func -create_upper_paths_hook_type -createdb_failure_params -crosstab_HashEnt -crosstab_cat_desc -curl_infotype -curl_socket_t -curl_version_info_data -datapagemap_iterator_t -datapagemap_t -dateKEY -datetkn -dce_uuid_t -dclist_head -decimal -deparse_columns -deparse_context -deparse_expr_cxt -deparse_namespace -derives_hash -dev_t -disassembledLeaf -dlist_head -dlist_iter -dlist_mutable_iter -dlist_node -dm_code -dm_codes -dm_letter -dm_node -ds_state -dsa_area -dsa_area_control -dsa_area_pool -dsa_area_span -dsa_handle -dsa_pointer -dsa_pointer_atomic -dsa_segment_header -dsa_segment_index -dsa_segment_map -dshash_compare_function -dshash_copy_function -dshash_hash -dshash_hash_function -dshash_parameters -dshash_partition -dshash_seq_status -dshash_table -dshash_table_control -dshash_table_handle -dshash_table_item -dsm_control_header -dsm_control_item -dsm_handle -dsm_op -dsm_segment -dsm_segment_detach_callback -duration -eLogType -ean13 -eary -ec_matches_callback_type -ec_member_foreign_arg -ec_member_matches_arg -element_type -emit_log_hook_type -eval_const_expressions_context -exec_thread_arg -execution_state -exit_function -explain_get_index_name_hook_type -explain_per_node_hook_type -explain_per_plan_hook_type -explain_validate_options_hook_type -f_smgr -fasthash_state -fd_set -fe_oauth_state -fe_scram_state -fe_scram_state_enum -fetch_range_request -file_action_t -file_content_type_t -file_entry_t -file_type_t -filehash_hash -filehash_iterator -filemap_t -fill_string_relopt -finalize_primnode_context -find_dependent_phvs_context -find_expr_references_context -fireRIRonSubLink_context -fix_join_expr_context -fix_scan_expr_context -fix_upper_expr_context -fix_windowagg_cond_context -flatten_join_alias_vars_context -flatten_rtes_walker_context -float4 -float4KEY -float8 -float8KEY -floating_decimal_32 -floating_decimal_64 -fmgr_hook_type -foreign_glob_cxt -foreign_loc_cxt -freefunc -fsec_t -gbt_vsrt_arg -gbtree_ninfo -gbtree_vinfo -generate_series_fctx -generate_series_numeric_fctx -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 -gid_t -gin_leafpage_items_state -ginxlogCreatePostingTree -ginxlogDeleteListPages -ginxlogDeletePage -ginxlogInsert -ginxlogInsertDataInternal -ginxlogInsertEntry -ginxlogInsertListPage -ginxlogRecompressDataLeaf -ginxlogSplit -ginxlogUpdateMeta -ginxlogVacuumDataLeafPage -gistxlogDelete -gistxlogPage -gistxlogPageDelete -gistxlogPageReuse -gistxlogPageSplit -gistxlogPageUpdate -grouping_sets_data -gseg_picksplit_item -gss_OID_set -gss_buffer_desc -gss_cred_id_t -gss_cred_usage_t -gss_ctx_id_t -gss_key_value_element_desc -gss_key_value_set_desc -gss_name_t -gtrgm_consistent_cache -gzFile -heap_page_items_state -help_handler -hlCheck -hstoreCheckKeyLen_t -hstoreCheckValLen_t -hstorePairs_t -hstoreUniquePairs_t -hstoreUpgrade_t -hyperLogLogState -ifState -import_error_callback_arg -indexed_tlist -inet -inetKEY -inet_struct -initRowMethod -init_function -inline_cte_walker_context -inline_error_callback_arg -ino_t -inquiry -instr_time -int128 -int16 -int16KEY -int16_t -int2vector -int32 -int32KEY -int32_t -int64 -int64KEY -int64_t -int8 -int8_t -int8x16_t -int_fast32_t -int_fast64_t -internalPQconninfoOption -intmax_t -intptr_t -intset_internal_node -intset_leaf_node -intset_node -intvKEY -io_callback_fn -io_stat_col -itemIdCompact -itemIdCompactData -iterator -jmp_buf -join_search_hook_type -json_aelem_action -json_manifest_error_callback -json_manifest_per_file_callback -json_manifest_per_wal_range_callback -json_manifest_system_identifier_callback -json_manifest_version_callback -json_ofield_action -json_scalar_action -json_struct_action -keepwal_entry -keepwal_hash -keyEntryData -key_t -lclContext -lclTocEntry -leafSegmentInfo -leaf_item -libpq_gettext_func -libpq_source -libpqsrv_PGresult -line_t -lineno_t -list_sort_comparator -loc_chunk -local_relopt -local_relopts -local_source -local_ts_iter -local_ts_radix_tree -locale_t -locate_agg_of_level_context -locate_var_of_level_context -locate_windowfunc_context -logstreamer_param -lquery -lquery_level -lquery_variant -ltree -ltree_gist -ltree_level -ltxtquery -mXactCacheEnt -mac8KEY -macKEY -macaddr -macaddr8 -macaddr_sortsupport_state -manifest_data -manifest_file -manifest_files_hash -manifest_files_iterator -manifest_wal_range -manifest_writer -map_variable_attnos_context -max_parallel_hazard_context -mb2wchar_with_len_converter -mbchar_verifier -mbcharacter_incrementer -mbdisplaylen_converter -mblen_converter -mbstr_verifier -memoize_hash -memoize_iterator -metastring -missing_cache_key -mix_data_t -mode_t -movedb_failure_params -multirange_bsearch_comparison -multirange_unnest_fctx -mxact -mxtruncinfo -needs_fmgr_hook_type -network_sortsupport_state -nl_item -nodeitem -normal_rand_fctx -nsphash_hash -ntile_context -nullingrel_info -numeric -object_access_hook_type -object_access_hook_type_str -off_t -oidKEY -oidvector -on_dsm_detach_callback -on_exit_nicely_callback -openssl_tls_init_hook_typ -ossl_EVP_cipher_func -other -output_type -overexplain_options -pagetable_hash -pagetable_iterator -pairingheap -pairingheap_comparator -pairingheap_node -pam_handle_t -parallel_worker_main_type -parse_error_callback_arg -partition_method_t -pe_test_config -pe_test_escape_func -pe_test_vector -pendingPosition -pending_label -pgParameterStatus -pg_atomic_flag -pg_atomic_uint32 -pg_atomic_uint64 -pg_be_sasl_mech -pg_category_range -pg_checksum_context -pg_checksum_raw_context -pg_checksum_type -pg_compress_algorithm -pg_compress_specification -pg_conn_host -pg_conn_host_type -pg_conv_map -pg_crc32 -pg_crc32c -pg_cryptohash_ctx -pg_cryptohash_errno -pg_cryptohash_type -pg_ctype_cache -pg_enc -pg_enc2name -pg_encname -pg_fe_sasl_mech -pg_funcptr_t -pg_gssinfo -pg_hmac_ctx -pg_hmac_errno -pg_local_to_utf_combined -pg_locale_t -pg_mb_radix_tree -pg_md5_ctx -pg_on_exit_callback -pg_prng_state -pg_re_flags -pg_regex_t -pg_regmatch_t -pg_regoff_t -pg_saslprep_rc -pg_sha1_ctx -pg_sha224_ctx -pg_sha256_ctx -pg_sha384_ctx -pg_sha512_ctx -pg_snapshot -pg_special_case -pg_stack_base_t -pg_time_t -pg_time_usec_t -pg_tz -pg_tz_cache -pg_tzenum -pg_unicode_category -pg_unicode_decompinfo -pg_unicode_decomposition -pg_unicode_norminfo -pg_unicode_normprops -pg_unicode_properties -pg_unicode_range -pg_unicode_recompinfo -pg_usec_time_t -pg_utf_to_local_combined -pg_uuid_t -pg_wchar -pg_wchar_tbl -pgp_armor_headers_state -pgsocket -pgsql_thing_t -pgssEntry -pgssGlobalStats -pgssHashKey -pgssSharedState -pgssStoreKind -pgssVersion -pgstat_entry_ref_hash_hash -pgstat_entry_ref_hash_iterator -pgstat_page -pgstat_snapshot_hash -pgstattuple_type -pgthreadlock_t -pid_t -pivot_field -planner_hook_type -planner_setup_hook_type -planner_shutdown_hook_type -planstate_tree_walker_callback -plperl_array_info -plperl_call_data -plperl_interp_desc -plperl_proc_desc -plperl_proc_key -plperl_proc_ptr -plperl_query_desc -plperl_query_entry -plpgsql_CastExprHashEntry -plpgsql_CastHashEntry -plpgsql_CastHashKey -plpgsql_expr_walker_callback -plpgsql_stmt_walker_callback -pltcl_call_state -pltcl_interp_desc -pltcl_proc_desc -pltcl_proc_key -pltcl_proc_ptr -pltcl_query_desc -pointer -polymorphic_actuals -pos_trgm -post_parse_analyze_hook_type -postprocess_result_function -pqbool -pqsigfunc -printQueryOpt -printTableContent -printTableFooter -printTableOpt -printTextFormat -printTextLineFormat -printTextLineWrap -printTextRule -printXheaderWidthType -priv_map -process_file_callback_t -process_sublinks_context -proclist_head -proclist_mutable_iter -proclist_node -promptStatus_t -pthread_barrier_t -pthread_cond_t -pthread_key_t -pthread_mutex_t -pthread_once_t -pthread_t -ptrdiff_t -published_rel -pull_var_clause_context -pull_varattnos_context -pull_varnos_context -pull_vars_context -pullup_replace_vars_context -pushdown_safe_type -pushdown_safety_info -qc_hash_func -qsort_arg_comparator -qsort_comparator -query_pathkeys_callback -radius_attribute -radius_packet -rangeTableEntry_used_context -rank_context -rbt_allocfunc -rbt_combiner -rbt_comparator -rbt_freefunc -reduce_outer_joins_partial_state -reduce_outer_joins_pass1_state -reduce_outer_joins_pass2_state -reference -regc_wc_probefunc -regex_arc_t -regexp -regexp_matches_ctx -registered_buffer -regproc -relopt_bool -relopt_enum -relopt_enum_elt_def -relopt_gen -relopt_int -relopt_kind -relopt_parse_elt -relopt_real -relopt_string -relopt_type -relopt_value -relopts_validator -remoteConn -remoteConnHashEnt -remoteDep -remove_nulling_relids_context -rendezvousHashEntry -rep -replace_rte_variables_callback -replace_rte_variables_context -report_error_fn -ret_type -rewind_source -rewrite_event -rf_context -rfile -rm_detail_t -role_auth_extra -rolename_hash -row_security_policy_hook_type -rsv_callback -rt_iter -rt_node_class_test_elem -rt_radix_tree -saophash_hash -save_buffer -save_locale_t -scram_state -scram_state_enum -script_error_callback_arg -security_class_t -sem_t -sepgsql_context_info_t -sequence_magic -set_conn_altsock_func -set_conn_oauth_token_func -set_join_pathlist_hook_type -set_rel_pathlist_hook_type -shared_ts_iter -shared_ts_radix_tree -shm_mq -shm_mq_handle -shm_mq_iovec -shm_mq_result -shm_toc -shm_toc_entry -shm_toc_estimator -shmem_request_hook_type -shmem_startup_hook_type -sig_atomic_t -sigjmp_buf -signedbitmapword -sigset_t -size_t -slist_head -slist_iter -slist_mutable_iter -slist_node -slock_t -socket_set -socklen_t -spgBulkDeleteState -spgChooseIn -spgChooseOut -spgChooseResultType -spgConfigIn -spgConfigOut -spgInnerConsistentIn -spgInnerConsistentOut -spgLeafConsistentIn -spgLeafConsistentOut -spgNodePtr -spgPickSplitIn -spgPickSplitOut -spgVacPendingItem -spgxlogAddLeaf -spgxlogAddNode -spgxlogMoveLeafs -spgxlogPickSplit -spgxlogSplitTuple -spgxlogState -spgxlogVacuumLeaf -spgxlogVacuumRedirect -spgxlogVacuumRoot -split_pathtarget_context -split_pathtarget_item -sql_error_callback_arg -sqlparseInfo -sqlparseState -ss_lru_item_t -ss_scan_location_t -ss_scan_locations_t -ssize_t -standard_qp_extra -stemmer_module -stmtCacheEntry -storeInfo -storeRes_func -stream_stop_callback -string -substitute_actual_parameters_context -substitute_actual_parameters_in_from_context -substitute_actual_srf_parameters_context -substitute_grouped_columns_context -substitute_phv_relids_context -subxids_array_status -symbol -tablespaceinfo -tar_file -td_entry -teSection -temp_tablespaces_extra -test128 -test_re_flags -test_regex_ctx -test_shm_mq_header -test_spec -test_start_function -text -timeKEY -time_t -timeout_handler_proc -timeout_params -timerCA -tlist_vinfo -toast_compress_header -tokenize_error_callback_arg -transferMode -transfer_thread_arg -tree_mutator_callback -tree_walker_callback -trgm -trgm_mb_char -trivalue -tsKEY -ts_parserstate -ts_tokenizer -ts_tokentype -tsearch_readline_state -tuplehash_hash -tuplehash_iterator -type -tzEntry -u_char -u_int -ua_page_items -ua_page_stats +UCharIterator uchr +UColAttributeValue +UCollator +UConverter +UErrorCode uid_t +UINT +uint_fast64_t uint128 uint16 uint16_t @@ -4196,30 +4033,129 @@ uint64x2_t uint8 uint8_t uint8x16_t -uint_fast64_t uintptr_t +ULARGE_INTEGER +ULONG +ULONG_PTR +unicode_linestyle +UnicodeNormalizationForm +UnicodeNormalizationQC unicodeStyleBorderFormat unicodeStyleColumnFormat unicodeStyleFormat unicodeStyleRowFormat -unicode_linestyle +Unique +UniquePath +UniqueRelInfo +UniqueState unit_conversion +UnlistenStmt unlogged_relation_entry +UnresolvedTup +UnresolvedTupData +UpdateContext +UpdateStmt +UpgradeTask +UpgradeTaskProcessCB +UpgradeTaskReport +UpgradeTaskSlot +UpgradeTaskSlotState +UpgradeTaskStep +UploadManifestCmd +UpperRelationKind +UserAuth +UserContext +UserMapping +UserOpts utf_local_conversion_func -uuidKEY uuid_rc_t uuid_sortsupport_state uuid_t +uuidKEY +UV +UVersionInfo va_list +VacAttrStats +VacAttrStatsP +VacDeadItemsInfo +VacErrPhase +VacOptValue vacuumingOptions +VacuumParams +VacuumRelation +VacuumStmt validate_string_relopt +ValidateIndexState +ValidatorModuleResult +ValidatorModuleState +ValidatorShutdownCB +ValidatorStartupCB +ValidatorValidateCB +ValidIOData +ValuesScan +ValuesScanState +Var varatt_expanded varattrib_1b varattrib_1b_e varattrib_4b +VarBit +VarChar +Variable +VariableAssignHook +Variables +VariableSetKind +VariableSetStmt +VariableShowStmt +VariableSpace +VariableStatData +VariableSubstituteHook +VarParamState +VarReturningType +VarString +VarStringSortSupport vartag_external vbits +Vector32 +Vector8 verifier_context +VersionedQuery +Vfd +ViewCheckOption +ViewOptCheckOption +ViewOptions +ViewStmt +VirtualTransactionId +VirtualTupleTableSlot +VolatileFunctionStatus +Vsrt +WAIT_ORDER +WaitEvent +WaitEventActivity +WaitEventBufferPin +WaitEventClient +WaitEventCustomCounterData +WaitEventCustomEntryByInfo +WaitEventCustomEntryByName +WaitEventIO +WaitEventIPC +WaitEventSet +WaitEventTimeout +WaitLSNProcInfo +WaitLSNResult +WaitLSNState +WaitLSNType +WaitPMResult +WaitStmt +WALAvailability +WalCloseMethod +WalCompression +Walfile +WalInsertClass +WALInsertLock +WALInsertLockPadded +WalLevel +WALOpenSegment walrcv_alter_slot_fn walrcv_check_conninfo_fn walrcv_connect_fn @@ -4237,14 +4173,104 @@ walrcv_receive_fn walrcv_send_fn walrcv_server_version_fn walrcv_startstreaming_fn -wchar2mb_with_len_converter +WalRcvData +WalRcvExecResult +WalRcvExecStatus +WalRcvState +WalRcvStreamOptions +WalRcvWakeupReason +WALReadError +WalReceiverConn +WalReceiverFunctionsType +WALSegmentCloseCB +WALSegmentContext +WALSegmentOpenCB +WalSnd +WalSndCtlData +WalSndSendDataCallback +WalSndState +WalSummarizerData +WalSummaryFile +WalSummaryIO +WalTimeSample +WalUsage +WalWriteMethod +WalWriteMethodOps +WCHAR wchar_t +wchar2mb_with_len_converter +WCOKind +WFW_WaitOption +WIDGET +win32_deadchild_waitinfo +WindowAgg +WindowAggPath +WindowAggState +WindowAggStatus +WindowClause +WindowClauseSortData +WindowDef +WindowFunc +WindowFuncExprState +WindowFuncLists +WindowFuncRunCondition +WindowObject +WindowObjectData +WindowStatePerAgg +WindowStatePerAggData +WindowStatePerFunc wint_t +WithCheckOption +WithClause +WORD +WordBoundaryNext +WordEntry +WordEntryIN +WordEntryPos +WordEntryPosVector +WordEntryPosVector1 worker_state +WorkerInfo +WorkerInfoData +WorkerInstrumentation +WorkerJobDumpPtrType +WorkerJobRestorePtrType +Workflow +Working_State +WORKSTATE worktable +WorkTableScan +WorkTableScanState wrap +WritebackContext +WriteBufPtrType +WriteBytePtrType +WriteDataCallback +WriteDataPtrType +WriteExtraTocPtrType +WriteFunc +WriteManifestState +WriteTarState ws_file_info ws_options +WSABUF +WSADATA +WSANETWORKEVENTS +WSAPROTOCOL_INFO +X509 +X509_EXTENSION +X509_NAME +X509_NAME_ENTRY +X509_STORE +X509_STORE_CTX +XactCallback +XactCallbackItem +XactEvent +XactLockTableWaitInfo +XidBoundsViolation +XidCacheStatus +XidCommitStatus +XidStatus xl_brin_createidx xl_brin_desummarize xl_brin_insert @@ -4334,34 +4360,77 @@ xl_xact_xinfo xlhp_freeze_plan xlhp_freeze_plans xlhp_prune_items +XLogCtlData +XLogCtlInsert +XLogDumpConfig +XLogDumpPrivate +XLogLongPageHeader +XLogLongPageHeaderData +XLogPageHeader +XLogPageHeaderData +XLogPageReadCB +XLogPageReadPrivate +XLogPageReadResult +XLogPrefetcher +XLogPrefetcherFilter +XLogPrefetchStats +XLogReaderRoutine +XLogReaderState +XLogRecData +XLogRecord +XLogRecordBlockCompressHeader +XLogRecordBlockHeader +XLogRecordBlockImageHeader +XLogRecordBuffer +XLogRecoveryCtlData +XLogRecPtr +XLogRecStats +XLogRedoAction +XLogSegNo +XLogSource +XLogStats +XLogwrtResult +XLogwrtRqst +XLTW_Oper xmlBuffer xmlBufferPtr xmlChar xmlDocPtr xmlError xmlErrorPtr +XmlExpr +XmlExprOp xmlExternalEntityLoader xmlGenericErrorFunc xmlNodePtr xmlNodeSetPtr +XmlOptionType xmlParserCtxtPtr xmlParserInputPtr xmlSaveCtxt xmlSaveCtxtPtr +XmlSerialize xmlStructuredErrorFunc +XmlTableBuilderData xmlTextWriter xmlTextWriterPtr +xmltype xmlXPathCompExprPtr xmlXPathContextPtr xmlXPathObjectPtr -xmltype xpath_workspace +XPV +XPVIV +XPVMG xsltSecurityPrefsPtr xsltStylesheetPtr xsltTransformContextPtr +YY_BUFFER_STATE yy_parser yy_size_t +YYLTYPE yyscan_t +YYSTYPE z_stream z_streamp zic_t @@ -4685,3 +4754,11 @@ OutputPluginParamKey /* FailoverSlotFilterKey SpockWalMessage +ZSTD_CCtx +ZSTD_cParameter +ZSTD_CStream +ZSTD_DCtx +ZSTD_DStream +ZSTD_inBuffer +ZSTD_outBuffer +ZstdCompressorState From 4d540aa3e9dfd79c09235f6c73aa76f96790f4d3 Mon Sep 17 00:00:00 2001 From: "Andrei V. Lepikhov" Date: Wed, 7 Jan 2026 11:10:10 +0100 Subject: [PATCH 2/4] Overhaul pgindent infrastructure with cross-version typedefs and CI check Replace the minimal gen-typedefs.sh with a full run-pgindent.sh script that fetches typedef lists from the PostgreSQL buildfarm for PG 16, 17, and 18, merges them with Spock-specific typedefs extracted from the source tree, and runs pgindent on all .c/.h files. PG 15 is excluded because pg_bsd_indent is absent from its source tree. The script supports a --check flag for CI dry-run mode and uses set -euo pipefail with fail-fast error handling on curl failures. It uses absolute paths so it works from any working directory. Add .github/workflows/pgindent.yml: a standalone pull-request workflow that builds pg_bsd_indent from PG 18 inside the existing Docker image and runs ./run-pgindent.sh --check. Rewrite utils/pgindent/README.md with full documentation covering quick start, prerequisites, cross-version typedef rationale, CI integration, and the files list. Name previously anonymous enums: - SpockResolveOption in include/spock_conflict.h - GroupProgressTupDescColumns in include/spock_group.h Regenerate typedefs.list from the merged PG 16-18 buildfarm output. --- .github/workflows/pgindent.yml | 40 ++++ include/spock_conflict.h | 2 +- include/spock_conflict_stat.h | 2 +- include/spock_group.h | 2 +- utils/pgindent/README.md | 77 ++++++-- utils/pgindent/gen-typedefs.sh | 17 -- utils/pgindent/run-pgindent.sh | 123 ++++++++++++ utils/pgindent/typedefs.list | 341 ++++++++------------------------- 8 files changed, 310 insertions(+), 294 deletions(-) create mode 100644 .github/workflows/pgindent.yml delete mode 100755 utils/pgindent/gen-typedefs.sh create mode 100755 utils/pgindent/run-pgindent.sh diff --git a/.github/workflows/pgindent.yml b/.github/workflows/pgindent.yml new file mode 100644 index 000000000..8d07b793c --- /dev/null +++ b/.github/workflows/pgindent.yml @@ -0,0 +1,40 @@ +name: pgindent formatting check +run-name: Check pgindent formatting + +on: + workflow_dispatch: + pull_request: + types: [opened, synchronize, reopened] + +permissions: + contents: read + +jobs: + pgindent-check: + runs-on: ubuntu-latest + + steps: + - name: Checkout spock + uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} + + - name: Set up Docker + # Codacy wants us to use full commit SHA. This is for v3 + uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3 + + - name: Build docker image (PG 18) + run: | + docker build \ + --build-arg PGVER=18 \ + -t spock-pgindent -f tests/docker/Dockerfile-step-1.el9 . + + - name: Run pgindent --check + run: | + docker run --rm spock-pgindent bash -c ' + source ~/.bashrc + make -C $PG_SRCDIR/src/tools/pg_bsd_indent > /dev/null + export PATH="$PG_SRCDIR/src/tools/pgindent:$PG_SRCDIR/src/tools/pg_bsd_indent:$PATH" + cd ~/spock/utils/pgindent + ./run-pgindent.sh --check + ' diff --git a/include/spock_conflict.h b/include/spock_conflict.h index a6fe9b6c7..339ec54dd 100644 --- a/include/spock_conflict.h +++ b/include/spock_conflict.h @@ -30,7 +30,7 @@ typedef enum SpockConflictResolution SpockResolution_Skip } SpockConflictResolution; -typedef enum +typedef enum SpockResolveOption { SPOCK_RESOLVE_ERROR, SPOCK_RESOLVE_APPLY_REMOTE, diff --git a/include/spock_conflict_stat.h b/include/spock_conflict_stat.h index 492f84465..7aef13f3b 100644 --- a/include/spock_conflict_stat.h +++ b/include/spock_conflict_stat.h @@ -43,4 +43,4 @@ extern Spock_Stat_StatSubEntry *spock_stat_fetch_stat_subscription(Oid subid); #endif /* PG_VERSION_NUM >= 180000 */ -#endif /* SPOCK_CONFLICT_STAT_H */ \ No newline at end of file +#endif /* SPOCK_CONFLICT_STAT_H */ diff --git a/include/spock_group.h b/include/spock_group.h index a8b8ed361..3756c3f00 100644 --- a/include/spock_group.h +++ b/include/spock_group.h @@ -64,7 +64,7 @@ typedef struct SpockGroupKey /* * Columns for the UI routine get_apply_group_progress. */ -typedef enum +typedef enum GroupProgressTupDescColumns { GP_DBOID = 0, GP_NODE_ID, diff --git a/utils/pgindent/README.md b/utils/pgindent/README.md index 958ab0730..e770b34d1 100644 --- a/utils/pgindent/README.md +++ b/utils/pgindent/README.md @@ -1,12 +1,67 @@ -## Running pgindent on spock files - -1. Generate typedefs.list by running `./gen-typedefs.sh`. This will pull the latest postgres typedefs from postgres buildfarm and add Spock-related typedefs to it by scanning the source code. -2. Install pg_bsd_indent: navigate to src/tools/pg_bsd_indent in your postgres source code and run: - ``` - make install prefix=/usr/local - ``` -3. Assuming you have pgindent in your path, run this from spock base directory: - ``` - pgindent --typedefs=pgindent/typedefs.list - ``` +## Running pgindent on Spock source files +### Quick start + +```bash +cd utils/pgindent +./run-pgindent.sh # format all .c/.h files +./run-pgindent.sh --check # dry-run: exit 1 if any file would change +``` + +### What the script does + +1. Fetches PostgreSQL core typedefs from the buildfarm for PG 16, 17, + and 18. PG 15 is excluded because its typedefs are a subset of + PG 16's. This ensures that types introduced in any supported release + are recognized by pgindent. +2. Extracts Spock-specific typedefs (`typedef struct/enum/union`) from the + source tree. +3. Merges, deduplicates, and writes the result to `typedefs.list`. +4. Runs `pgindent` on all `.c` and `.h` files. + +### Prerequisites + +Both tools come from the PostgreSQL source tree: + +- **pg_bsd_indent** — build from `src/tools/pg_bsd_indent/` (available in + PG 16+; not present in PG 15): + ```bash + cd /path/to/postgresql/src/tools/pg_bsd_indent + make && make install prefix=/usr/local + ``` +- **pgindent** — add `src/tools/pgindent/` to your `PATH`, or symlink: + ```bash + ln -s /path/to/postgresql/src/tools/pgindent/pgindent /usr/local/bin/ + ``` + +Use PG 16 or later for building these tools. The indent binary is +stable across versions; the typedef differences are handled by fetching +per-branch lists from the buildfarm. + +### Cross-version typedefs + +Different PostgreSQL major versions define different structs and enums. +Running pgindent with only one version's typedefs produces formatting +that differs from another version. The script solves this by merging +typedef lists from all supported PG branches: + +```text +https://buildfarm.postgresql.org/cgi-bin/typedefs.pl?branch=REL_16_STABLE +https://buildfarm.postgresql.org/cgi-bin/typedefs.pl?branch=REL_17_STABLE +https://buildfarm.postgresql.org/cgi-bin/typedefs.pl?branch=REL_18_STABLE +``` + +When Spock adds or drops support for a PG major version, +update the `PG_BRANCHES` variable in `run-pgindent.sh`. + +### CI + +The GitHub Actions workflow `.github/workflows/pgindent.yml` runs +`./run-pgindent.sh --check` on every pull request to `main`. It builds +`pg_bsd_indent` from a pinned PG version (currently PG 18) and fetches +typedefs for all supported branches. + +### Files + +- `run-pgindent.sh` — the main script +- `typedefs.list` — committed to track changes in the combined typedef set diff --git a/utils/pgindent/gen-typedefs.sh b/utils/pgindent/gen-typedefs.sh deleted file mode 100755 index 329ac01b7..000000000 --- a/utils/pgindent/gen-typedefs.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -# Fetch PostgreSQL core typedefs from buildfarm -curl https://buildfarm.postgresql.org/cgi-bin/typedefs.pl > typedefs.list - -# Extract Spock-specific typedefs from source code and append them -grep -nri "typedef struct" ../../ --include="*.c" --include="*.h" | grep -v "{" | awk '{print $3}' >> typedefs.list -grep -nri "typedef enum" ../../ --include="*.c" --include="*.h" | grep -v "{" | awk '{print $3}' >> typedefs.list -grep -nri "typedef union" ../../ --include="*.c" --include="*.h" | grep -v "{" | awk '{print $3}' >> typedefs.list - -# Remove duplicates and sort -sort typedefs.list | uniq > typedefs.list.tmp && mv typedefs.list.tmp typedefs.list - -find ../../ -type f \( -name "*.c" -o -name "*.h" \) -print0 \ - | xargs -0 pgindent --typedefs typedefs.list - - diff --git a/utils/pgindent/run-pgindent.sh b/utils/pgindent/run-pgindent.sh new file mode 100755 index 000000000..b7a16abe1 --- /dev/null +++ b/utils/pgindent/run-pgindent.sh @@ -0,0 +1,123 @@ +#!/bin/bash +# +# run-pgindent.sh — Format Spock source code with pgindent. +# +# Fetches PostgreSQL core typedefs from the buildfarm for every supported +# major version, extracts Spock-specific typedefs from the source tree, +# merges them into a single typedefs.list, and runs pgindent on all .c/.h +# files. +# +# Only git-tracked files are considered. The tree routinely contains +# untracked build artefacts — cluster-upgrade/bin/pg*/ holds complete +# PostgreSQL installations — and feeding core headers such as llvmjit.h +# or s_lock.h to pgindent produces spurious failures. +# +# Prerequisites: +# - pg_bsd_indent in PATH (build from src/tools/pg_bsd_indent in PG source) +# - pgindent in PATH (from src/tools/pgindent/pgindent in PG source) +# +# Usage: +# ./run-pgindent.sh # format all files +# ./run-pgindent.sh --check # dry-run: exit 1 if any file would change +# + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +SPOCK_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" + +if ! git -C "$SPOCK_ROOT" rev-parse --is-inside-work-tree >/dev/null 2>&1; then + echo "ERROR: $SPOCK_ROOT is not a git work tree; this script selects" >&2 + echo " files via 'git ls-files' and cannot run without it." >&2 + exit 1 +fi + +# git ls-files reports paths relative to the repository root. +cd "$SPOCK_ROOT" + +# Supported PostgreSQL major versions for typedef fetching. PG 15 is +# excluded because its typedefs are a subset of PG 16's. Update this +# list when Spock adds or drops support for a major version. +PG_BRANCHES="REL_16_STABLE REL_17_STABLE REL_18_STABLE REL_19_STABLE" + +BUILDFARM_URL="https://buildfarm.postgresql.org/cgi-bin/typedefs.pl" +TYPEDEFS="$SCRIPT_DIR/typedefs.list" +TMPFILE=$(mktemp) +FILELIST="$TMPFILE.files" + +trap 'rm -f "$TMPFILE" "$TMPFILE".*' EXIT + +# ------------------------------------------------------------------ +# 0. Collect the files to format +# ------------------------------------------------------------------ +git ls-files -z -- '*.c' '*.h' > "$FILELIST" +NFILES=$(tr -dc '\0' < "$FILELIST" | wc -c | tr -d '[:space:]') +if [ "$NFILES" -eq 0 ]; then + echo "ERROR: no tracked .c/.h files found under $SPOCK_ROOT" >&2 + exit 1 +fi +echo "Formatting $NFILES tracked source files" + +# ------------------------------------------------------------------ +# 1. Fetch PostgreSQL core typedefs from buildfarm for each branch +# ------------------------------------------------------------------ +echo "Fetching PostgreSQL core typedefs from buildfarm..." +> "$TMPFILE" +for branch in $PG_BRANCHES; do + echo " $branch" + curl -sf "$BUILDFARM_URL?branch=$branch" >> "$TMPFILE" || { + echo "ERROR: failed to fetch typedefs for $branch from $BUILDFARM_URL" >&2 + exit 1 + } +done +CORE_COUNT=$(wc -l < "$TMPFILE" | tr -d '[:space:]') + +# ------------------------------------------------------------------ +# 2. Extract Spock-specific typedefs from source code +# ------------------------------------------------------------------ +# Two forms are recognised: +# - single-line: "typedef struct/enum/union Foo" with no brace on the +# same line names Foo directly. +# - multi-line: "typedef struct/enum/union" (optionally with a struct +# tag) alone on its line opens a definition whose typedef name only +# appears later, on its closing "} Foo;" line at column 0. Missing +# this form silently drops every anonymous typedef enum/struct in +# the tree, which is most of them. +echo "Extracting Spock typedefs from source..." +xargs -0 awk ' + $1 == "typedef" && + ($2 == "struct" || $2 == "enum" || $2 == "union") && + $0 !~ /{/ && $3 != "" { print $3 } + + /^[[:space:]]*typedef[[:space:]]+(struct|enum|union)([[:space:]]+[A-Za-z_][A-Za-z0-9_]*)?[[:space:]]*$/ { pending = 1; next } + pending && match($0, /^}[[:space:]]*([A-Za-z_][A-Za-z0-9_]*)[[:space:]]*;/, m) { print m[1]; pending = 0 } + /^}/ { pending = 0 } +' < "$FILELIST" >> "$TMPFILE" +SPOCK_COUNT=$(( $(wc -l < "$TMPFILE") - CORE_COUNT )) +if [ "$SPOCK_COUNT" -eq 0 ]; then + echo "ERROR: no Spock typedefs extracted from $NFILES files;" >&2 + echo " the typedef scan is broken, refusing to indent." >&2 + exit 1 +fi +echo " $SPOCK_COUNT Spock typedef names" + +# ------------------------------------------------------------------ +# 3. Merge, deduplicate, and clean up +# ------------------------------------------------------------------ +# Remove empty lines, comment fragments, and duplicates +grep -v '^$' "$TMPFILE" | grep -v '^/\*' | sort -u > "$TYPEDEFS" +echo "Generated $(wc -l < "$TYPEDEFS" | tr -d '[:space:]') typedefs in typedefs.list" + +# ------------------------------------------------------------------ +# 4. Run pgindent +# ------------------------------------------------------------------ +PGINDENT_ARGS=(--typedefs "$TYPEDEFS") + +if [[ "${1:-}" == "--check" ]]; then + echo "Running pgindent in check mode..." + PGINDENT_ARGS+=(--check --diff) +fi + +xargs -0 pgindent "${PGINDENT_ARGS[@]}" < "$FILELIST" + +echo "Done." diff --git a/utils/pgindent/typedefs.list b/utils/pgindent/typedefs.list index f451ea0dc..845e50cc0 100644 --- a/utils/pgindent/typedefs.list +++ b/utils/pgindent/typedefs.list @@ -1,16 +1,9 @@ - __m128i __m512i __mmask64 -__time64_t -_dev_t -_ino_t -_locale_t -_resultmap _SPI_connection _SPI_plan _stringlist -/* A_ArrayExpr A_Const A_Expr @@ -19,13 +12,10 @@ A_Indices A_Indirection A_Star AbsoluteTime -ACCESS_ALLOWED_ACE access_vector_t AccessMethodInfo AccessPriv Acl -ACL -ACL_SIZE_INFORMATION AclItem AclMaskHow AclMode @@ -55,7 +45,6 @@ AfterTriggersTableData AfterTriggersTransData Agg AggClauseCosts -AggClauseInfo AggInfo AggPath Aggref @@ -75,6 +64,7 @@ AllocateDesc AllocateDescKind AllocBlock AllocFreeListLink +allocfunc AllocPointer AllocSet AllocSetContext @@ -85,7 +75,6 @@ AlterDatabaseSetStmt AlterDatabaseStmt AlterDefaultPrivilegesStmt AlterDomainStmt -AlterDomainType AlteredTableInfo AlterEnumStmt AlterEventTrigStmt @@ -197,6 +186,7 @@ ArrayIOData ArrayIterator ArrayMapState ArrayMetaState +ArrayParseState ArraySortCachedInfo ArraySubWorkspace ArrayToken @@ -244,6 +234,7 @@ AutoVacOpts AutoVacuumShmemStruct AutoVacuumWorkItem AutoVacuumWorkItemType +AuxProcType AV av_relation avc_cache @@ -251,7 +242,8 @@ avl_dbase avl_node avl_tree avw_dbase -BackendParameters +Backend +BackendId BackendStartupData BackendState BackendType @@ -273,6 +265,7 @@ basebackup_options BaseBackupCmd BaseBackupTargetHandle BaseBackupTargetType +BasicArchiveData bbsink bbsink_copystream bbsink_gzip @@ -283,6 +276,19 @@ bbsink_shell bbsink_state bbsink_throttle bbsink_zstd +bbstreamer +bbstreamer_archive_context +bbstreamer_extractor +bbstreamer_gzip_decompressor +bbstreamer_gzip_writer +bbstreamer_lz4_frame +bbstreamer_member +bbstreamer_ops +bbstreamer_plain_writer +bbstreamer_recovery_injector +bbstreamer_tar_archiver +bbstreamer_tar_parser +bbstreamer_zstd_frame BeginDirectModify_function BeginForeignInsert_function BeginForeignModify_function @@ -363,10 +369,8 @@ BloomTuple BMS_Comparison BMS_Membership BN_CTX -BOOL BoolAggState Boolean -BOOLEAN BooleanTest BoolExpr BoolExprType @@ -415,8 +419,6 @@ BTParallelScanDesc BTPendingFSM BTPS_State BTReadPageState -btree_gin_convert_function -btree_gin_leftmost_function BtreeCheckState BtreeLastVisibleEntry BtreeLevel @@ -425,6 +427,7 @@ BTScanInsertData BTScanKeyPreproc BTScanOpaque BTScanOpaqueData +BTScanPos BTScanPosData BTScanPosItem BTShared @@ -444,8 +447,6 @@ BufferAccessStrategy BufferAccessStrategyType BufferCacheNumaContext BufferCacheNumaRec -BufferCacheOsPagesContext -BufferCacheOsPagesRec BufferCachePagesContext BufferCachePagesRec BufferDesc @@ -465,8 +466,6 @@ BulkWriteBuffer BulkWriteState BumpBlock BumpContext -BY_HANDLE_FILE_INFORMATION -BYTE bytea CAC_state cached_re_str @@ -510,14 +509,12 @@ CEOUC_WAIT_MODE CFuncHashTabEntry ChangeVarNodes_callback ChangeVarNodes_context -CHAR -char16_t -char32_t check_agg_arguments_context check_function_callback check_network_data check_object_relabel_type check_password_hook_type +check_ungrouped_columns_context CheckPoint CHECKPOINT CheckpointerRequest @@ -567,7 +564,6 @@ CollectedATSubcmd CollectedCommand CollectedCommandType CollInfo -CollParam color colormaprange ColorTrgm @@ -597,7 +593,6 @@ CompactAttribute compare_context CompareScalarsContext CompareType -CompiledExprState CompositeIOData CompositeTypeStmt CompoundAffixFlag @@ -624,7 +619,6 @@ conn_sasl_state_func ConnCacheEntry ConnCacheKey ConnectionStateEnum -ConnectionTiming ConnParams ConnStatusType ConnType @@ -638,7 +632,6 @@ ConstrCheck ConstrType contain_aggs_of_level_context contain_placeholder_references_context -CONTEXT ControlData ControlFileData ConversionLocation @@ -655,13 +648,13 @@ CopyFormatOptions CopyFromRoutine CopyFromState CopyFromStateData +CopyHeaderChoice CopyInsertMethod CopyLogVerbosityChoice CopyMethod CopyMultiInsertBuffer CopyMultiInsertInfo CopyOnErrorChoice -CopySeqResult CopySource CopyStmt CopyToRoutine @@ -716,8 +709,6 @@ CreateTableSpaceStmt CreateTransformStmt CreateTrigStmt CreateUserMappingStmt -CredHandle -CRITICAL_SECTION crosstab_cat_desc crosstab_HashEnt CRSSnapshotAction @@ -730,7 +721,6 @@ CteScanState CTESearchClause CteState CtlCommand -CtxtHandle CURL curl_infotype curl_socket_t @@ -796,6 +786,7 @@ DependencyType derives_hash DeserialIOData DestReceiver +destructor dev_t DH DictInt @@ -805,6 +796,7 @@ DictSnowball DictSubState DictSyn DictThesaurus +digit DimensionInfo DIR DirectoryMethodData @@ -820,19 +812,14 @@ dlist_head dlist_iter dlist_mutable_iter dlist_node -dm_code -dm_codes dm_letter dm_node -DNSServiceErrorType -DNSServiceRef DocRepresentation DomainConstraintCache DomainConstraintRef DomainConstraintState DomainConstraintType DomainIOData -DoState DoStmt DR_copy DR_intorel @@ -878,7 +865,6 @@ dsm_segment dsm_segment_detach_callback DSMRegistryCtxStruct DSMRegistryEntry -DSMREntryType DumpableAcl DumpableObject DumpableObjectType @@ -888,13 +874,12 @@ DumpCtx DumpId DumpOptions DumpSignalInformation -duration -DWORD DynamicFileList DynamicZoneAbbrev EachState ean13 eary +EC_KEY ec_matches_callback_type ec_member_foreign_arg ec_member_matches_arg @@ -903,7 +888,6 @@ ECDerivesKey Edge EDGE EditableObjectType -element_type ElementsState eLogType emit_log_hook_type @@ -954,7 +938,6 @@ EVP_MD_CTX EVP_PKEY ExceptionLabelMap ExceptionMap -exec_thread_arg ExecAuxRowMark ExecEvalBoolSubroutine ExecEvalSubroutine @@ -1019,6 +1002,7 @@ ExtensibleNodeEntry ExtensibleNodeMethods ExtensionControlFile ExtensionInfo +ExtensionSiblingCache ExtensionVersionInfo f_smgr FailoverSlotFilter @@ -1028,7 +1012,6 @@ FakeRelCacheEntryData fasthash_state FastPathStrongRelationLockData fd_set -FD_SET FDWCollateState FdwInfo FdwRoutine @@ -1037,14 +1020,12 @@ fe_scram_state fe_scram_state_enum fetch_range_request FetchDirection -FetchDirectionKeywords FetchStmt FieldSelect FieldStore File FILE file_action_t -file_content_type_t file_entry_t file_type_t FileBackupMethod @@ -1056,7 +1037,6 @@ filemap_t FileNameMap FileSet FileTag -FILETIME fill_string_relopt FilterCommandType FilterObjectType @@ -1069,7 +1049,6 @@ FindColsContext FindSplitData FindSplitStrat fireRIRonSubLink_context -First fix_join_expr_context fix_scan_expr_context fix_upper_expr_context @@ -1088,10 +1067,14 @@ float8KEY floating_decimal_32 floating_decimal_64 FlushPosition +fmAggrefPtr +fmExprContextCallbackFunction fmgr_hook_type FmgrBuiltin FmgrHookEventType FmgrInfo +fmNodePtr +fmStringInfo ForBothCellState ForBothState ForEachState @@ -1233,7 +1216,6 @@ FormData_pg_user_mapping FormData_spock_depend FormExtraData_pg_attribute ForThreeState -FPI FreeBlockNumberArray freefunc FreeListData @@ -1244,7 +1226,6 @@ FreePageBtreeLeafKey FreePageBtreeSearchResult FreePageManager FreePageSpanLeader -From FromCharDateMode FromExpr fsec_t @@ -1334,7 +1315,6 @@ GinQualCounts GinScanEntry GinScanItem GinScanKey -GinScanKeyData GinScanOpaque GinScanOpaqueData GinSegmentInfo @@ -1402,11 +1382,9 @@ GrantRoleStmt GrantStmt GrantTargetType Group -GROUP GroupByOrdering GroupClause grouping_sets_data -GroupingExprInfo GroupingFunc GroupingSet GroupingSetData @@ -1418,6 +1396,7 @@ GroupProgressTupDescColumns GroupResultPath GroupState GroupVarInfo +growable_trgm_array gseg_picksplit_item gss_buffer_desc gss_cred_id_t @@ -1448,7 +1427,6 @@ GucStringCheckHook GV gzFile GzipCompressorState -HANDLE Hash HASH_SEQ_STATUS HASHACTION @@ -1461,6 +1439,7 @@ HashCompareFunc HashCopyFunc HASHCTL HASHELEMENT +hashfunc HASHHDR HashIndexStat HashInstrumentation @@ -1486,6 +1465,7 @@ HashSkewBucket HashState HashValueFunc HbaLine +hbaPort HE HeadlineJsonState HeadlineParsedText @@ -1508,14 +1488,10 @@ help_handler HEntry HIST_ENTRY HistControl -HKEY hlCheck -HLOCAL HMAC_CTX -HMODULE HOldEntry HotStandbyState -HRESULT HSParser HSpool HStore @@ -1530,7 +1506,6 @@ HV hyperLogLogState I32 ICU_Convert_Func -ID IdentifierLookup IdentifySystemCmd IdentLine @@ -1596,9 +1571,7 @@ InferClause InferenceElem INFIX InfoItem -InheritableSocket InhInfo -init_function InitializeDSMForeignScan_function InitializeWorkerForeignScan_function initRowMethod @@ -1607,7 +1580,6 @@ InjectionPointCacheEntry InjectionPointCallback InjectionPointCondition InjectionPointConditionType -InjectionPointData InjectionPointEntry InjectionPointsCtl InjectionPointSharedState @@ -1622,8 +1594,6 @@ inquiry InsertStmt instr_time Instrumentation -int_fast32_t -int_fast64_t int128 INT128 Int128AggState @@ -1640,16 +1610,13 @@ int64KEY int8 int8_t Int8TransTypeData -int8x16_t Integer IntegerSet -INTERFACE_INFO InternalDefaultACL InternalGrant internalPQconninfoOption Interval IntervalAggState -intmax_t IntoClause intptr_t IntRBTreeNode @@ -1663,7 +1630,6 @@ InvalMessageArray IO io_callback_fn io_stat_col -IO_STATUS_BLOCK IOContext IOFuncSelector IoMethodOps @@ -1673,13 +1639,11 @@ IpcMemoryId IpcMemoryKey IpcMemoryState IPCompareMethod -IpcSemaphoreId -IpcSemaphoreKey IsForeignPathAsyncCapable_function IsForeignRelUpdatable_function IsForeignScanParallelSafe_function -IsoConnInfo IspellDict +Item ITEM ItemArray ItemId @@ -1691,7 +1655,6 @@ ItemPointerData IterateDirectModify_function IterateForeignScan_function IterateJsonStringValuesState -iterator IV JEntry JHashState @@ -1702,10 +1665,6 @@ JitProviderCompileExprCB JitProviderInit JitProviderReleaseContextCB JitProviderResetAfterErrorCB -jmp_buf -JOBOBJECT_BASIC_LIMIT_INFORMATION -JOBOBJECT_BASIC_UI_RESTRICTIONS -JOBOBJECT_SECURITY_LIMIT_INFORMATION Join join_search_hook_type JoinCostWorkspace @@ -1722,6 +1681,8 @@ json_aelem_action json_manifest_error_callback json_manifest_per_file_callback json_manifest_per_wal_range_callback +json_manifest_perfile_callback +json_manifest_perwalrange_callback json_manifest_system_identifier_callback json_manifest_version_callback json_ofield_action @@ -1844,7 +1805,6 @@ KeySuffix KeyWord LabelProvider LagTracker -LARGE_INTEGER LargeObjectDesc Latch LauncherLastStartTimesEntry @@ -1865,7 +1825,6 @@ LexemeKey LexizeData libpq_gettext_func libpq_source -libpqsrv_PGresult LibraryInfo Limit LimitOption @@ -1874,7 +1833,6 @@ LimitState LimitStateCond LINE line_t -lineno_t List list_sort_comparator ListCell @@ -1883,41 +1841,6 @@ ListenAction ListenActionKind ListenStmt ListParsedLex -LLVMAttributeRef -LLVMBasicBlockRef -LLVMBuilderRef -LLVMContextRef -LLVMErrorRef -LLVMIntPredicate -LLVMJitContext -LLVMJITEventListenerRef -LLVMJitHandle -LLVMMemoryBufferRef -LLVMModuleRef -LLVMOrcCLookupSet -LLVMOrcCSymbolMapPair -LLVMOrcCSymbolMapPairs -LLVMOrcDefinitionGeneratorRef -LLVMOrcExecutionSessionRef -LLVMOrcJITDylibLookupFlags -LLVMOrcJITDylibRef -LLVMOrcJITTargetAddress -LLVMOrcJITTargetMachineBuilderRef -LLVMOrcLLJITBuilderRef -LLVMOrcLLJITRef -LLVMOrcLookupKind -LLVMOrcLookupStateRef -LLVMOrcMaterializationUnitRef -LLVMOrcObjectLayerRef -LLVMOrcResourceTrackerRef -LLVMOrcSymbolStringPoolRef -LLVMOrcThreadSafeContextRef -LLVMOrcThreadSafeModuleRef -LLVMPassBuilderOptionsRef -LLVMTargetMachineRef -LLVMTargetRef -LLVMTypeRef -LLVMValueRef LoadStmt loc_chunk local_relopt @@ -1936,7 +1859,6 @@ LocalTransactionId locate_agg_of_level_context locate_var_of_level_context locate_windowfunc_context -Location LocationIndex LocationLen LOCK @@ -1999,7 +1921,6 @@ LogicalRepRelation LogicalRepRelId LogicalRepRelMapEntry LogicalRepRollbackPreparedTxnData -LogicalRepSequenceInfo LogicalRepStreamAbortData LogicalRepTupleData LogicalRepTyp @@ -2010,24 +1931,11 @@ LogicalSlotInfo LogicalSlotInfoArr LogicalTape LogicalTapeSet -LogLevel LogOpts LogStmtLevel logstreamer_param LoInfo -LONG -LONG_PTR -LookupSet LOOP -LPARAM -LPBYTE -LPCWSTR -LPSERVICE_STATUS -LPSTR -LPTHREAD_START_ROUTINE -LPTSTR -LPVOID -LPWSTR lquery lquery_level lquery_variant @@ -2041,7 +1949,7 @@ ltree_level LtreeGistOptions LtreeSignature ltxtquery -LUID +LVPagePruneState LVRelState LVSavedErrInfo LWLock @@ -2080,9 +1988,6 @@ mbdisplaylen_converter mblen_converter mbstr_verifier MBuf -MCVHashContext -MCVHashEntry -MCVHashTable_hash MCVItem MCVList MdfdVec @@ -2096,7 +2001,6 @@ MemoizeKey MemoizePath MemoizeState MemoizeTuple -MEMORY_BASIC_INFORMATION MemoryChunk MemoryContext MemoryContextCallback @@ -2124,8 +2028,6 @@ MergeWhenClause MetaCommand metastring MGVTBL -MINIDUMP_TYPE -MINIDUMPWRITEDUMP MinimalTuple MinimalTupleData MinimalTupleTableSlot @@ -2138,6 +2040,7 @@ MinMaxOp MinmaxOpaque missing_cache_key mix_data_t +mixedStruct MJEvalResult mode_t ModifyTable @@ -2172,9 +2075,7 @@ mxtruncinfo Name NamedArgExpr NameData -NamedDSAState -NamedDSHState -NamedDSMState +NamedLWLockTranche NamedLWLockTrancheRequest NamedTuplestoreScan NamedTuplestoreScanState @@ -2193,26 +2094,21 @@ NextSampleBlock_function NextSampleTuple_function NextValueExpr nl_item -NLSVERSIONINFOEX Node NODE NodeInterfaceTuple nodeitem NodeTag NodeTuple -NoneCompressorState NonEmptyRange normal_rand_fctx Notification +NotificationHash NotificationList NotifyStmt -NotnullHashEntry nsphash_hash Nsrt -NtDllRoutine -NtFlushBuffersFileEx_t ntile_context -NTSTATUS NullableDatum NullIfExpr nullingrel_info @@ -2244,6 +2140,7 @@ ObjectAddressAndFlags ObjectAddresses ObjectAddressExtra ObjectAddressStack +ObjectClass ObjectPropertyType ObjectType ObjectWithArgs @@ -2256,6 +2153,8 @@ oidKEY OidOptions oidvector OkeysState +OldSnapshotControlData +OldSnapshotTimeMapping OldToNewMapping OldToNewMappingData OM_uint32 @@ -2268,6 +2167,7 @@ OnConflictClause OnConflictExpr OnConflictSetState OP +OpBtreeInterpretation OpClassCacheEnt OpclassInfo openssl_tls_init_hook_typ @@ -2290,7 +2190,6 @@ OSInfo ossl_EVP_cipher_func OSSLCipher OSSLDigest -other OuterJoinClauseInfo output_type OutputPluginCallbacks @@ -2299,10 +2198,9 @@ OutputPluginOutputType OutputPluginParam OutputPluginParamKey overexplain_options -OVERLAPPED +OverrideSearchPath +OverrideStackEntry OverridingKind -PACE_HEADER -PACL Page PageData PageGistNSN @@ -2334,6 +2232,7 @@ ParallelHashJoinBatch ParallelHashJoinBatchAccessor ParallelHashJoinState ParallelIndexScanDesc +ParallelReadyList ParallelSlot ParallelSlotArray ParallelSlotResultHandler @@ -2366,6 +2265,7 @@ ParseLoc ParseNamespaceColumn ParseNamespaceItem ParseParamRefHook +parser_context ParserSetupHook ParserState ParseState @@ -2419,10 +2319,6 @@ Pattern_Prefix_Status Pattern_Type PatternInfo PatternInfoArray -PCtxtHandle -pe_test_config -pe_test_escape_func -pe_test_vector pending_label PendingFsyncEntry pendingPosition @@ -2436,16 +2332,13 @@ Perl_ppaddr_t PERL_SI PerlInterpreter PerLockTagEntry -Permutation -PermutationStep -PermutationStepBlocker -PermutationStepBlockerType PFN Pg_abi_values pg_atomic_flag pg_atomic_uint32 pg_atomic_uint64 pg_be_sasl_mech +pg_case_map pg_category_range pg_checksum_context pg_checksum_raw_context @@ -2462,6 +2355,7 @@ pg_cryptohash_errno pg_cryptohash_type pg_ctype_cache pg_enc +pg_enc2gettext pg_enc2name pg_encname pg_fe_sasl_mech @@ -2471,12 +2365,13 @@ pg_gssinfo pg_hmac_ctx pg_hmac_errno PG_init_t +pg_int64 pg_local_to_utf_combined +PG_Locale_Strategy pg_locale_t PG_Lock_Status Pg_magic_struct pg_mb_radix_tree -pg_md5_ctx pg_on_exit_callback pg_prng_state pg_re_flags @@ -2484,11 +2379,6 @@ pg_regex_t pg_regmatch_t pg_regoff_t pg_saslprep_rc -pg_sha1_ctx -pg_sha224_ctx -pg_sha256_ctx -pg_sha384_ctx -pg_sha512_ctx pg_snapshot pg_special_case pg_stack_base_t @@ -2508,6 +2398,7 @@ pg_unicode_recompinfo pg_usec_time_t pg_utf_to_local_combined pg_uuid_t +pg_wc_probefunc pg_wchar pg_wchar_tbl PgAioBackend @@ -2613,7 +2504,6 @@ PGresult PGresult_data PGRUsage PGSemaphore -PGSemaphoreData PGShmemHeader pgsocket pgsql_thing_t @@ -2640,11 +2530,13 @@ PgStat_FunctionCallUsage PgStat_FunctionCounts PgStat_HashKey PgStat_IO +PgStat_Kind PgStat_KindInfo PgStat_LocalState pgstat_page PgStat_PendingDroppedStatsItem PgStat_PendingIO +PgStat_PendingWalStats PgStat_ShmemControl PgStat_SLRUStats PgStat_Snapshot @@ -2688,7 +2580,6 @@ PGVerbosity PgXmlErrorContext PgXmlStrictness pid_t -PIO_STATUS_BLOCK PipeProtoChunk PipeProtoHeader pivot_field @@ -2700,10 +2591,7 @@ PlanDirectModify_function PlanForeignModify_function PlanInvalItem PlannedStmt -PlannedStmtOrigin planner_hook_type -planner_setup_hook_type -planner_shutdown_hook_type PlannerGlobal PlannerInfo PlannerParamItem @@ -2733,8 +2621,10 @@ PLpgSQL_exception_block PLpgSQL_execstate PLpgSQL_expr plpgsql_expr_walker_callback +PLpgSQL_func_hashkey PLpgSQL_function PLpgSQL_getdiag_kind +plpgsql_HashEnt PLpgSQL_if_elsif PLpgSQL_label_type PLpgSQL_nsitem @@ -2818,23 +2708,19 @@ PLySRFState PLySubtransactionData PLySubtransactionObject PLyTransformToOb -PLyTrigType PLyTupleToOb PLyUnicode_FromStringAndSize_t PMChild PMChildPool -PMINIDUMP_CALLBACK_INFORMATION -PMINIDUMP_EXCEPTION_INFORMATION -PMINIDUMP_USER_STREAM_INFORMATION PMSignalData PMSignalReason PMState Point -pointer Pointer PolicyInfo POLYGON polymorphic_actuals +PolyNumAggState Pool PopulateArrayContext PopulateArrayState @@ -2850,7 +2736,6 @@ post_parse_analyze_hook_type PostgresPollingStatusType PostingItem PostParseColumnRefHook -postprocess_result_function PostRewriteHook PQArgBlock PQauthDataHook_type @@ -2903,7 +2788,6 @@ PrivTarget PROC_HDR ProcArrayStruct process_file_callback_t -PROCESS_INFORMATION process_sublinks_context ProcessingMode ProcessUtility_hook_type @@ -2931,12 +2815,10 @@ PromptInterruptContext promptStatus_t ProtocolVersion PrsStorage -PruneFreezeParams PruneFreezeResult PruneReason PruneState PruneStepResult -PSID PSQL_COMP_CASE PSQL_ECHO PSQL_ECHO_HIDDEN @@ -2950,26 +2832,20 @@ PsqlScanStateData PsqlSettings PTEntryArray pthread_barrier_t -pthread_cond_t pthread_key_t pthread_mutex_t pthread_once_t pthread_t PTIterationArray -PTOKEN_PRIVILEGES -PTOKEN_USER ptrdiff_t Publication PublicationActions -PublicationAllObjSpec -PublicationAllObjType PublicationDesc PublicationInfo PublicationObjSpec PublicationObjSpecType PublicationPartOpt PublicationRelInfo -PublicationRelKind PublicationSchemaInfo PublicationTable published_rel @@ -2986,10 +2862,8 @@ pushdown_safety_info PushFilter PushFilterOps PushFunction -PUTENVPROC PVIndStats PVIndVacStatus -PVOID PVShared PX_Alias PX_Cipher @@ -2998,9 +2872,11 @@ PX_HMAC PX_MD Py_ssize_t PyCFunction +PyMappingMethods PyMethodDef PyModuleDef PyObject +PySequenceMethods PyType_Slot PyType_Spec PyTypeObject @@ -3094,10 +2970,8 @@ RecursiveUnionState reduce_outer_joins_partial_state reduce_outer_joins_pass1_state reduce_outer_joins_pass2_state -reference RefetchForeignRow_function RefreshMatViewStmt -regc_wc_probefunc regex_arc_t regexp regexp_matches_ctx @@ -3115,7 +2989,6 @@ ReindexStmt ReindexType ReInitializeDSMForeignScan_function RelabelType -RelAggInfo Relation RelationData RelationInfo @@ -3190,15 +3063,14 @@ ReorderBufferStreamStartCB ReorderBufferStreamStopCB ReorderBufferStreamTruncateCB ReorderBufferToastEnt +ReorderBufferTupleBuf ReorderBufferTupleCidEnt ReorderBufferTupleCidKey ReorderBufferTXN ReorderBufferTXNByIdEnt ReorderBufferUpdateProgressTxnCB ReorderTuple -rep ReparameterizeForeignPathByChild_function -REPARSE_JUNCTION_DATA_BUFFER replace_rte_variables_callback replace_rte_variables_context ReplaceVarsFromTargetList_context @@ -3223,6 +3095,7 @@ RepSetTuple ReScanForeignScan_function ReservoirState ReservoirStateData +ResourceArray ResourceElem ResourceOwner ResourceOwnerDesc @@ -3237,10 +3110,6 @@ RestrictInfo Result ResultRelInfo ResultState -ResultType -ret_type -RetainDeadTuplesData -RetainDeadTuplesPhase ReturningClause ReturningExpr ReturningOption @@ -3277,6 +3146,7 @@ RoleStmtType RollupData row_security_policy_hook_type RowCompareExpr +RowCompareType RowExpr RowIdentityVarInfo RowMarkClause @@ -3289,12 +3159,9 @@ rt_node_class_test_elem rt_radix_tree RTEKind RTEPermissionInfo -RtlGetLastNtStatus_t -RtlNtStatusToDosError_t RuleInfo RuleLock RuleStmt -RunMode RunningTransactions RunningTransactionsData RWConflict @@ -3308,7 +3175,6 @@ SASLStatus save_buffer save_locale_t SavedTransactionCharacteristics -SC_HANDLE ScalarArrayOpExpr ScalarArrayOpExprHashEntry ScalarArrayOpExprHashTable @@ -3331,19 +3197,14 @@ script_error_callback_arg SearchPathCacheEntry SearchPathCacheKey SearchPathMatcher -SecBuffer -SecBufferDesc SecLabelItem SecLabelStmt -SECURITY_ATTRIBUTES security_class_t -SECURITY_STATUS SeenRelsEntry SEG Selectivity SelectLimit SelectStmt -SelectStmtPassthrough SelfJoinCandidate sem_t SemiAntiJoinFactors @@ -3372,9 +3233,6 @@ SerializedReindexState SerializedSnapshotData SerializedTransactionState SerializeMetrics -SERVICE_STATUS -SERVICE_STATUS_HANDLE -SERVICE_TABLE_ENTRY Session SessionBackupState SessionEndType @@ -3450,9 +3308,6 @@ ShmemIndexEnt ShutdownForeignScan_function ShutdownInformation ShutdownMode -SID_AND_ATTRIBUTES -SID_IDENTIFIER_AUTHORITY -SID_NAME_USE sig_atomic_t sigjmp_buf signal_worker_item @@ -3470,10 +3325,10 @@ SimpleStats SimpleStringList SimpleStringListCell SingleBoundSortItem +SinglePartitionSpec SISeg Size size_t -SIZE_T SkipPages SkipSupport SkipSupportIncDec @@ -3507,8 +3362,6 @@ Snapshot SnapshotData SnapshotType SockAddr -SOCKADDR -SOCKET socket_set socklen_t Sort @@ -3584,6 +3437,7 @@ SPKRelMetaCacheEntry split_pathtarget_context split_pathtarget_item SPLITCOST +SplitedPageLayout SplitInterval SplitLR SplitPageLayout @@ -3592,12 +3446,12 @@ SplitTextOutputData SplitVar SPNode SPNodeData -spock_copyState -SpockApplyFunctions +Spock_Stat_PendingSubEntry +Spock_Stat_StatSubEntry +Spock_Stat_Subscription SpockApplyProgress SpockApplyWorker SpockConflictResolution -SpockConflictType SpockContext SpockExceptionBehaviour SpockExceptionLog @@ -3630,8 +3484,6 @@ SpockTupleData SpockWalMessage SpockWalMessageSimple SpockWorker -SpockWorkerStatus -SpockWorkerType SPPageDesc sql_error_callback_arg SQLDropObject @@ -3657,7 +3509,6 @@ StartDataPtrType StartLOPtrType StartLOsPtrType StartReplicationCmd -STARTUPINFO StartupStatusEnum StateFileChunk StatEntry @@ -3671,7 +3522,6 @@ StdAnalyzeData StdRdOptIndexCleanup StdRdOptions stemmer_module -Step stmtCacheEntry StopList storeInfo @@ -3680,7 +3530,6 @@ StrategyNumber stream_stop_callback StreamCtl StreamStopReason -string String StringInfo StringInfoData @@ -3708,7 +3557,6 @@ SubscriptionTuple SubscriptRoutines SubscriptTransform substitute_actual_parameters_context -substitute_actual_parameters_in_from_context substitute_actual_srf_parameters_context substitute_grouped_columns_context substitute_phv_relids_context @@ -3722,7 +3570,6 @@ subxids_array_status SummarizerReadLocalXLogPrivate SupportRequestCost SupportRequestIndexCondition -SupportRequestInlineInFrom SupportRequestModifyInPlace SupportRequestOptimizeWindowClause SupportRequestRows @@ -3732,8 +3579,7 @@ SupportRequestWFuncMonotonic SV symbol Syn -SYNCHRONIZATION_BARRIER -SyncingRelationsState +SyncingTablesState SyncOps SyncRepConfigData SyncRepStandbyData @@ -3742,9 +3588,7 @@ SyncRequestType SyncStandbySlotsConfigData SyscacheCallbackFunction SysFKRelationship -SysloggerStartupData SysScanDesc -SYSTEM_INFO SystemRowsSamplerData SystemSamplerData SystemTimeSamplerData @@ -3770,7 +3614,6 @@ TablespaceListCell TableSpaceOpts TapeBlockTrailer TapeShare -TAPtype tar_file TAR_MEMBER TargetEntry @@ -3804,13 +3647,9 @@ test_re_flags test_regex_ctx test_shm_mq_header test_spec -test_start_function -test128 TestDecodingData TestDecodingTxnData -TestDSMRegistryHashEntry TestDSMRegistryStruct -TestSpec TestValueType text TextFreq @@ -3842,9 +3681,7 @@ timeout_handler_proc timeout_params TimeoutId TimeoutType -timerCA Timestamp -TimeStamp TimestampTz TimeTzADT TimeZoneAbbrevTable @@ -3862,10 +3699,6 @@ ToastCompressionId ToastedAttribute ToastTupleContext TocEntry -TOKEN_DEFAULT_DACL -TOKEN_INFORMATION_CLASS -TOKEN_PRIVILEGES -TOKEN_USER TokenAuxData tokenize_error_callback_arg TokenizedAuthLine @@ -3885,7 +3718,6 @@ TransactionStmt TransactionStmtKind TransamVariablesData TransApplyAction -transfer_thread_arg transferMode TransformInfo TransformJsonStringValuesState @@ -3993,7 +3825,6 @@ TwoPhaseRmgrId TwoPhaseStateData TXNEntryFile TYPCATEGORY -type Type TypeCacheEntry TypeCacheEnumData @@ -4018,25 +3849,16 @@ UCollator UConverter UErrorCode uid_t -UINT -uint_fast64_t uint128 uint16 uint16_t -uint16x8_t uint32 uint32_t -uint32x4_t uint64 uint64_t -uint64x2_t uint8 uint8_t -uint8x16_t uintptr_t -ULARGE_INTEGER -ULONG -ULONG_PTR unicode_linestyle UnicodeNormalizationForm UnicodeNormalizationQC @@ -4046,6 +3868,7 @@ unicodeStyleFormat unicodeStyleRowFormat Unique UniquePath +UniquePathMethod UniqueRelInfo UniqueState unit_conversion @@ -4063,6 +3886,7 @@ UpgradeTaskSlotState UpgradeTaskStep UploadManifestCmd UpperRelationKind +UpperUniquePath UserAuth UserContext UserMapping @@ -4077,8 +3901,10 @@ UVersionInfo va_list VacAttrStats VacAttrStatsP +VacDeadItems VacDeadItemsInfo VacErrPhase +VacObjFilter VacOptValue vacuumingOptions VacuumParams @@ -4103,6 +3929,8 @@ VarBit VarChar Variable VariableAssignHook +VariableCache +VariableCacheData Variables VariableSetKind VariableSetStmt @@ -4114,7 +3942,6 @@ VarParamState VarReturningType VarString VarStringSortSupport -vartag_external vbits Vector32 Vector8 @@ -4141,12 +3968,7 @@ WaitEventIO WaitEventIPC WaitEventSet WaitEventTimeout -WaitLSNProcInfo -WaitLSNResult -WaitLSNState -WaitLSNType WaitPMResult -WaitStmt WALAvailability WalCloseMethod WalCompression @@ -4196,13 +4018,11 @@ WalTimeSample WalUsage WalWriteMethod WalWriteMethodOps -WCHAR wchar_t wchar2mb_with_len_converter WCOKind WFW_WaitOption WIDGET -win32_deadchild_waitinfo WindowAgg WindowAggPath WindowAggState @@ -4222,7 +4042,6 @@ WindowStatePerFunc wint_t WithCheckOption WithClause -WORD WordBoundaryNext WordEntry WordEntryIN @@ -4235,13 +4054,11 @@ WorkerInfoData WorkerInstrumentation WorkerJobDumpPtrType WorkerJobRestorePtrType -Workflow Working_State WORKSTATE worktable WorkTableScan WorkTableScanState -wrap WritebackContext WriteBufPtrType WriteBytePtrType @@ -4253,10 +4070,6 @@ WriteManifestState WriteTarState ws_file_info ws_options -WSABUF -WSADATA -WSANETWORKEVENTS -WSAPROTOCOL_INFO X509 X509_EXTENSION X509_NAME @@ -4307,6 +4120,8 @@ xl_hash_update_meta_page xl_hash_vacuum_one_page xl_heap_confirm xl_heap_delete +xl_heap_freeze_page +xl_heap_freeze_plan xl_heap_header xl_heap_inplace xl_heap_insert @@ -4318,6 +4133,7 @@ xl_heap_prune xl_heap_rewrite_mapping xl_heap_truncate xl_heap_update +xl_heap_vacuum xl_heap_visible xl_invalid_page xl_invalid_page_key @@ -4397,7 +4213,6 @@ xmlBufferPtr xmlChar xmlDocPtr xmlError -xmlErrorPtr XmlExpr XmlExprOp xmlExternalEntityLoader From 7899e1506567446de76a5142985e14d263a40719 Mon Sep 17 00:00:00 2001 From: "Andrei V. Lepikhov" Date: Thu, 27 Aug 2026 12:15:51 +0200 Subject: [PATCH 3/4] Exempting some comments from pgindent reformatting --- src/spock_apply.c | 4 ++-- src/spock_autoddl.c | 2 +- src/spock_conflict.c | 2 +- src/spock_failover_slots.c | 2 +- src/spock_functions.c | 2 +- src/spock_group.c | 2 +- src/spock_sync.c | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/spock_apply.c b/src/spock_apply.c index c3331db71..fd106fad0 100644 --- a/src/spock_apply.c +++ b/src/spock_apply.c @@ -3833,7 +3833,7 @@ apply_work(PGconn *streamConn) MemoryContextSwitchTo(MessageContext); edata = CopyErrorData(); - /* + /*---------- * Connection-class errors must NOT enter the apply-side replay * path (need_replay / use_try_block). Two reasons: * @@ -3956,7 +3956,7 @@ apply_work(PGconn *streamConn) PG_RE_THROW(); } - /* + /*---------- * use_try_block == true indicates either: * 1. An exception occurred during a DML operation, * 2. Or we were replaying previously failed actions (via need_replay). diff --git a/src/spock_autoddl.c b/src/spock_autoddl.c index 2a1fb0756..be86d836c 100644 --- a/src/spock_autoddl.c +++ b/src/spock_autoddl.c @@ -391,7 +391,7 @@ apply_repset_policy_for_reloid(SpockLocalNode *node, Oid reloid, if (targetrel->rd_indexvalid == 0) RelationGetIndexList(targetrel); - /* + /*---------- * ALTER TABLE stickiness. * * PKRI_UNCHANGED - leave membership entirely alone. diff --git a/src/spock_conflict.c b/src/spock_conflict.c index 2d2b9b745..bbcf4e004 100644 --- a/src/spock_conflict.c +++ b/src/spock_conflict.c @@ -162,7 +162,7 @@ conflict_resolve_by_timestamp(RepOriginId local_origin_id, if (loc_node->tiebreaker == rmt_node->tiebreaker) { - /* + /*---------- * Equal tiebreaker values. Node creation prevents this for new * nodes, but existing clusters may still hit it. Apply remote and * warn so the operator can assign unique tiebreaker values: diff --git a/src/spock_failover_slots.c b/src/spock_failover_slots.c index 1b8ca7c1b..757ff3e61 100644 --- a/src/spock_failover_slots.c +++ b/src/spock_failover_slots.c @@ -1904,7 +1904,7 @@ spock_init_failover_slot(void) return; #if PG_VERSION_NUM >= 180000 - /* + /*---------- * PostgreSQL 18 natively synchronizes logical replication slots to * physical standbys via sync_replication_slots = on (slotsync worker) * and provides synchronized_standby_slots for walsender hold-back. diff --git a/src/spock_functions.c b/src/spock_functions.c index b3e035e59..c011e3f81 100644 --- a/src/spock_functions.c +++ b/src/spock_functions.c @@ -4052,7 +4052,7 @@ spock_pause_apply_workers(PG_FUNCTION_ARGS) /* Signal apply workers to pause at their next between-transaction point. */ pg_atomic_write_u32(&SpockCtx->pause_apply, 1); - /* + /*---------- * Wait until all apply workers in this database have either: * - no active transaction (xid invalid = between transactions or idle), or * - set their paused flag (spinning on the pause_apply flag). diff --git a/src/spock_group.c b/src/spock_group.c index bb0bbbed7..5192ee77f 100644 --- a/src/spock_group.c +++ b/src/spock_group.c @@ -340,7 +340,7 @@ spock_group_progress_update(const SpockApplyProgress *sap) if (!SpockGroupHash || !SpockCtx) { - /* + /*---------- * This should never happen in normal operation. The shared memory * structures are initialized during postmaster startup via * shmem_startup_hook. If we hit this, it likely indicates: diff --git a/src/spock_sync.c b/src/spock_sync.c index be566cb90..6cc6a5a0a 100644 --- a/src/spock_sync.c +++ b/src/spock_sync.c @@ -393,7 +393,7 @@ ensure_replication_slot_snapshot(PGconn *sql_conn, PGconn *repl_conn, appendStringInfo(&query, "CREATE_REPLICATION_SLOT \"%s\" LOGICAL %s", slot_name, "spock_output"); - /* + /*---------- * Mark the slot with (FAILOVER) when the *remote* provider is PG17+. * PG17+ supports logical slot synchronization to physical standbys via * sync_replication_slots = on. PG17+ uses parenthesised option syntax: From 1f6035eda1a20a3a83fa537c649c5da161f64be9 Mon Sep 17 00:00:00 2001 From: "Andrei V. Lepikhov" Date: Thu, 27 Aug 2026 12:16:36 +0200 Subject: [PATCH 4/4] pgindent run --- include/spock.h | 2 +- include/spock_conflict.h | 18 +- include/spock_conflict_stat.h | 4 +- include/spock_group.h | 22 +- include/spock_node.h | 8 +- include/spock_output_plugin.h | 2 +- include/spock_proto_native.h | 1 - include/spock_rmgr.h | 12 +- include/spock_sync.h | 8 +- include/spock_worker.h | 4 +- src/compat/18/spock_compat.c | 8 +- src/compat/18/spock_compat.h | 1 + src/spock.c | 81 +- src/spock_apply.c | 380 +-- src/spock_apply_heap.c | 83 +- src/spock_autoddl.c | 68 +- src/spock_change_log.c | 15 +- src/spock_common.c | 56 +- src/spock_conflict.c | 99 +- src/spock_conflict_stat.c | 23 +- src/spock_dependency.c | 4 +- src/spock_executor.c | 6 +- src/spock_failover_slots.c | 132 +- src/spock_functions.c | 232 +- src/spock_group.c | 61 +- src/spock_injection.c | 4 +- src/spock_manager.c | 2 +- src/spock_node.c | 57 +- src/spock_output.c | 4 +- src/spock_output_plugin.c | 21 +- src/spock_progress_recovery.c | 90 +- src/spock_proto_json.c | 4 +- src/spock_proto_native.c | 4 +- src/spock_readonly.c | 12 +- src/spock_relcache.c | 41 +- src/spock_repset.c | 12 +- src/spock_rmgr.c | 15 +- src/spock_shmem.c | 17 +- src/spock_sync.c | 193 +- src/spock_worker.c | 22 +- utils/pgindent/typedefs.list | 4529 +++++++++++++++++---------------- 41 files changed, 3318 insertions(+), 3039 deletions(-) diff --git a/include/spock.h b/include/spock.h index af80a608b..61e150556 100644 --- a/include/spock.h +++ b/include/spock.h @@ -53,7 +53,7 @@ extern int spock_pause_timeout; extern int spock_sync_timeout; extern int spock_read_retry_count; extern bool check_all_uc_indexes; -extern bool spock_enable_quiet_mode; +extern bool spock_enable_quiet_mode; extern int log_origin_change; extern int spock_apply_idle_timeout; extern int spock_log_verbosity; diff --git a/include/spock_conflict.h b/include/spock_conflict.h index 339ec54dd..c9e6948e0 100644 --- a/include/spock_conflict.h +++ b/include/spock_conflict.h @@ -70,8 +70,8 @@ typedef enum SPOCK_CT_DELETE_MISSING, /* - * Unique to Spock, delete timestamp is earlier than an existing row. - * Use a higher number so we don't conflict with PostgreSQL in the future. + * Unique to Spock, delete timestamp is earlier than an existing row. Use + * a higher number so we don't conflict with PostgreSQL in the future. */ SPOCK_CT_DELETE_EXISTS = 101 @@ -111,13 +111,13 @@ typedef enum extern bool spock_tuple_find_replidx(ResultRelInfo *relinfo, - SpockTupleData *tuple, - TupleTableSlot *oldslot, - Oid *idxrelid); + SpockTupleData *tuple, + TupleTableSlot *oldslot, + Oid *idxrelid); -extern Oid spock_tuple_find_conflict(ResultRelInfo *relinfo, - SpockTupleData *tuple, - TupleTableSlot *oldslot); +extern Oid spock_tuple_find_conflict(ResultRelInfo *relinfo, + SpockTupleData *tuple, + TupleTableSlot *oldslot); extern bool get_tuple_origin(SpockRelation *rel, HeapTuple local_tuple, ItemPointer tid, TransactionId *xmin, @@ -164,4 +164,4 @@ extern void tuple_to_stringinfo(StringInfo s, TupleDesc tupdesc, HeapTuple tuple); extern uint64 spock_cleanup_resolutions(void); -#endif /* SPOCK_CONFLICT_H */ +#endif /* SPOCK_CONFLICT_H */ diff --git a/include/spock_conflict_stat.h b/include/spock_conflict_stat.h index 7aef13f3b..0630b8f96 100644 --- a/include/spock_conflict_stat.h +++ b/include/spock_conflict_stat.h @@ -41,6 +41,6 @@ extern void spock_stat_create_subscription(Oid subid); extern void spock_stat_drop_subscription(Oid subid); extern Spock_Stat_StatSubEntry *spock_stat_fetch_stat_subscription(Oid subid); -#endif /* PG_VERSION_NUM >= 180000 */ +#endif /* PG_VERSION_NUM >= 180000 */ -#endif /* SPOCK_CONFLICT_STAT_H */ +#endif /* SPOCK_CONFLICT_STAT_H */ diff --git a/include/spock_group.h b/include/spock_group.h index 3756c3f00..b66a75fcd 100644 --- a/include/spock_group.h +++ b/include/spock_group.h @@ -113,35 +113,35 @@ typedef enum GroupProgressTupDescColumns */ typedef struct SpockApplyProgress { - SpockGroupKey key; /* MUST be first field */ + SpockGroupKey key; /* MUST be first field */ - TimestampTz remote_commit_ts; /* committed remote txn ts */ + TimestampTz remote_commit_ts; /* committed remote txn ts */ /* * Bit of duplication of remote_commit_ts. Serves the same purpose, except * keep the last updated value */ - TimestampTz prev_remote_ts; - XLogRecPtr remote_commit_lsn; /* LSN of remote commit on origin */ - XLogRecPtr remote_insert_lsn; /* origin insert/end LSN reported */ + TimestampTz prev_remote_ts; + XLogRecPtr remote_commit_lsn; /* LSN of remote commit on origin */ + XLogRecPtr remote_insert_lsn; /* origin insert/end LSN reported */ /* * The largest received LSN by the group. It is more or equal to the * remote_commit_lsn. */ - XLogRecPtr received_lsn; + XLogRecPtr received_lsn; - TimestampTz last_updated_ts; /* when we set this */ - bool updated_by_decode; /* set by decode or apply. OBSOLETE. Used + TimestampTz last_updated_ts; /* when we set this */ + bool updated_by_decode; /* set by decode or apply. OBSOLETE. Used * in versions <=5.x.x only */ } SpockApplyProgress; /* Hash entry: one per group (stable pointer; not moved by dynahash) */ typedef struct SpockGroupEntry { - SpockApplyProgress progress; - pg_atomic_uint32 nattached; - ConditionVariable prev_processed_cv; + SpockApplyProgress progress; + pg_atomic_uint32 nattached; + ConditionVariable prev_processed_cv; } SpockGroupEntry; /* shmem setup */ diff --git a/include/spock_node.h b/include/spock_node.h index acc05b1d8..d5d72639e 100644 --- a/include/spock_node.h +++ b/include/spock_node.h @@ -57,7 +57,7 @@ typedef struct SpockSubscription XLogRecPtr skiplsn; /* All changes finished at this LSN are * skipped */ List *skip_schema; /* Array of schema names to skip */ - TimestampTz created_at; /* When this subscription was created */ + TimestampTz created_at; /* When this subscription was created */ } SpockSubscription; /* @@ -74,8 +74,10 @@ typedef enum ReservedObjectKind typedef enum ReservedObjectPurpose { - RESERVED_PURPOSE_DUMP, /* exclude_from_dump: kept out of structure sync */ - RESERVED_PURPOSE_REPSET, /* block_in_repset: cannot join a replication set */ + RESERVED_PURPOSE_DUMP, /* exclude_from_dump: kept out of structure + * sync */ + RESERVED_PURPOSE_REPSET, /* block_in_repset: cannot join a replication + * set */ RESERVED_PURPOSE_DDL, /* replicate_ddl = false (node-local) */ RESERVED_PURPOSE_EXTENSION_OWNED /* built-in, blocked from repsets, DDL * still replicated: spock, snowflake */ diff --git a/include/spock_output_plugin.h b/include/spock_output_plugin.h index 27872db71..ca4bd0ebc 100644 --- a/include/spock_output_plugin.h +++ b/include/spock_output_plugin.h @@ -117,7 +117,7 @@ extern bool spock_replication_repair_mode; #define SPOCK_SYNC_EVENT_MSG 3 /* Sync event message */ #define SPOCK_SLOT_GROUPS_TRANCHE_NAME "spock_slot_groups" -extern int spock_output_delay; +extern int spock_output_delay; /* * Custom WAL messages diff --git a/include/spock_proto_native.h b/include/spock_proto_native.h index 434fbd186..4c35d0545 100644 --- a/include/spock_proto_native.h +++ b/include/spock_proto_native.h @@ -80,4 +80,3 @@ extern void spock_apply_set_proto_version(uint32 version); extern uint32 spock_apply_get_proto_version(void); #endif /* SPOCK_PROTO_NATIVE_H */ - diff --git a/include/spock_rmgr.h b/include/spock_rmgr.h index 428f5d02e..f8ff4306d 100644 --- a/include/spock_rmgr.h +++ b/include/spock_rmgr.h @@ -42,12 +42,12 @@ typedef enum SpockResourceDumpEvent typedef struct SpockResourceDumpRec { - uint8 event_type; /* SpockResourceDumpEvent */ - uint8 flags; /* reserved */ - uint16 entry_seq; /* 0-based index within this dump event */ - uint16 entry_total; /* total entries in this dump event */ - uint16 _pad; - SpockApplyProgress progress; /* full snapshot for this entry */ + uint8 event_type; /* SpockResourceDumpEvent */ + uint8 flags; /* reserved */ + uint16 entry_seq; /* 0-based index within this dump event */ + uint16 entry_total; /* total entries in this dump event */ + uint16 _pad; + SpockApplyProgress progress; /* full snapshot for this entry */ } SpockResourceDumpRec; /* RMGR function declarations */ diff --git a/include/spock_sync.h b/include/spock_sync.h index 5b28eaf39..57798c7b0 100644 --- a/include/spock_sync.h +++ b/include/spock_sync.h @@ -24,10 +24,10 @@ typedef struct SpockSyncStatus /* * Signal exception behaviour on sync attempt. At this moment it is * hardcoded to be true for table sync and false for subscription sync. - * Should be introduced into the extension's interface later. - * NOTE: The default value is false. Our current pattern is to create the - * structure and immediately zero it; earlier versions will just follow - * the previous logic and retry in case of an error. + * Should be introduced into the extension's interface later. NOTE: The + * default value is false. Our current pattern is to create the structure + * and immediately zero it; earlier versions will just follow the previous + * logic and retry in case of an error. */ bool stop_on_error; diff --git a/include/spock_worker.h b/include/spock_worker.h index 855b33101..c0791692a 100644 --- a/include/spock_worker.h +++ b/include/spock_worker.h @@ -108,8 +108,8 @@ typedef struct SpockContext LWLock *apply_group_master_lock; /* - * Pause mechanism for apply workers during slot creation. - * Non-zero signals workers to sleep on pause_cv until cleared. + * Pause mechanism for apply workers during slot creation. Non-zero + * signals workers to sleep on pause_cv until cleared. */ pg_atomic_uint32 pause_apply; ConditionVariable pause_cv; diff --git a/src/compat/18/spock_compat.c b/src/compat/18/spock_compat.c index 90e432c78..7adba757e 100644 --- a/src/compat/18/spock_compat.c +++ b/src/compat/18/spock_compat.c @@ -130,10 +130,10 @@ check_simple_rowfilter_expr_walker(Node *node, ParseState *pstate) } /* - * Check if the row filter expression is a "simple expression". - * - * See check_simple_rowfilter_expr_walker for details. - */ + * Check if the row filter expression is a "simple expression". + * + * See check_simple_rowfilter_expr_walker for details. + */ bool check_simple_rowfilter_expr(Node *node, ParseState *pstate) { diff --git a/src/compat/18/spock_compat.h b/src/compat/18/spock_compat.h index edef5cad5..2d3b50edd 100644 --- a/src/compat/18/spock_compat.h +++ b/src/compat/18/spock_compat.h @@ -128,6 +128,7 @@ #include "parser/parse_node.h" extern bool check_simple_rowfilter_expr(Node *node, ParseState *pstate); + /* * pg_fallthrough is new in PG19, where c.h picks whichever spelling the * compiler understands. Provide it for older majors so a deliberate diff --git a/src/spock.c b/src/spock.c index 16c9cb869..e64357eab 100644 --- a/src/spock.c +++ b/src/spock.c @@ -73,8 +73,8 @@ #if PG_VERSION_NUM >= 180000 PG_MODULE_MAGIC_EXT( - .name = "spock", - .version = SPOCK_VERSION + .name = "spock", + .version = SPOCK_VERSION ); #else PG_MODULE_MAGIC; @@ -143,7 +143,7 @@ static const struct config_enum_entry exception_logging_options[] = { static const struct config_enum_entry readonly_options[] = { {"off", READONLY_OFF, false}, {"local", READONLY_LOCAL, false}, - {"user", READONLY_LOCAL, true}, /* backward-compatible alias */ + {"user", READONLY_LOCAL, true}, /* backward-compatible alias */ {"all", READONLY_ALL, false}, {NULL, 0, false} }; @@ -174,9 +174,12 @@ bool allow_ddl_from_functions = false; int restart_delay_default; int restart_delay_on_exception; int spock_replay_queue_size; -int spock_pause_timeout = 10; /* seconds to wait for apply workers to pause */ -int spock_sync_timeout = 0; /* seconds per sync wait; 0 = routine's own default */ -int spock_read_retry_count = 5; /* heap update/delete: retries when local tuple is missing */ +int spock_pause_timeout = 10; /* seconds to wait for apply workers + * to pause */ +int spock_sync_timeout = 0; /* seconds per sync wait; 0 = routine's + * own default */ +int spock_read_retry_count = 5; /* heap update/delete: retries when + * local tuple is missing */ bool check_all_uc_indexes = false; bool spock_enable_quiet_mode = false; int log_origin_change = SPOCK_ORIGIN_NONE; @@ -413,16 +416,17 @@ spock_connect_base(const char *connstr, const char *appname, i++; /* - * Force assorted GUC parameters to settings that ensure that the peer will - * output data values in a form that is unambiguous to us when the transfer - * happens in text mode. (We don't touch our own settings; that would - * surprise user-defined code running here, such as triggers.) ISO is the - * only DateStyle that always emits an unambiguous date and an explicit - * numeric UTC offset, which is also why TimeZone needs no forcing. + * Force assorted GUC parameters to settings that ensure that the peer + * will output data values in a form that is unambiguous to us when the + * transfer happens in text mode. (We don't touch our own settings; that + * would surprise user-defined code running here, such as triggers.) ISO + * is the only DateStyle that always emits an unambiguous date and an + * explicit numeric UTC offset, which is also why TimeZone needs no + * forcing. * * Subscription sync reads spock.progress from a peer over a regular - * connection, so this is applied to those as well, not only to replication - * ones. + * connection, so this is applied to those as well, not only to + * replication ones. * * Caution: an explicit array entry overrides any "options" carried by the * expanded dbname string, so the user's must be prepended rather than @@ -460,9 +464,9 @@ spock_connect_base(const char *connstr, const char *appname, /* * Released only once nothing can read vals[] again. libpq copied what it - * needed during the call above, so freeing earlier would work, but it would - * leave a dangling entry in vals[] across the error path -- and that path - * already formats connection details for the report. + * needed during the call above, so freeing earlier would work, but it + * would leave a dangling entry in vals[] across the error path -- and + * that path already formats connection details for the report. */ pfree(options_val); @@ -501,8 +505,9 @@ spock_get_conninfo_option(const char *connstr, const char *keyword) * Deliberately not an error. PQconnectdbParams() takes a dbname with * neither '=' nor a URI prefix literally, so a DSN of plain "mydb" * connects today while PQconninfoParse() rejects it; raising an error - * here would break such configurations. Report no options instead, and - * let PQconnectdbParams() complain if the string really is malformed. + * here would break such configurations. Report no options instead, + * and let PQconnectdbParams() complain if the string really is + * malformed. * * The error string is malloc'd, so we must free it explicitly. */ @@ -792,11 +797,11 @@ start_manager_workers(void) while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { - Form_pg_database pgdatabase = (Form_pg_database) GETSTRUCT(tup); - Oid dboid = pgdatabase->oid; - SpockWorker worker; - HeapTuple rev; - bool connectable = false; + Form_pg_database pgdatabase = (Form_pg_database) GETSTRUCT(tup); + Oid dboid = pgdatabase->oid; + SpockWorker worker; + HeapTuple rev; + bool connectable = false; CHECK_FOR_INTERRUPTS(); @@ -815,11 +820,11 @@ start_manager_workers(void) /* * Revalidate the dboid is still connectable. The seq-scan tuple - * above can have become stale: another backend may have DROPped - * the database or set datconnlimit = -2 (invalid-database marker) - * while we walk pg_database. Without this check the manager - * worker FATALs during attach with "cannot connect to invalid - * database" or "database does not exist", which sustains a + * above can have become stale: another backend may have DROPped the + * database or set datconnlimit = -2 (invalid-database marker) while + * we walk pg_database. Without this check the manager worker FATALs + * during attach with "cannot connect to invalid database" or + * "database does not exist", which sustains a * supervisor-respawn loop under heavy tenant-DB churn (SUP-137). */ rev = SearchSysCache1(DATABASEOID, ObjectIdGetDatum(dboid)); @@ -872,7 +877,7 @@ start_manager_workers(void) static void spock_supervisor_on_exit(int code, Datum arg) { - int retries = SPOCK_SHUTDOWN_DRAIN_MAX_RETRIES; + int retries = SPOCK_SHUTDOWN_DRAIN_MAX_RETRIES; if (code != 0) return; @@ -885,7 +890,7 @@ spock_supervisor_on_exit(int code, Datum arg) if (spock_any_apply_worker_running()) elog(LOG, "spock supervisor: shutdown drain timed out, " - "SHUTDOWN forensic snapshot may be incomplete"); + "SHUTDOWN forensic snapshot may be incomplete"); spock_group_resource_dump(); spock_rmgr_log_resource_dump(SPOCK_DUMP_SHUTDOWN, NULL); @@ -1445,13 +1450,13 @@ _PG_init(void) NULL); DefineCustomEnumVariable("spock.log_origin_change", - gettext_noop("If set, log when the origin of a tuple changes."), - NULL, - &log_origin_change, - SPOCK_ORIGIN_NONE, - SpockOriginConflicts, - PGC_SUSET, 0, - NULL, NULL, NULL); + gettext_noop("If set, log when the origin of a tuple changes."), + NULL, + &log_origin_change, + SPOCK_ORIGIN_NONE, + SpockOriginConflicts, + PGC_SUSET, 0, + NULL, NULL, NULL); DefineCustomIntVariable("spock.apply_idle_timeout", "Maximum idle time in seconds before apply worker reconnects", diff --git a/src/spock_apply.c b/src/spock_apply.c index fd106fad0..73064eaad 100644 --- a/src/spock_apply.c +++ b/src/spock_apply.c @@ -125,7 +125,8 @@ typedef struct ApplyReplayEntryData ApplyReplayEntry; struct ApplyReplayEntryData { StringInfoData copydata; - bool from_pq; /* true if data was allocated by libpq (PQgetCopyData) */ + bool from_pq; /* true if data was allocated by libpq + * (PQgetCopyData) */ ApplyReplayEntry *next; }; static MemoryContext ApplyReplayContext = NULL; @@ -141,9 +142,9 @@ static ApplyReplayEntry * apply_replay_tail = NULL; static ApplyReplayEntry * apply_replay_next = NULL; /* Total bytes of libpq-allocated data held by in-memory queue entries */ -static uint64 apply_replay_bytes = 0; +static uint64 apply_replay_bytes = 0; -static bool apply_replay_mode = false; /* true when replaying */ +static bool apply_replay_mode = false; /* true when replaying */ static BufFile *apply_replay_spill_file = NULL; static bool apply_replay_spilling = false; static int apply_replay_spill_count = 0; @@ -218,7 +219,7 @@ typedef struct RemoteSyncPosition { dlist_node node; XLogRecPtr local_commit_lsn; /* gating: subscriber's XactLastCommitEnd */ - XLogRecPtr remote_recvpos; /* feedback: publisher write LSN */ + XLogRecPtr remote_recvpos; /* feedback: publisher write LSN */ XLogRecPtr remote_flushpos; /* feedback: publisher flush LSN */ XLogRecPtr remote_writepos; /* feedback: publisher apply LSN */ } RemoteSyncPosition; @@ -281,12 +282,12 @@ static void UpdateWorkerStats(XLogRecPtr last_received, XLogRecPtr last_inserted static RepOriginId resolve_forward_peer_origin(RepOriginId remote_origin_id); static void resolve_forwarded_origin_for_transaction(RepOriginId remote_origin_id); static void maybe_advance_forwarded_origin(XLogRecPtr local_lsn, bool xact_had_exception); -static ApplyReplayEntry *apply_replay_queue_next_entry(void); -static bool apply_replay_queue_append_entry(ApplyReplayEntry **entry_p, - StringInfo *msg_p); +static ApplyReplayEntry * apply_replay_queue_next_entry(void); +static bool apply_replay_queue_append_entry(ApplyReplayEntry * *entry_p, + StringInfo *msg_p); static void apply_replay_queue_start_replay(void); static void apply_replay_spill_write_entry(int len, char *data); -static ApplyReplayEntry *apply_replay_spill_read_entry(void); +static ApplyReplayEntry * apply_replay_spill_read_entry(void); static void request_initial_status_update(PGconn *conn, XLogRecPtr startpos); /* Wrapper for latch for waiting for previous transaction to commit */ @@ -445,8 +446,8 @@ prepare_transient_error_retry(ErrorData *edata, const char *what) /* * Pace retries with restart_delay_default rather than the - * restart_delay_on_exception (default 0) that handle_begin() installs, so a - * condition that never clears does not spin the worker. + * restart_delay_on_exception (default 0) that handle_begin() installs, so + * a condition that never clears does not spin the worker. */ MySpockWorker->restart_delay = restart_delay_default; @@ -570,8 +571,8 @@ maybe_pause_for_slot_creation(void) while (pg_atomic_read_u32(&SpockCtx->pause_apply) != 0) { if (ConditionVariableTimedSleep(&SpockCtx->pause_cv, - spock_pause_timeout * 1000L, - WAIT_EVENT_LOGICAL_APPLY_MAIN)) + spock_pause_timeout * 1000L, + WAIT_EVENT_LOGICAL_APPLY_MAIN)) { elog(WARNING, "SPOCK: apply worker pause timed out after %ds, resuming", spock_pause_timeout); @@ -605,10 +606,10 @@ begin_replication_step(void) * fires during add_node (a rare operation). The fast path is a * single atomic read that almost always sees 0. * - * Runs before StartTransactionCommand so the worker has no xid - * while paused — pause_apply_workers can detect completion via - * xid polling. The previous transaction's commit is fully - * complete, so ros.remote_lsn reflects only committed state. + * Runs before StartTransactionCommand so the worker has no xid while + * paused — pause_apply_workers can detect completion via xid + * polling. The previous transaction's commit is fully complete, so + * ros.remote_lsn reflects only committed state. */ maybe_pause_for_slot_creation(); @@ -616,15 +617,14 @@ begin_replication_step(void) spock_apply_heap_begin(); /* - * In TRANSDISCARD/SUB_DISABLE mode, set the transaction - * read-only to prevent any actual DML from being applied. - * Direct catalog writes (exception_log entries) are still - * allowed. + * In TRANSDISCARD/SUB_DISABLE mode, set the transaction read-only to + * prevent any actual DML from being applied. Direct catalog writes + * (exception_log entries) are still allowed. */ if (MyApplyWorker->use_try_block && (exception_behaviour == TRANSDISCARD || - exception_behaviour == SUB_DISABLE)) + exception_behaviour == SUB_DISABLE)) { set_config_option("transaction_read_only", "on", PGC_USERSET, PGC_S_SESSION, @@ -685,6 +685,7 @@ handle_begin(StringInfo s) replorigin_session_origin_timestamp = commit_time; replorigin_session_origin_lsn = commit_lsn; remote_origin_id = InvalidRepOriginId; + /* * Free and clear remote_origin_name - it's allocated in TopMemoryContext * to avoid MessageContext corruption issues. @@ -846,18 +847,19 @@ handle_begin(StringInfo s) else { /* - * The recorded failure is not this transaction, so this one has not - * been attempted yet and must be applied normally. + * The recorded failure is not this transaction, so this one has + * not been attempted yet and must be applied normally. * - * use_try_block lives in the worker's shared memory slot and is not - * per-transaction state, so it can still be set from an earlier - * failure. The case that matters is an error raised between remote - * transactions: apply_work() switches to replay mode even though - * nothing was queued for this cycle, and the flag then belongs to - * whichever transaction the provider sends next. Leaving it set - * would replay that transaction read-only and, under TRANSDISCARD - * or SUB_DISABLE, discard it -- a transaction that never failed, - * reported as if the exception policy had fired. + * use_try_block lives in the worker's shared memory slot and is + * not per-transaction state, so it can still be set from an + * earlier failure. The case that matters is an error raised + * between remote transactions: apply_work() switches to replay + * mode even though nothing was queued for this cycle, and the + * flag then belongs to whichever transaction the provider sends + * next. Leaving it set would replay that transaction read-only + * and, under TRANSDISCARD or SUB_DISABLE, discard it -- a + * transaction that never failed, reported as if the exception + * policy had fired. * * Drop the recorded root cause along with the flag. Nothing will * be attributed to it now, and leaving it behind would make the @@ -1066,9 +1068,9 @@ handle_commit(StringInfo s) (xact_had_exception || MyApplyWorker->use_try_block)) { /* - * SUB_DISABLE: after committing exception_log entries, throw - * an ERROR to trigger subscription disable in the PG_CATCH - * block. This covers both the case where DML actually failed + * SUB_DISABLE: after committing exception_log entries, throw an + * ERROR to trigger subscription disable in the PG_CATCH block. + * This covers both the case where DML actually failed * (xact_had_exception) and the retry path where all DML was * skipped but the original error was logged (use_try_block). */ @@ -1091,9 +1093,9 @@ handle_commit(StringInfo s) * into future transactions. * * The transaction has committed and the origin has been advanced, - * so the recorded failure is resolved: drop the whole entry rather - * than just the message, which also releases the local_tuple - * pointer into the now-reset ApplyOperationContext. + * so the recorded failure is resolved: drop the whole entry + * rather than just the message, which also releases the + * local_tuple pointer into the now-reset ApplyOperationContext. */ clear_exception_log_entry(&exception_log_ptr[my_exception_log_index]); } @@ -1153,12 +1155,14 @@ handle_commit(StringInfo s) .prev_remote_ts = replorigin_session_origin_timestamp, .remote_commit_lsn = end_lsn, .received_lsn = end_lsn, + /* * Carry forward the remote_insert_lsn already in shmem (set by * UpdateWorkerStats on the most-recent keepalive or 'w' message). * This keeps the shmem entry coherent after the update below; * crash recovery of this field is handled by the forced keepalive - * sent right after spock_start_replication, not by any WAL record. + * sent right after spock_start_replication, not by any WAL + * record. */ .remote_insert_lsn = MyApplyWorker->apply_group->progress.remote_insert_lsn, /* XXX: Could we use commit_ts value instead? */ @@ -1247,8 +1251,8 @@ handle_commit(StringInfo s) * Clearing use_try_block here cannot start an error deathloop: the * transaction has committed, so there is nothing left to retry. The only * other places that may clear it are the ones which have established that - * the incoming transaction is not the failure recorded in the exception log - * (see handle_begin). + * the incoming transaction is not the failure recorded in the exception + * log (see handle_begin). */ MyApplyWorker->use_try_block = false; @@ -1434,7 +1438,7 @@ get_exception_behaviour_name(void) static char * discard_collateral_message(const char *what) { - SpockExceptionLog *e; + SpockExceptionLog *e; /* * Match the paranoia level of the surrounding code: every caller reaches @@ -1473,11 +1477,11 @@ discard_collateral_message(const char *what) static char * errmsg_with_sqlstate(ErrorData *edata) { - MemoryContext oldctx = MemoryContextSwitchTo(ApplyOperationContext); - char *msg; - int sqlerrcode = edata ? edata->sqlerrcode : ERRCODE_INTERNAL_ERROR; - const char *detail = (edata && edata->message) ? edata->message - : "(no error detail captured)"; + MemoryContext oldctx = MemoryContextSwitchTo(ApplyOperationContext); + char *msg; + int sqlerrcode = edata ? edata->sqlerrcode : ERRCODE_INTERNAL_ERROR; + const char *detail = (edata && edata->message) ? edata->message + : "(no error detail captured)"; if (sqlerrcode == ERRCODE_INTERNAL_ERROR) msg = pstrdup(detail); @@ -1505,12 +1509,12 @@ log_insert_exception(bool failed, char *errmsg, SpockRelation *rel, SpockTupleData *oldtup, SpockTupleData *newtup, const char *action_name) { - MemoryContext oldctx; - RepOriginId local_origin = InvalidRepOriginId; - TimestampTz local_commit_ts = 0; - TransactionId xmin = InvalidTransactionId; - bool local_origin_found = false; - HeapTuple localtup; + MemoryContext oldctx; + RepOriginId local_origin = InvalidRepOriginId; + TimestampTz local_commit_ts = 0; + TransactionId xmin = InvalidTransactionId; + bool local_origin_found = false; + HeapTuple localtup; if (!should_log_exception(failed)) return; @@ -1595,8 +1599,8 @@ handle_insert(StringInfo s) exception_command_counter++; /* - * Clear the local tuple pointer if it was left over from a - * previous operation. + * Clear the local tuple pointer if it was left over from a previous + * operation. */ exception_log_ptr[my_exception_log_index].local_tuple = NULL; @@ -1634,8 +1638,8 @@ handle_insert(StringInfo s) * transaction is read-only, but exception_log has * user_catalog_table=true so CatalogTupleInsert works. * - * Only the record that originally caused the error gets the - * real error message; other records get NULL. + * Only the record that originally caused the error gets the real + * error message; other records get NULL. */ char *error_msg = (xact_action_counter == @@ -1674,16 +1678,17 @@ handle_insert(StringInfo s) PG_END_TRY(); /* - * Rollback switches to the parent transaction context; - * restore ApplyOperationContext for the code below. + * Rollback switches to the parent transaction context; restore + * ApplyOperationContext for the code below. */ MemoryContextSwitchTo(ApplyOperationContext); if (failed) { /* - * Need to keep this database operation out of the CATCH section - * to avoid FATAL error in case if an ERROR happens there. + * Need to keep this database operation out of the CATCH + * section to avoid FATAL error in case if an ERROR happens + * there. */ log_insert_exception(true, errmsg_with_sqlstate(edata), rel, NULL, &newtup, "INSERT"); @@ -2152,10 +2157,10 @@ handle_truncate(StringInfo s) { /* * TRANSDISCARD/SUB_DISABLE: the whole transaction is being - * abandoned, so skip the TRUNCATE outright and log it as discarded - * -- do not attempt it. (ExecuteTruncateGuts is called directly, - * not via ProcessUtility, so transaction_read_only would not have - * protected us anyway.) + * abandoned, so skip the TRUNCATE outright and log it as + * discarded -- do not attempt it. (ExecuteTruncateGuts is called + * directly, not via ProcessUtility, so transaction_read_only + * would not have protected us anyway.) */ char *error_msg = (xact_action_counter == @@ -2210,8 +2215,8 @@ handle_truncate(StringInfo s) * handle_insert/update/delete, which open the relation in the * parent transaction. The abort released those relation * references, but the Spock relation cache still holds the - * now-stale ->rel handles (the spock_relation_close() calls at - * the tail of apply_truncate() never ran). Invalidate the + * now-stale ->rel handles (the spock_relation_close() calls + * at the tail of apply_truncate() never ran). Invalidate the * cache so the next open re-resolves the relation instead of * returning a dangling Relation pointer. */ @@ -2301,20 +2306,19 @@ static void spock_apply_worker_shmem_exit(int code, Datum arg) { /* - * Reset replication session to avoid reuse after an error. - * This is done in a before_shmem_exit callback instead of - * on_proc_exit because the backend may also clean up the origin - * in certain cases, and we want to avoid duplicate cleanup. + * Reset replication session to avoid reuse after an error. This is done + * in a before_shmem_exit callback instead of on_proc_exit because the + * backend may also clean up the origin in certain cases, and we want to + * avoid duplicate cleanup. * - * Ordering matters: this must run before ShutdownPostgres() - * (also a before_shmem_exit, registered earlier during - * InitPostgres) so the origin is Invalid by the time - * ShutdownPostgres calls AbortOutOfAnyTransaction(). Otherwise - * RecordTransactionAbort advances the origin to the in-flight - * transaction's stale final_lsn, silently skipping that txn on - * reconnect. LIFO callback order makes this work. The - * connection-error rethrow path in apply_work's PG_CATCH - * relies on it. + * Ordering matters: this must run before ShutdownPostgres() (also a + * before_shmem_exit, registered earlier during InitPostgres) so the + * origin is Invalid by the time ShutdownPostgres calls + * AbortOutOfAnyTransaction(). Otherwise RecordTransactionAbort advances + * the origin to the in-flight transaction's stale final_lsn, silently + * skipping that txn on reconnect. LIFO callback order makes this work. + * The connection-error rethrow path in apply_work's PG_CATCH relies on + * it. */ replorigin_session_origin = InvalidRepOriginId; replorigin_session_origin_lsn = InvalidXLogRecPtr; @@ -2717,10 +2721,10 @@ handle_sql(QueuedMessage *queued_message, bool tx_just_started, char **sql) MySubscription->name, r, WJB_DONE); /* - * Emit the DDL change-log record (in both 'key_only' and 'verbose' - * modes) BEFORE execution. Logging at this point means the operator - * always sees what SQL was about to run, even if the execution itself - * later errors out. + * Emit the DDL change-log record (in both 'key_only' and 'verbose' modes) + * BEFORE execution. Logging at this point means the operator always sees + * what SQL was about to run, even if the execution itself later errors + * out. */ spock_log_apply_ddl(*sql, remote_origin_name); @@ -2923,10 +2927,10 @@ handle_message(StringInfo s) /* * For non-transactional sync events, explicitly advance the - * replication origin so pg_replication_origin_status.remote_lsn - * reflects this position immediately. For transactional - * messages the origin is advanced at commit time in - * handle_commit(). + * replication origin so + * pg_replication_origin_status.remote_lsn reflects this + * position immediately. For transactional messages the + * origin is advanced at commit time in handle_commit(). */ elog(DEBUG1, "SPOCK %s: received sync_event at %X/%X " "(transactional=%d, origin=%d)", @@ -3029,9 +3033,8 @@ replication_handler(StringInfo s) /* * Release per-message palloc in ApplyOperationContext. The handlers - * route per-row exception logging and similar work through this - * context so it can be cleaned up at one place instead of every - * call site. + * route per-row exception logging and similar work through this context + * so it can be cleaned up at one place instead of every call site. */ MemoryContextReset(ApplyOperationContext); @@ -3334,16 +3337,16 @@ send_feedback(PGconn *conn, XLogRecPtr recvpos, int64 now, bool force) static void request_initial_status_update(PGconn *conn, XLogRecPtr startpos) { - StringInfoData msg; - int64 now = GetCurrentTimestamp(); + StringInfoData msg; + int64 now = GetCurrentTimestamp(); initStringInfo(&msg); pq_sendbyte(&msg, 'r'); pq_sendint64(&msg, startpos); /* write */ pq_sendint64(&msg, startpos); /* flush */ pq_sendint64(&msg, startpos); /* apply */ - pq_sendint64(&msg, now); /* sendTime */ - pq_sendbyte(&msg, true); /* replyRequested */ + pq_sendint64(&msg, now); /* sendTime */ + pq_sendbyte(&msg, true); /* replyRequested */ elog(DEBUG2, "SPOCK %s: requesting initial status update at %X/%X", MySubscription->name, @@ -3424,9 +3427,9 @@ apply_work(PGconn *streamConn) * stale (closed, possibly reused by the OS). Passing it to * WaitLatchOrSocket causes epoll_ctl(EINVAL) on Linux; on macOS kqueue * silently ignores the bad fd but PQconsumeInput then fires a second - * "connection to other side has died" exception — both caught as - * "error during exception handling". Return instead so the worker - * restarts and reconnects cleanly. + * "connection to other side has died" exception — both caught as "error + * during exception handling". Return instead so the worker restarts and + * reconnects cleanly. */ fd = PQsocket(applyconn); if (PQstatus(applyconn) == CONNECTION_BAD || fd == PGINVALID_SOCKET) @@ -3450,8 +3453,8 @@ apply_work(PGconn *streamConn) * PGINVALID_SOCKET). Reading PQsocket() again here ensures we * pass libpq's current value to WaitLatchOrSocket -- never a * stale fd, which would otherwise cause epoll_ctl(EINVAL) on - * Linux. If the connection has gone bad, raise a tagged error - * so the PG_CATCH discriminator routes us to a clean exit. + * Linux. If the connection has gone bad, raise a tagged error so + * the PG_CATCH discriminator routes us to a clean exit. */ fd = PQsocket(applyconn); if (PQstatus(applyconn) == CONNECTION_BAD || @@ -3465,10 +3468,11 @@ apply_work(PGconn *streamConn) } /* - * Background workers mustn't call usleep() or any direct equivalent - * instead, they may wait on their process latch, which sleeps as - * necessary, but is awakened if postmaster dies. That way the - * background process goes away immediately in an emergency. + * Background workers mustn't call usleep() or any direct + * equivalent instead, they may wait on their process latch, which + * sleeps as necessary, but is awakened if postmaster dies. That + * way the background process goes away immediately in an + * emergency. */ rc = WaitLatchOrSocket(&MyProc->procLatch, WL_SOCKET_READABLE | WL_LATCH_SET | @@ -3506,11 +3510,11 @@ apply_work(PGconn *streamConn) } /* - * Connection liveness is handled by TCP keepalive (primary) - * and PQstatus == CONNECTION_BAD (above). The idle timeout - * below is a safety net for the case where the walsender - * process is alive but hung -- TCP probes succeed because the - * kernel ACKs them, but no data is being sent. + * Connection liveness is handled by TCP keepalive (primary) and + * PQstatus == CONNECTION_BAD (above). The idle timeout below is a + * safety net for the case where the walsender process is alive + * but hung -- TCP probes succeed because the kernel ACKs them, + * but no data is being sent. */ if (rc & WL_TIMEOUT && spock_apply_idle_timeout > 0) { @@ -3562,22 +3566,23 @@ apply_work(PGconn *streamConn) if (got_SIGTERM) break; - if (ConfigReloadPending) + if (ConfigReloadPending) { ConfigReloadPending = false; ProcessConfigFile(PGC_SIGHUP); } /* - * Do not apply new transactions if cluster is switched to - * the readonly mode. + * Do not apply new transactions if cluster is switched to the + * readonly mode. */ if (spock_readonly == READONLY_ALL) { /* * In case of an exception we can't break out of the loop * because exception processing code may also modify the - * database. Wait briefly and continue to the next iteration. + * database. Wait briefly and continue to the next + * iteration. */ if (xact_had_exception) { @@ -3693,8 +3698,8 @@ apply_work(PGconn *streamConn) /* * Replay path: spill-read entries live in * TopMemoryContext and must be freed explicitly. - * Capture this before replication_handler, which - * may reset ApplyReplayContext and free the entry. + * Capture this before replication_handler, which may + * reset ApplyReplayContext and free the entry. */ need_free = !entry->from_pq; } @@ -3895,8 +3900,8 @@ apply_work(PGconn *streamConn) * installed, so a provider that fails every attempt -- 57P02 or * 57P03 for the length of its crash recovery, say -- otherwise * spins the worker as fast as it can reconnect and re-stream. - * Costs up to restart_delay_default of extra recovery latency on a - * one-off blip, which is the same trade native PG makes with + * Costs up to restart_delay_default of extra recovery latency on + * a one-off blip, which is the same trade native PG makes with * wal_retrieve_retry_interval. */ MySpockWorker->restart_delay = restart_delay_default; @@ -3908,24 +3913,25 @@ apply_work(PGconn *streamConn) /* * Retryable local aborts must not enter the replay path either. A - * deadlock victim or a lock_timeout abort is no fault of the replicated - * data: the same transaction succeeds once the contending local - * transaction is gone. The replay path is for permanent data faults, so - * every spock.exception_behaviour loses data the provider would resend: - * SUB_DISABLE stops replication, TRANSDISCARD drops the transaction, - * DISCARD skips the row. + * deadlock victim or a lock_timeout abort is no fault of the + * replicated data: the same transaction succeeds once the contending + * local transaction is gone. The replay path is for permanent data + * faults, so every spock.exception_behaviour loses data the provider + * would resend: SUB_DISABLE stops replication, TRANSDISCARD drops the + * transaction, DISCARD skips the row. * - * Rethrow as above, leaving the origin at the last durable commit so the - * respawned worker re-applies from scratch. Retry is INDEFINITE, as on - * the connection path and in native PG logical replication: contention - * that never clears surfaces as a restarting worker, whereas a bounded - * count would end in discarding data anyway. + * Rethrow as above, leaving the origin at the last durable commit so + * the respawned worker re-applies from scratch. Retry is INDEFINITE, + * as on the connection path and in native PG logical replication: + * contention that never clears surfaces as a restarting worker, + * whereas a bounded count would end in discarding data anyway. * * Serialization errors are absent because they reach apply only when * the worker itself runs at REPEATABLE READ / SERIALIZABLE (from the - * default isolation level, which is not yet pinned to READ COMMITTED). - * Until then, a cluster-wide default_transaction_isolation can still - * produce 40001, which then takes the exception path. + * default isolation level, which is not yet pinned to READ + * COMMITTED). Until then, a cluster-wide + * default_transaction_isolation can still produce 40001, which then + * takes the exception path. */ if (edata->sqlerrcode == ERRCODE_T_R_DEADLOCK_DETECTED || edata->sqlerrcode == ERRCODE_LOCK_NOT_AVAILABLE) @@ -3937,18 +3943,18 @@ apply_work(PGconn *streamConn) /* * Resource exhaustion (class 53: disk full, out of memory, too many - * connections, configuration limit exceeded) is retryable for the same - * reason, and this makes the handling self-consistent -- the "error - * during exception handling" branch below already rethrows out-of-memory - * and disk-full, but only on a second occurrence. + * connections, configuration limit exceeded) is retryable for the + * same reason, and this makes the handling self-consistent -- the + * "error during exception handling" branch below already rethrows + * out-of-memory and disk-full, but only on a second occurrence. * * The whole-category test is safe here, unlike class 08 and class 40: * every class 53 member can clear, whereas 40002 * (T_R_INTEGRITY_CONSTRAINT_VIOLATION) is a permanent data fault. * * A shortage that never clears -- a disk kept full by a bulk load -- - * retries indefinitely instead of discarding: human intervention, but a - * restarting worker rather than data loss. + * retries indefinitely instead of discarding: human intervention, but + * a restarting worker rather than data loss. */ if (ERRCODE_TO_CATEGORY(edata->sqlerrcode) == ERRCODE_INSUFFICIENT_RESOURCES) { @@ -3993,9 +3999,9 @@ apply_work(PGconn *streamConn) /* * For other exceptions with use_try_block, where xact_had_exception - * is false, this indicates an ERROR occurred during exception handling - * (e.g., connection died, CommitTransactionCommand failure during - * TRANSDISCARD logging, etc.). + * is false, this indicates an ERROR occurred during exception + * handling (e.g., connection died, CommitTransactionCommand failure + * during TRANSDISCARD logging, etc.). * * We log the error and re-throw to exit the worker. The background * worker infrastructure will restart the worker automatically. This @@ -4046,12 +4052,13 @@ apply_work(PGconn *streamConn) * During the read-only replay, only this action gets the real * error message; other records get NULL. * - * A failure during COMMIT (e.g. a deferred constraint trigger that - * fires at commit) is not attributable to any replayed row: + * A failure during COMMIT (e.g. a deferred constraint trigger + * that fires at commit) is not attributable to any replayed row: * handle_commit has already bumped the counter, so no row's - * command_counter would match and the pointer would dangle. Treat - * it as non-attributable (failed_action = 0) so the replay surfaces - * the captured root cause instead of a dangling command_counter. + * command_counter would match and the pointer would dangle. Treat + * it as non-attributable (failed_action = 0) so the replay + * surfaces the captured root cause instead of a dangling + * command_counter. */ if (errcallback_arg.action_name != NULL && strcmp(errcallback_arg.action_name, "COMMIT") == 0) @@ -4074,10 +4081,11 @@ apply_work(PGconn *streamConn) /* * Re-arm the exception log lookup in handle_begin(). The next BEGIN * has to compare the recorded commit_lsn against the incoming one: - * that is where exception handling is entered for the transaction that - * failed, and where the recorded failure is dropped if the provider - * sends a different transaction instead. Without this the stale entry - * would be left to govern transactions it knows nothing about. + * that is where exception handling is entered for the transaction + * that failed, and where the recorded failure is dropped if the + * provider sends a different transaction instead. Without this the + * stale entry would be left to govern transactions it knows nothing + * about. */ first_begin_at_startup = true; remote_origin_lsn = InvalidXLogRecPtr; @@ -4111,10 +4119,11 @@ static void execute_sql_command_error_cb(void *arg) { errcontext("during execution of queued SQL statement: %s", (char *) arg); + /* * The errcontext above already includes the SQL statement, so clear - * debug_query_string to prevent it from appearing a second time in - * the LOG output. + * debug_query_string to prevent it from appearing a second time in the + * LOG output. */ debug_query_string = NULL; } @@ -4445,8 +4454,8 @@ process_syncing_tables(XLogRecPtr end_lsn) else if (newsync->status == SYNC_STATUS_FAILED) { /* - * Failed SYNC operation should be ignored until someone processes - * the error and changes the status. + * Failed SYNC operation should be ignored until someone + * processes the error and changes the status. */ sync->status = SYNC_STATUS_FAILED; sync->statuslsn = InvalidXLogRecPtr; @@ -4621,13 +4630,13 @@ interval_to_timeoffset(const Interval *interval) void spock_apply_main(Datum main_arg) { - int slot = DatumGetInt32(main_arg); - PGconn *streamConn; - RepOriginId originid; - XLogRecPtr origin_startpos; - MemoryContext saved_ctx; - char *repsets; - char *origins; + int slot = DatumGetInt32(main_arg); + PGconn *streamConn; + RepOriginId originid; + XLogRecPtr origin_startpos; + MemoryContext saved_ctx; + char *repsets; + char *origins; /* Setup shmem. */ spock_worker_attach(slot, SPOCK_WORKER_APPLY); @@ -4636,8 +4645,8 @@ spock_apply_main(Datum main_arg) /* * The apply worker is not a regular backend and has no client query - * string. Initialize debug_query_string to NULL so that LOG reports - * do not print arbitrary memory contents. + * string. Initialize debug_query_string to NULL so that LOG reports do + * not print arbitrary memory contents. */ debug_query_string = NULL; @@ -4777,12 +4786,12 @@ apply_replay_entry_create(int bufsize, char *buf) * is freed with PQfreemem (libpq-allocated) or pfree (read from spill file). */ static void -apply_replay_entry_free(ApplyReplayEntry *entry) +apply_replay_entry_free(ApplyReplayEntry * entry) { if (entry->from_pq) PQfreemem(entry->copydata.data); /* libpq-allocated */ else - pfree(entry->copydata.data); /* palloc'd from spill read */ + pfree(entry->copydata.data); /* palloc'd from spill read */ pfree(entry); } @@ -4800,9 +4809,10 @@ apply_replay_spill_write_entry(int len, char *data) /* * Increment the count before writing so that a partial or failed write * (ERROR from BufFileWrite) leaves the count higher than the number of - * complete records on disk. During replay, apply_replay_spill_read_entry() - * will attempt to read this record, hit EOF or a short read, and raise - * ERROR — which triggers a clean worker restart via the outer PG_CATCH. + * complete records on disk. During replay, + * apply_replay_spill_read_entry() will attempt to read this record, hit + * EOF or a short read, and raise ERROR — which triggers a clean worker + * restart via the outer PG_CATCH. */ apply_replay_spill_count++; BufFileWrite(apply_replay_spill_file, &len, sizeof(int)); @@ -4819,11 +4829,11 @@ apply_replay_spill_write_entry(int len, char *data) static ApplyReplayEntry * apply_replay_spill_read_entry(void) { - int len; - size_t nread; - char *data; + int len; + size_t nread; + char *data; ApplyReplayEntry *entry; - MemoryContext oldcontext; + MemoryContext oldcontext; Assert(MyApplyWorker->use_try_block && apply_replay_spill_file != NULL); @@ -4947,10 +4957,10 @@ apply_replay_queue_next_entry(void) else { /* - * Replay queue exhausted — switch back to stream reading. - * The remaining cleanup (spill file, PQfreemem of in-memory - * entries, MemoryContextReset) is deferred to - * apply_replay_queue_reset called from handle_commit. + * Replay queue exhausted — switch back to stream reading. The + * remaining cleanup (spill file, PQfreemem of in-memory entries, + * MemoryContextReset) is deferred to apply_replay_queue_reset called + * from handle_commit. */ apply_replay_mode = false; return NULL; @@ -4973,11 +4983,11 @@ apply_replay_queue_next_entry(void) * automatically by MemoryContextReset(ApplyReplayContext). */ static bool -apply_replay_queue_append_entry(ApplyReplayEntry **entry_p, StringInfo *msg_p) +apply_replay_queue_append_entry(ApplyReplayEntry * *entry_p, StringInfo *msg_p) { ApplyReplayEntry *entry = *entry_p; StringInfo msg = *msg_p; - MemoryContext oldctx; + MemoryContext oldctx; Assert(entry != NULL); Assert(msg != NULL); @@ -4987,8 +4997,8 @@ apply_replay_queue_append_entry(ApplyReplayEntry **entry_p, StringInfo *msg_p) apply_replay_bytes + msg->len > spock_replay_queue_size * 1024L * 1024L) { /* - * Allocate the BufFile in TopMemoryContext so it survives - * across transaction boundaries, as required by + * Allocate the BufFile in TopMemoryContext so it survives across + * transaction boundaries, as required by * BufFileCreateTemp(interXact=true). */ oldctx = MemoryContextSwitchTo(TopMemoryContext); @@ -5016,20 +5026,20 @@ apply_replay_queue_append_entry(ApplyReplayEntry **entry_p, StringInfo *msg_p) /* * Move the entry struct from ApplyReplayContext to TopMemoryContext. * handle_commit calls apply_replay_queue_reset which does - * MemoryContextReset(ApplyReplayContext). Spilled entries are not - * in the in-memory linked list and must survive until the caller - * frees them explicitly after replication_handler returns. + * MemoryContextReset(ApplyReplayContext). Spilled entries are not in + * the in-memory linked list and must survive until the caller frees + * them explicitly after replication_handler returns. */ oldctx = MemoryContextSwitchTo(TopMemoryContext); mc_entry = (ApplyReplayEntry *) palloc(sizeof(ApplyReplayEntry)); /* palloc and memcpy use the same sizeof — no overflow possible. */ - memcpy(mc_entry, entry, sizeof(ApplyReplayEntry)); /* nosemgrep */ + memcpy(mc_entry, entry, sizeof(ApplyReplayEntry)); /* nosemgrep */ MemoryContextSwitchTo(oldctx); pfree(entry); *entry_p = mc_entry; *msg_p = &mc_entry->copydata; - return true; /* caller must free */ + return true; /* caller must free */ } else { @@ -5053,7 +5063,7 @@ apply_replay_queue_append_entry(ApplyReplayEntry **entry_p, StringInfo *msg_p) elog(DEBUG1, "SPOCK %s: replay queue keep in-memory entry %u: ", MySubscription->name, xact_action_counter); - return false; /* freed by MemoryContextReset */ + return false; /* freed by MemoryContextReset */ } } diff --git a/src/spock_apply_heap.c b/src/spock_apply_heap.c index 02de755d7..48b78b461 100644 --- a/src/spock_apply_heap.c +++ b/src/spock_apply_heap.c @@ -640,8 +640,9 @@ spock_handle_conflict_and_apply(SpockRelation *rel, EState *estate, } /* - * See if we need to log any conflict to the server log and spock.resolutions - * Calling this does not necessarily mean that there is a conflict + * See if we need to log any conflict to the server log and + * spock.resolutions Calling this does not necessarily mean that there is + * a conflict */ spock_report_conflict(is_insert ? SPOCK_CT_INSERT_EXISTS : SPOCK_CT_UPDATE_EXISTS, rel, TTS_TUP(localslot), oldtup, @@ -697,7 +698,7 @@ spock_handle_conflict_and_apply(SpockRelation *rel, EState *estate, */ if (apply) { - UserContext ucxt; + UserContext ucxt; ResourceOwner save_resowner = NULL; /* Make sure that any user-supplied code runs as the table owner. */ @@ -736,12 +737,12 @@ spock_handle_conflict_and_apply(SpockRelation *rel, EState *estate, CurrentResourceOwner = save_resowner; /* - * If the UPDATE's new values violated a unique constraint, - * report it as an update_exists conflict before re-throwing. - * This matches PG18 native conflict detection behavior. + * If the UPDATE's new values violated a unique constraint, report + * it as an update_exists conflict before re-throwing. This + * matches PG18 native conflict detection behavior. * - * We cannot safely call spock_report_conflict() here because - * the executor may have invalidated tuple slot data during its + * We cannot safely call spock_report_conflict() here because the + * executor may have invalidated tuple slot data during its * partial execution. Use a simple elog that is similar instead */ if (!is_insert) @@ -761,7 +762,7 @@ spock_handle_conflict_and_apply(SpockRelation *rel, EState *estate, edata->message); #if PG_VERSION_NUM >= 180000 spock_stat_report_subscription_conflict( - MyApplyWorker->subid, SPOCK_CT_UPDATE_EXISTS); + MyApplyWorker->subid, SPOCK_CT_UPDATE_EXISTS); #endif } FreeErrorData(edata); @@ -1005,8 +1006,8 @@ spock_apply_heap_update(SpockRelation *rel, SpockTupleData *oldtup, * * Note this will fail if there are other conflicting unique indexes. * - * spock_handle_conflict_and_apply is a misnomer as it is called for - * the normal UPDATE case, too. + * spock_handle_conflict_and_apply is a misnomer as it is called for the + * normal UPDATE case, too. */ if (found) { @@ -1016,11 +1017,15 @@ spock_apply_heap_update(SpockRelation *rel, SpockTupleData *oldtup, } else { - /* SPOCK_CT_UPDATE_MISSING case gets logged in exception_log, not resolutions */ + /* + * SPOCK_CT_UPDATE_MISSING case gets logged in exception_log, not + * resolutions + */ SpockExceptionLog *exception_log = &exception_log_ptr[my_exception_log_index]; #if PG_VERSION_NUM >= 180000 if (!MyApplyWorker->use_try_block) + /* * To avoid duplicate messages, only report the conflict on the * successful pathway. We skip counting when the update logic has @@ -1029,6 +1034,7 @@ spock_apply_heap_update(SpockRelation *rel, SpockTupleData *oldtup, spock_stat_report_subscription_conflict(MyApplyWorker->subid, SPOCK_CT_UPDATE_MISSING); #endif + /* * The tuple to be updated could not be found. Do nothing except for * emitting a log message. TODO: Add pkey information as well. @@ -1125,13 +1131,13 @@ spock_apply_heap_delete(SpockRelation *rel, SpockTupleData *oldtup) */ if (found) { - UserContext ucxt; - TransactionId xmin; - TimestampTz local_ts; - RepOriginId local_origin; - bool local_origin_found; - HeapTuple applytuple; - SpockConflictResolution resolution; + UserContext ucxt; + TransactionId xmin; + TimestampTz local_ts; + RepOriginId local_origin; + bool local_origin_found; + HeapTuple applytuple; + SpockConflictResolution resolution; SpockExceptionLog *exception_log = &exception_log_ptr[my_exception_log_index]; @@ -1147,25 +1153,25 @@ spock_apply_heap_delete(SpockRelation *rel, SpockTupleData *oldtup) MemoryContextSwitchTo(oldctx); local_origin_found = get_tuple_origin(rel, local_tuple, - &(local_tuple->t_self), &xmin, - &local_origin, &local_ts); + &(local_tuple->t_self), &xmin, + &local_origin, &local_ts); /* * Check if the local tuple was inserted/updated after this DELETE. */ if (!try_resolve_conflict(rel->rel, TTS_TUP(localslot), - NULL, /* remotetuple */ - &applytuple, local_origin, - local_ts, &resolution)) + NULL, /* remotetuple */ + &applytuple, local_origin, + local_ts, &resolution)) { /* Current DELETE happened before current tuple */ spock_report_conflict(SPOCK_CT_DELETE_EXISTS, - rel, TTS_TUP(localslot), oldtup, - NULL, /* remotetuple */ - local_tuple, SpockResolution_Skip, - xmin, local_origin_found, local_origin, - local_ts, edata->targetRel->idxoid - ); + rel, TTS_TUP(localslot), oldtup, + NULL, /* remotetuple */ + local_tuple, SpockResolution_Skip, + xmin, local_origin_found, local_origin, + local_ts, edata->targetRel->idxoid + ); } else { @@ -1175,14 +1181,14 @@ spock_apply_heap_delete(SpockRelation *rel, SpockTupleData *oldtup) { /* Check more carefully if we may need to log an origin change */ spock_report_conflict(SPOCK_CT_DELETE_ORIGIN_DIFFERS, - rel, TTS_TUP(localslot), oldtup, - NULL, - local_tuple, - SpockResolution_ApplyRemote, - xmin, local_origin_found, local_origin, - local_ts, - edata->targetRel->idxoid - ); + rel, TTS_TUP(localslot), oldtup, + NULL, + local_tuple, + SpockResolution_ApplyRemote, + xmin, local_origin_found, local_origin, + local_ts, + edata->targetRel->idxoid + ); } /* Make sure that any user-supplied code runs as the table owner. */ @@ -1220,4 +1226,3 @@ spock_apply_heap_delete(SpockRelation *rel, SpockTupleData *oldtup) EvalPlanQualEnd(&epqstate); finish_edata(edata); } - diff --git a/src/spock_autoddl.c b/src/spock_autoddl.c index be86d836c..4ac2b81ff 100644 --- a/src/spock_autoddl.c +++ b/src/spock_autoddl.c @@ -103,8 +103,9 @@ spock_autoddl_process(PlannedStmt *pstmt, PushActiveSnapshot(GetTransactionSnapshot()); /* - * Elevate access rights: Utility hook is called under the session user, who - * does not necessarily have access permission to Spock extension objects. + * Elevate access rights: Utility hook is called under the session user, + * who does not necessarily have access permission to Spock extension + * objects. */ GetUserIdAndSecContext(&save_userid, &save_sec_context); SetUserIdAndSecContext(BOOTSTRAP_SUPERUSERID, @@ -115,8 +116,8 @@ spock_autoddl_process(PlannedStmt *pstmt, goto end; /* - * Refuse DDL aimed at a built-in extension-owned schema before anything is - * queued. This is a post-execution hook, so the ERROR aborts the + * Refuse DDL aimed at a built-in extension-owned schema before anything + * is queued. This is a post-execution hook, so the ERROR aborts the * transaction and rolls the statement back. */ spock_guard_extension_owned_ddl(parsetree); @@ -164,14 +165,14 @@ spock_autoddl_process(PlannedStmt *pstmt, void add_ddl_to_repset(Node *parsetree) { - Relation targetrel; + Relation targetrel; SpockLocalNode *node; - Oid reloid = InvalidOid; - RangeVar *relation = NULL; - List *reloids = NIL; - ListCell *lc; - bool missing_ok = false; - bool check_alter_stickiness = false; + Oid reloid = InvalidOid; + RangeVar *relation = NULL; + List *reloids = NIL; + ListCell *lc; + bool missing_ok = false; + bool check_alter_stickiness = false; AlterTableStmt *atstmt; if (!spock_include_ddl_repset) @@ -248,7 +249,7 @@ extract_ddl_target(Node *parsetree, RangeVar **relation, Oid *reloid, } else if (atstmt->objtype == OBJECT_INDEX) { - ListCell *cell; + ListCell *cell; /* * ALTER INDEX ... ATTACH PARTITION may complete a @@ -261,7 +262,7 @@ extract_ddl_target(Node *parsetree, RangeVar **relation, Oid *reloid, if (cmd->subtype == AT_AttachPartition) { - Relation indrel; + Relation indrel; indrel = relation_openrv(atstmt->relation, AccessShareLock); @@ -357,8 +358,8 @@ static void apply_repset_policy_for_reloid(SpockLocalNode *node, Oid reloid, AlterTableStmt *atstmt) { - Relation targetrel; - SpockRepSet *repset; + Relation targetrel; + SpockRepSet *repset; targetrel = RelationIdGetRelation(reloid); @@ -412,8 +413,8 @@ apply_repset_policy_for_reloid(SpockLocalNode *node, Oid reloid, if (atstmt != NULL) { AlterPkRiChange pkchange; - bool in_any_upd_del; - bool in_any_custom; + bool in_any_upd_del; + bool in_any_custom; pkchange = classify_alter_pkri_change(atstmt, targetrel); @@ -431,10 +432,10 @@ apply_repset_policy_for_reloid(SpockLocalNode *node, Oid reloid, if (in_any_upd_del) { /* - * One or more UPD/DEL memberships need the now-missing - * PK/RI. Loud-warn only when a custom membership is in - * play, since pure default-routed tables already produce - * an INFO from the standard remove+add flow. + * One or more UPD/DEL memberships need the now-missing PK/RI. + * Loud-warn only when a custom membership is in play, since + * pure default-routed tables already produce an INFO from the + * standard remove+add flow. */ if (in_any_custom) ereport(WARNING, @@ -455,7 +456,7 @@ apply_repset_policy_for_reloid(SpockLocalNode *node, Oid reloid, } /* else: no custom, no UPD/DEL — fall through */ } - else /* PKRI_ADDED */ + else /* PKRI_ADDED */ { if (in_any_custom) { @@ -546,6 +547,7 @@ classify_alter_pkri_change(AlterTableStmt *atstmt, Relation targetrel) } break; case AT_AddColumn: + /* * "ALTER TABLE ... ADD COLUMN x int PRIMARY KEY" arrives as * AT_AddColumn with the PRIMARY KEY embedded in the @@ -584,11 +586,12 @@ classify_alter_pkri_change(AlterTableStmt *atstmt, Relation targetrel) /* * REPLICA_IDENTITY_DEFAULT resets to "use the primary * key if one exists, otherwise nothing". We cannot - * determine the effective direction from the parse tree - * alone, so set both flags and let the post-state - * disambiguate: if rd_pkindex is valid after the ALTER, - * the table gains effective RI (PKRI_ADDED); if not, - * it loses whatever RI was in effect (PKRI_DROPPED). + * determine the effective direction from the parse + * tree alone, so set both flags and let the + * post-state disambiguate: if rd_pkindex is valid + * after the ALTER, the table gains effective RI + * (PKRI_ADDED); if not, it loses whatever RI was in + * effect (PKRI_DROPPED). */ has_add_pkri_cmd = true; has_drop_pkri_candidate = true; @@ -597,11 +600,12 @@ classify_alter_pkri_change(AlterTableStmt *atstmt, Relation targetrel) break; case AT_DropConstraint: case AT_DropColumn: + /* - * Pessimistic: any constraint or column drop could remove - * the PK. The post-state check (!post_has_pk_or_ri) is the - * real filter; if the table still has a PK/RI after the - * ALTER, PKRI_UNCHANGED is returned regardless. + * Pessimistic: any constraint or column drop could remove the + * PK. The post-state check (!post_has_pk_or_ri) is the real + * filter; if the table still has a PK/RI after the ALTER, + * PKRI_UNCHANGED is returned regardless. */ has_drop_pkri_candidate = true; break; @@ -657,7 +661,7 @@ classify_repset_membership(Oid nodeid, Oid reloid, *in_any_upd_del = true; if (*in_any_upd_del && *in_any_custom) - break; /* both flags are now in their terminal state */ + break; /* both flags are now in their terminal state */ } } diff --git a/src/spock_change_log.c b/src/spock_change_log.c index 8ba66ef34..a5030a975 100644 --- a/src/spock_change_log.c +++ b/src/spock_change_log.c @@ -71,10 +71,10 @@ append_row_json(StringInfo buf, SpockRelation *rel, appendStringInfoChar(buf, '{'); /* - * Build the set of local attnums that are part of the primary key - * index. We deliberately use NoLock here - the apply worker - * already holds a row-level lock on the user relation, and we are - * only inspecting the in-memory index metadata. + * Build the set of local attnums that are part of the primary key index. + * We deliberately use NoLock here - the apply worker already holds a + * row-level lock on the user relation, and we are only inspecting the + * in-memory index metadata. */ if (pk_only && OidIsValid(rel->idxoid)) { @@ -103,9 +103,8 @@ append_row_json(StringInfo buf, SpockRelation *rel, /* * SpockTupleData is indexed by remote attnum (0..natts-1). - * rel->attmap (when set) maps remote -> local 0-based. When - * attmap is NULL the columns are 1:1 and the local attnum is - * simply i + 1. + * rel->attmap (when set) maps remote -> local 0-based. When attmap + * is NULL the columns are 1:1 and the local attnum is simply i + 1. */ local_attno = (rel->attmap != NULL) ? rel->attmap[i] + 1 : i + 1; @@ -201,7 +200,7 @@ spock_log_apply_change(const char *action, if (pk_src != NULL) { appendStringInfoString(&buf, ",\"pk\":"); - append_row_json(&buf, rel, pk_src, true /* pk_only */); + append_row_json(&buf, rel, pk_src, true /* pk_only */ ); } if (spock_apply_change_logging == SPOCK_APPLY_CHANGE_LOG_VERBOSE) diff --git a/src/spock_common.c b/src/spock_common.c index 3f4ec25ad..7851dcf68 100644 --- a/src/spock_common.c +++ b/src/spock_common.c @@ -231,7 +231,7 @@ SpockIndexNullsAreDistinct(Relation idxrel) */ static bool index_keys_match(TupleTableSlot *slot1, TupleTableSlot *slot2, Relation idxrel, - ScanKey skey, int ncols) + ScanKey skey, int ncols) { bool nulls_distinct = SpockIndexNullsAreDistinct(idxrel); int i; @@ -290,12 +290,12 @@ index_keys_match(TupleTableSlot *slot1, TupleTableSlot *slot2, Relation idxrel, static ExprState * SpockPreparePredicateExpr(Relation idxrel, EState *estate) { - List *predExprList; + List *predExprList; ExprState *result; MemoryContext oldcxt; if (heap_attisnull(idxrel->rd_indextuple, Anum_pg_index_indpred, NULL)) - return NULL; + return NULL; oldcxt = MemoryContextSwitchTo(estate->es_query_cxt); predExprList = RelationGetIndexPredicate(idxrel); @@ -303,6 +303,7 @@ SpockPreparePredicateExpr(Relation idxrel, EState *estate) MemoryContextSwitchTo(oldcxt); return result; } + /* * Check if the predicate matches by evaluating the index predicate on the * given tuple slot. This is used for both remote and local tuples. @@ -360,16 +361,16 @@ SpockRelationFindReplTupleByIndex(EState *estate, /* * Under NULLS DISTINCT (the default), a remote row with a NULL in any of - * this index's key columns can never conflict with an existing row here -- - * NULL is never equal to anything, including another NULL -- so skip the - * probe entirely. + * this index's key columns can never conflict with an existing row here + * -- NULL is never equal to anything, including another NULL -- so skip + * the probe entirely. * - * This is not just an optimization: spock_build_replindex_scan_key() emits - * SK_SEARCHNULL for a NULL key value, which makes the btree return *every* - * row whose key IS NULL. index_keys_match() below then discards each of - * them, so without this short-circuit every applied insert would run an - * O(rows) scan -- guaranteed to find nothing -- on a unique index over a - * mostly-NULL key column. + * This is not just an optimization: spock_build_replindex_scan_key() + * emits SK_SEARCHNULL for a NULL key value, which makes the btree return + * *every* row whose key IS NULL. index_keys_match() below then discards + * each of them, so without this short-circuit every applied insert would + * run an O(rows) scan -- guaranteed to find nothing -- on a unique index + * over a mostly-NULL key column. * * Under NULLS NOT DISTINCT, NULLs compare equal, so a NULL-keyed row CAN * conflict; don't short-circuit -- let the scan run and let @@ -383,7 +384,7 @@ SpockRelationFindReplTupleByIndex(EState *estate, slot_getallattrs(searchslot); for (i = 0; i < IndexRelationGetNumberOfKeyAttributes(idxrel); i++) { - int table_attno = indkey->values[i]; + int table_attno = indkey->values[i]; if (AttributeNumberIsValid(table_attno) && searchslot->tts_isnull[table_attno - 1]) @@ -696,11 +697,11 @@ commit_ts_str_has_offset(const char *s) Assert(s != NULL); /* - * Not tokenisable as a datetime at all. The caller parses before asking, so - * a string that reaches us has already satisfied timestamptz_in() and this - * should not happen; answer no rather than claim an offset we did not see. - * Note the contract is that negative means failure, zero or positive - * success. + * Not tokenisable as a datetime at all. The caller parses before asking, + * so a string that reaches us has already satisfied timestamptz_in() and + * this should not happen; answer no rather than claim an offset we did + * not see. Note the contract is that negative means failure, zero or + * positive success. */ if (ParseDateTime(s, workbuf, sizeof(workbuf), field, ftype, MAXDATEFIELDS, &nf) < 0) @@ -708,9 +709,10 @@ commit_ts_str_has_offset(const char *s) /* * DTK_TZ is a numeric UTC offset. A zone abbreviation arrives as - * DTK_STRING instead and is deliberately not accepted here: an abbreviation - * is not unique across zones -- CST is China, Cuba and US Central -- so it - * does not pin down an instant even when the reader can resolve it. + * DTK_STRING instead and is deliberately not accepted here: an + * abbreviation is not unique across zones -- CST is China, Cuba and US + * Central -- so it does not pin down an instant even when the reader can + * resolve it. */ for (i = 0; i < nf; i++) { @@ -759,18 +761,18 @@ str_to_timestamptz(const char *s) TimestampTz result; result = DatumGetTimestampTz(DirectFunctionCall3(timestamptz_in, - CStringGetDatum(s), - ObjectIdGetDatum(InvalidOid), - Int32GetDatum(-1))); + CStringGetDatum(s), + ObjectIdGetDatum(InvalidOid), + Int32GetDatum(-1))); /* * Rejects infinity and -infinity, which no server stamps a commit with. * Letting one through would put INT64_MAX or INT64_MIN into * SpockApplyProgress and from there into spock.progress, where every lag * figure and every prev_remote_ts comparison derived from it turns into - * nonsense. spock_sync.c already Asserts IS_VALID_TIMESTAMP on the result; - * this makes the same check hold in production builds, at the one place all - * such values pass through. + * nonsense. spock_sync.c already Asserts IS_VALID_TIMESTAMP on the + * result; this makes the same check hold in production builds, at the one + * place all such values pass through. */ if (!IS_VALID_TIMESTAMP(result)) ereport(ERROR, diff --git a/src/spock_conflict.c b/src/spock_conflict.c index bbcf4e004..854acaea7 100644 --- a/src/spock_conflict.c +++ b/src/spock_conflict.c @@ -135,15 +135,17 @@ conflict_resolve_by_timestamp(RepOriginId local_origin_id, * * loc_node is always this node (the one applying the change), not the * origin of the local tuple. The tiebreaker answers "which physical - * node wins?" — that is a property of the applying node vs the remote - * sending node, regardless of what origin is stamped on the existing - * local tuple. Using local_origin_id here incorrectly resolves to the - * same node on both sides whenever the local row was replicated from - * the same source that is sending the update (single-writer topology). + * node wins?" — that is a property of the applying node vs the + * remote sending node, regardless of what origin is stamped on the + * existing local tuple. Using local_origin_id here incorrectly + * resolves to the same node on both sides whenever the local row was + * replicated from the same source that is sending the update + * (single-writer topology). * - * Same-origin shortcut: when the local tuple and the remote change share - * the same origin (e.g. the same row updated twice in one upstream - * transaction), there is no real conflict — apply the remote value. + * Same-origin shortcut: when the local tuple and the remote change + * share the same origin (e.g. the same row updated twice in one + * upstream transaction), there is no real conflict — apply the + * remote value. */ SpockLocalNode *applying_node; SpockNode *loc_node; @@ -392,13 +394,16 @@ spock_report_conflict(SpockConflictType conflict_type, if (conflict_type == SPOCK_CT_UPDATE_EXISTS || conflict_type == SPOCK_CT_DELETE_ORIGIN_DIFFERS) { /* - * If updating a row that came from the same origin, - * do not report it as a conflict nor log + * If updating a row that came from the same origin, do not report it + * as a conflict nor log */ if (local_tuple_origin == replorigin_session_origin) return; - /* If updated in the same transaction, do not report it as a conflict nor log */ + /* + * If updated in the same transaction, do not report it as a conflict + * nor log + */ if (local_tuple_origin == InvalidRepOriginId && TransactionIdEquals(local_tuple_xid, GetTopTransactionId())) return; @@ -408,8 +413,8 @@ spock_report_conflict(SpockConflictType conflict_type, conflict_type = SPOCK_CT_UPDATE_ORIGIN_DIFFERS; /* - * Origin-differs is normal replication flow, not a true conflict. - * Do not write to spock.resolutions regardless of which side wins. + * Origin-differs is normal replication flow, not a true conflict. Do + * not write to spock.resolutions regardless of which side wins. */ save_in_resolutions = false; @@ -440,9 +445,9 @@ spock_report_conflict(SpockConflictType conflict_type, return; /* - * If the local tuple predates the subscription, it was - * loaded before replication was set up (e.g. pg_restore). - * Do not treat this as an origin-change conflict. + * If the local tuple predates the subscription, it was loaded + * before replication was set up (e.g. pg_restore). Do not + * treat this as an origin-change conflict. */ if (local_tuple_commit_ts < MySubscription->created_at) return; @@ -471,8 +476,8 @@ spock_report_conflict(SpockConflictType conflict_type, /* * Building the log message below stringifies both full tuples and does - * catalog lookups, once per conflict. Skip it when the level would not be - * emitted. (The resolutions-table write above is gated separately.) + * catalog lookups, once per conflict. Skip it when the level would not + * be emitted. (The resolutions-table write above is gated separately.) */ if (!message_level_is_interesting(spock_conflict_log_level)) return; @@ -485,10 +490,10 @@ spock_report_conflict(SpockConflictType conflict_type, timestamptz_to_str(local_tuple_commit_ts), MAXDATELEN); if (local_tuple_origin == InvalidRepOriginId) - strlcpy(local_origin_str, "local", sizeof(local_origin_str)); /* locally written */ + strlcpy(local_origin_str, "local", sizeof(local_origin_str)); /* locally written */ else snprintf(local_origin_str, sizeof(local_origin_str), "%u", - (unsigned int) local_tuple_origin); + (unsigned int) local_tuple_origin); } initStringInfo(&remotetup); @@ -570,17 +575,17 @@ spock_report_conflict(SpockConflictType conflict_type, case SPOCK_CT_DELETE_ORIGIN_DIFFERS: ereport(spock_conflict_log_level, (errcode(ERRCODE_INTEGRITY_CONSTRAINT_VIOLATION), - errmsg("CONFLICT: remote %s on relation %s replica identity index %s (origin differs). Resolution: %s.", - SpockConflictTypeName(conflict_type), - qualrelname, idxname, - conflict_resolution_to_string(resolution)), - errdetail("existing local tuple {%s} xid=%u,origin=%s,timestamp=%s; remote delete in xact origin=%u,timestamp=%s,commit_lsn=%X/%X", - localtup.data, local_tuple_xid, - local_origin_str, - local_tup_ts_str, - replorigin_session_origin, - timestamptz_to_str(replorigin_session_origin_timestamp), - LSN_FORMAT_ARGS(replorigin_session_origin_lsn)))); + errmsg("CONFLICT: remote %s on relation %s replica identity index %s (origin differs). Resolution: %s.", + SpockConflictTypeName(conflict_type), + qualrelname, idxname, + conflict_resolution_to_string(resolution)), + errdetail("existing local tuple {%s} xid=%u,origin=%s,timestamp=%s; remote delete in xact origin=%u,timestamp=%s,commit_lsn=%X/%X", + localtup.data, local_tuple_xid, + local_origin_str, + local_tup_ts_str, + replorigin_session_origin, + timestamptz_to_str(replorigin_session_origin_timestamp), + LSN_FORMAT_ARGS(replorigin_session_origin_lsn)))); break; case SPOCK_CT_DELETE_EXISTS: ereport(spock_conflict_log_level, @@ -841,8 +846,8 @@ tuple_to_stringinfo(StringInfo s, TupleDesc tupdesc, HeapTuple tuple) attr = TupleDescAttr(tupdesc, natt); /* - * don't print dropped or generated columns, we can't be sure everything - * is available for them + * don't print dropped or generated columns, we can't be sure + * everything is available for them */ if (attr->attisdropped || attr->attgenerated) continue; @@ -921,9 +926,9 @@ tuple_to_stringinfo(StringInfo s, TupleDesc tupdesc, HeapTuple tuple) static uint64 spock_cleanup_resolutions_core(int days) { - int ret; - uint64 ndeleted; - StringInfoData cmd; + int ret; + uint64 ndeleted; + StringInfoData cmd; initStringInfo(&cmd); appendStringInfo(&cmd, @@ -967,8 +972,8 @@ spock_cleanup_resolutions_core(int days) uint64 spock_cleanup_resolutions(void) { - uint64 ndeleted = 0; - MemoryContext oldcontext; + uint64 ndeleted = 0; + MemoryContext oldcontext; if (spock_resolutions_retention_days <= 0) return 0; @@ -980,14 +985,14 @@ spock_cleanup_resolutions(void) oldcontext = CurrentMemoryContext; /* - * The entire transaction lifetime lives inside PG_TRY so that errors - * from StartTransactionCommand() or PushActiveSnapshot() — not just SPI + * The entire transaction lifetime lives inside PG_TRY so that errors from + * StartTransactionCommand() or PushActiveSnapshot() — not just SPI * execution failures — are also caught and downgraded to WARNING. * - * SetCurrentStatementStartTimestamp() must precede StartTransactionCommand() - * so the transaction's cached current_timestamp is initialised correctly. - * PushActiveSnapshot() is required by SPI_execute (it asserts an active - * snapshot exists). + * SetCurrentStatementStartTimestamp() must precede + * StartTransactionCommand() so the transaction's cached current_timestamp + * is initialised correctly. PushActiveSnapshot() is required by + * SPI_execute (it asserts an active snapshot exists). */ PG_TRY(); { @@ -1012,8 +1017,8 @@ spock_cleanup_resolutions(void) /* * Abort only if a transaction was actually started. If the error * occurred in SetCurrentStatementStartTimestamp() or before - * StartTransactionCommand() completed, there may be no transaction - * to abort. AbortCurrentTransaction() also handles SPI and snapshot + * StartTransactionCommand() completed, there may be no transaction to + * abort. AbortCurrentTransaction() also handles SPI and snapshot * cleanup via AtEOXact_SPI() and AtAbort_Snapshot(), avoiding * double-cleanup if core() already called SPI_finish() before * CommitTransactionCommand() threw. @@ -1047,7 +1052,7 @@ PG_FUNCTION_INFO_V1(spock_cleanup_resolutions_sql); Datum spock_cleanup_resolutions_sql(PG_FUNCTION_ARGS) { - int days; + int days; if (!superuser()) ereport(ERROR, diff --git a/src/spock_conflict_stat.c b/src/spock_conflict_stat.c index 077f7b512..1d4d395cf 100644 --- a/src/spock_conflict_stat.c +++ b/src/spock_conflict_stat.c @@ -37,8 +37,8 @@ PG_FUNCTION_INFO_V1(spock_reset_subscription_stats); /* Shared memory wrapper for spock subscription conflict stats */ typedef struct Spock_Stat_Subscription { - PgStatShared_Common header; - Spock_Stat_StatSubEntry stats; + PgStatShared_Common header; + Spock_Stat_StatSubEntry stats; } Spock_Stat_Subscription; /* @@ -60,8 +60,8 @@ static const char *const SpockConflictStatColNames[SPOCK_CONFLICT_NUM_TYPES] = { static bool spock_stat_subscription_flush_cb(PgStat_EntryRef *entry_ref, bool nowait); static void spock_stat_subscription_reset_timestamp_cb( - PgStatShared_Common *header, - TimestampTz ts); + PgStatShared_Common *header, + TimestampTz ts); /* * We rely on the pgstat infrastructure here, employing spock's own conflict @@ -129,11 +129,12 @@ spock_stat_create_subscription(Oid subid) true, NULL); if (pg_atomic_read_u32(&ref->shared_entry->refcount) != 2) + /* * Should never happen: a new subscription stats entry should have * exactly two references (the hashtable entry and our own). A higher - * count means a stale entry from a previous subscription with the same - * OID was not properly cleaned up. + * count means a stale entry from a previous subscription with the + * same OID was not properly cleaned up. */ ereport(WARNING, (errmsg("conflict statistics entry for subscription %u " @@ -167,7 +168,7 @@ spock_stat_fetch_stat_subscription(Oid subid) { return (Spock_Stat_StatSubEntry *) #if PG_VERSION_NUM >= 190000 - /* PG19 added a trailing may_free out-parameter; NULL means "don't care". */ + /* PG19 added a trailing may_free out-parameter; NULL means "don't care". */ pgstat_fetch_entry(SPOCK_PGSTAT_KIND_LRCONFLICTS, MyDatabaseId, subid, NULL); #else pgstat_fetch_entry(SPOCK_PGSTAT_KIND_LRCONFLICTS, MyDatabaseId, subid); @@ -289,7 +290,7 @@ spock_stat_subscription_reset_timestamp_cb(PgStatShared_Common *header, ((Spock_Stat_Subscription *) header)->stats.stat_reset_timestamp = ts; } -#endif /* PG_VERSION_NUM >= 180000 */ +#endif /* PG_VERSION_NUM >= 180000 */ #if PG_VERSION_NUM < 180000 @@ -303,7 +304,7 @@ spock_get_subscription_stats(PG_FUNCTION_ARGS) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("spock conflict statistics require PostgreSQL 18 or later"))); - PG_RETURN_NULL(); /* unreachable; suppress compiler warning */ + PG_RETURN_NULL(); /* unreachable; suppress compiler warning */ } Datum @@ -312,7 +313,7 @@ spock_reset_subscription_stats(PG_FUNCTION_ARGS) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("spock conflict statistics require PostgreSQL 18 or later"))); - PG_RETURN_NULL(); /* unreachable; suppress compiler warning */ + PG_RETURN_NULL(); /* unreachable; suppress compiler warning */ } -#endif /* PG_VERSION_NUM < 180000 */ +#endif /* PG_VERSION_NUM < 180000 */ diff --git a/src/spock_dependency.c b/src/spock_dependency.c index 6b16837ba..ee0058374 100644 --- a/src/spock_dependency.c +++ b/src/spock_dependency.c @@ -716,8 +716,8 @@ reportDependentObjects(const ObjectAddresses *targetObjects, * operating environment. */ if (spock_enable_quiet_mode || (behavior == DROP_CASCADE && - msglevel < my_client_min_messages && - (msglevel < my_log_min_messages || my_log_min_messages == LOG))) + msglevel < my_client_min_messages && + (msglevel < my_log_min_messages || my_log_min_messages == LOG))) return; /* diff --git a/src/spock_executor.c b/src/spock_executor.c index 0cdb8d088..ff2b93015 100644 --- a/src/spock_executor.c +++ b/src/spock_executor.c @@ -207,9 +207,9 @@ spock_ProcessUtility(PlannedStmt *pstmt, const char *queryString, * ddl_command_start event trigger, typically, which is free to run DDL of * its own through SPI. That DDL is an implementation detail of dropping * the extension, not something to ship: the subscriber runs its own copy - * when it applies the replicated DROP, so replicating it would execute the - * cleanup twice there. Core exposes creating_extension for the CREATE - * side but has no counterpart for DROP, so flag it here and let + * when it applies the replicated DROP, so replicating it would execute + * the cleanup twice there. Core exposes creating_extension for the + * CREATE side but has no counterpart for DROP, so flag it here and let * autoddl_can_proceed() skip anything nested inside. * * Restored before spock_autoddl_process() below, so the DROP EXTENSION diff --git a/src/spock_failover_slots.c b/src/spock_failover_slots.c index 757ff3e61..335a69f10 100644 --- a/src/spock_failover_slots.c +++ b/src/spock_failover_slots.c @@ -459,12 +459,12 @@ make_sync_failover_slots_dsn(StringInfo connstr, char *db_name) } /* - * Fall back to the walreceiver's connection string. - * The field might be legitimately empty for as long as a connection - * attempt is in flight. WalReceiverMain() clears conninfo before calling - * walrcv_connect() and only fills it in once the connection is fully - * established, so this happens on every walreceiver start and restart -- - * not merely in a narrow window while the standby comes up. + * Fall back to the walreceiver's connection string. The field might be + * legitimately empty for as long as a connection attempt is in flight. + * WalReceiverMain() clears conninfo before calling walrcv_connect() and + * only fills it in once the connection is fully established, so this + * happens on every walreceiver start and restart -- not merely in a + * narrow window while the standby comes up. */ Assert(WalRcv); @@ -581,8 +581,8 @@ wait_for_primary_slot_catchup(ReplicationSlot *slot, RemoteSlot *remote_slot) { /* * The walreceiver dropped its connection string while we were getting - * here, so it is reconnecting to the primary. Give up on this slot for - * now; the caller's next cycle starts over. + * here, so it is reconnecting to the primary. Give up on this slot + * for now; the caller's next cycle starts over. */ elog(DEBUG1, "no connection string for the primary yet, not waiting for slot %s", @@ -623,11 +623,11 @@ wait_for_primary_slot_catchup(ReplicationSlot *slot, RemoteSlot *remote_slot) /* * If the connection to the primary was lost (e.g. because the primary - * was stopped as part of a controlled failover), attempt to reconnect. - * We wrap the reconnect in PG_TRY so that a failed reconnect does not - * crash the bgworker; we simply wait and try again, and the - * RecoveryInProgress() check at the top of the loop will detect - * promotion and return false cleanly. + * was stopped as part of a controlled failover), attempt to + * reconnect. We wrap the reconnect in PG_TRY so that a failed + * reconnect does not crash the bgworker; we simply wait and try + * again, and the RecoveryInProgress() check at the top of the loop + * will detect promotion and return false cleanly. */ if (conn == NULL) { @@ -658,10 +658,10 @@ wait_for_primary_slot_catchup(ReplicationSlot *slot, RemoteSlot *remote_slot) /* * Query the primary for the current slot state. Wrap in PG_TRY so * that a connection failure (primary stopped before promotion) is - * handled gracefully: close the dead connection, wait, and retry. - * The RecoveryInProgress() check above will detect promotion on the - * next iteration and return false, allowing the caller to persist the - * slot with whatever WAL position the standby has locally reserved. + * handled gracefully: close the dead connection, wait, and retry. The + * RecoveryInProgress() check above will detect promotion on the next + * iteration and return false, allowing the caller to persist the slot + * with whatever WAL position the standby has locally reserved. */ query_failed = false; slots = NIL; @@ -943,28 +943,27 @@ synchronize_one_slot(RemoteSlot *remote_slot) /* * Compute the safe xmin horizon and seed the new slot. * - * Before, this section held ReplicationSlotControlLock LW_EXCLUSIVE - * + ProcArrayLock LW_EXCLUSIVE while calling - * ReplicationSlotsComputeRequiredXmin(true) (the "locks already - * held" form). That serialised this worker against every other - * caller of ReplicationSlotControlLock LW_SHARED — including the - * SHARED acquire that PG core itself does from - * ReplicationSlotRelease() and ReplicationSlotDropPtr() via - * ReplicationSlotsComputeRequiredXmin(false). On PG17+, where - * these helpers can be invoked indirectly later in this same - * function (and from other concurrent slot operations), the - * resulting contention on the standby manifested as a pile-up: - * the spock_failover_slots worker hangs in - * LWLockAcquire(ReplicationSlotControlLock, LW_SHARED) and every - * backend trying to initialise queues behind it. + * Before, this section held ReplicationSlotControlLock LW_EXCLUSIVE + + * ProcArrayLock LW_EXCLUSIVE while calling + * ReplicationSlotsComputeRequiredXmin(true) (the "locks already held" + * form). That serialised this worker against every other caller of + * ReplicationSlotControlLock LW_SHARED — including the SHARED + * acquire that PG core itself does from ReplicationSlotRelease() and + * ReplicationSlotDropPtr() via + * ReplicationSlotsComputeRequiredXmin(false). On PG17+, where these + * helpers can be invoked indirectly later in this same function (and + * from other concurrent slot operations), the resulting contention on + * the standby manifested as a pile-up: the spock_failover_slots + * worker hangs in LWLockAcquire(ReplicationSlotControlLock, + * LW_SHARED) and every backend trying to initialise queues behind it. * - * Fix: take ProcArrayLock LW_SHARED briefly to read the proc - * array, update the slot fields under the slot's SpinLock, then - * let ReplicationSlotsComputeRequiredXmin(false) acquire its own - * short SHARED RSCL the way every PG-core call site does. Per - * the comment in PG core's ReplicationSlotsComputeRequiredXmin: - * "Concurrent invocation may cause the computed slot xmin to - * regress. However, this is harmless..." + * Fix: take ProcArrayLock LW_SHARED briefly to read the proc array, + * update the slot fields under the slot's SpinLock, then let + * ReplicationSlotsComputeRequiredXmin(false) acquire its own short + * SHARED RSCL the way every PG-core call site does. Per the comment + * in PG core's ReplicationSlotsComputeRequiredXmin: "Concurrent + * invocation may cause the computed slot xmin to regress. However, + * this is harmless..." */ LWLockAcquire(ProcArrayLock, LW_SHARED); xmin_horizon = GetOldestSafeDecodingTransactionId(true); @@ -1013,10 +1012,10 @@ synchronize_one_slot(RemoteSlot *remote_slot) /* * Promotion interrupted the wait. A freshly promoted - * streaming standby has all WAL from pg_basebackup onward, - * so the slot's restart_lsn (set conservatively by - * ReplicationSlotReserveWal) is safe to use. Fall through - * to persist the slot. + * streaming standby has all WAL from pg_basebackup onward, so + * the slot's restart_lsn (set conservatively by + * ReplicationSlotReserveWal) is safe to use. Fall through to + * persist the slot. */ elog(LOG, "spock_failover_slots: persisting slot \"%s\" after " "promotion interrupted WAL catchup; standby has required WAL", @@ -1089,9 +1088,11 @@ synchronize_failover_slots(long sleep_time) list_length(spock_failover_slot_names_list) == 0) return sleep_time; - /* Sync requires hot_standby_feedback; skip when off so the worker keeps + /* + * Sync requires hot_standby_feedback; skip when off so the worker keeps * running without error. After user sets hot_standby_feedback on and - * reloads, the next cycle will run sync. */ + * reloads, the next cycle will run sync. + */ if (!hot_standby_feedback) return sleep_time; if (WalRcv->slotname[0] == '\0') @@ -1209,18 +1210,19 @@ synchronize_failover_slots(long sleep_time) } /* - * We need the WAL flush position both for the latestWalEnd/lsn check - * and for capping confirmed_lsn inside the slot loop. Read it once - * here so we use a consistent value throughout. + * We need the WAL flush position both for the latestWalEnd/lsn check and + * for capping confirmed_lsn inside the slot loop. Read it once here so + * we use a consistent value throughout. * - * On PostgreSQL builds with --enable-cassert, LogicalConfirmReceivedLocation - * asserts that the LSN passed to it is not InvalidXLogRecPtr. If - * GetWalRcvFlushRecPtr returns 0 (which can happen in the brief window - * after the WAL receiver starts but before it has flushed its first - * page), capping confirmed_lsn to 0 and then passing 0 to - * LogicalConfirmReceivedLocation will trip that assertion and SIGABRT the - * bgworker, causing a postmaster cluster reset on every loop iteration. - * Guard by returning early when the flush position is not yet valid. + * On PostgreSQL builds with --enable-cassert, + * LogicalConfirmReceivedLocation asserts that the LSN passed to it is not + * InvalidXLogRecPtr. If GetWalRcvFlushRecPtr returns 0 (which can happen + * in the brief window after the WAL receiver starts but before it has + * flushed its first page), capping confirmed_lsn to 0 and then passing 0 + * to LogicalConfirmReceivedLocation will trip that assertion and SIGABRT + * the bgworker, causing a postmaster cluster reset on every loop + * iteration. Guard by returning early when the flush position is not yet + * valid. */ { XLogRecPtr receivePtr = GetWalRcvFlushRecPtr(NULL, NULL); @@ -1321,8 +1323,8 @@ spock_failover_slots_main(Datum main_arg) #if PG_VERSION_NUM >= 180000 /* * PostgreSQL 18 has native logical slot synchronization via - * sync_replication_slots = on. This worker is not registered on PG18, - * so this entry point should never be reached. + * sync_replication_slots = on. This worker is not registered on PG18, so + * this entry point should never be reached. */ elog(ERROR, "spock_failover_slots_main: not supported on PostgreSQL 18+"); #else @@ -1350,14 +1352,16 @@ spock_failover_slots_main(Datum main_arg) CHECK_FOR_INTERRUPTS(); /* - * On standby, run sync only when hot_standby_feedback is on; otherwise - * use long nap so we never elog(ERROR) for hot_standby_feedback off. + * On standby, run sync only when hot_standby_feedback is on; + * otherwise use long nap so we never elog(ERROR) for + * hot_standby_feedback off. * - * On PG17+, yield entirely to PostgreSQL's native slotsync worker when - * sync_replication_slots = on is configured. IsSyncingReplicationSlots() - * is process-local and would always be false here; instead we check the - * exported sync_replication_slots GUC variable directly — if the DBA - * has enabled the native worker, we must not compete with it. + * On PG17+, yield entirely to PostgreSQL's native slotsync worker + * when sync_replication_slots = on is configured. + * IsSyncingReplicationSlots() is process-local and would always be + * false here; instead we check the exported sync_replication_slots + * GUC variable directly — if the DBA has enabled the native worker, + * we must not compete with it. */ if (RecoveryInProgress() && hot_standby_feedback #if PG_VERSION_NUM >= 170000 diff --git a/src/spock_functions.c b/src/spock_functions.c index c011e3f81..3fc2dca73 100644 --- a/src/spock_functions.c +++ b/src/spock_functions.c @@ -486,7 +486,7 @@ spock_alter_node_drop_interface(PG_FUNCTION_ARGS) */ static void enforce_forwarding_exclusivity(Oid target_sub_id, const char *target_sub_name, - bool target_enabled, List *target_forward_origins) + bool target_enabled, List *target_forward_origins) { SpockLocalNode *localnode = get_local_node(true, false); List *subs; @@ -494,7 +494,8 @@ enforce_forwarding_exclusivity(Oid target_sub_id, const char *target_sub_name, bool target_forwards = target_enabled && list_length(target_forward_origins) > 0; if (!target_enabled) - return; /* a disabled target can never conflict with anything */ + return; /* a disabled target can never conflict with + * anything */ subs = get_node_subscriptions(localnode->node->id, false); foreach(lc, subs) @@ -1060,7 +1061,7 @@ spock_alter_subscription_options(PG_FUNCTION_ARGS) while ((r = JsonbIteratorNext(&it, &v, false)) != WJB_END_OBJECT) { - char *key; + char *key; if (r != WJB_KEY) ereport(ERROR, @@ -1072,7 +1073,7 @@ spock_alter_subscription_options(PG_FUNCTION_ARGS) if (strcmp(key, "forward_origins") == 0 || strcmp(key, "skip_schema") == 0) { - List *result = NIL; + List *result = NIL; r = JsonbIteratorNext(&it, &v, false); if (r != WJB_BEGIN_ARRAY) @@ -1083,7 +1084,7 @@ spock_alter_subscription_options(PG_FUNCTION_ARGS) while ((r = JsonbIteratorNext(&it, &v, false)) != WJB_END_ARRAY) { - char *elem; + char *elem; if (r != WJB_ELEM || v.type != jbvString) ereport(ERROR, @@ -1116,7 +1117,7 @@ spock_alter_subscription_options(PG_FUNCTION_ARGS) } else if (strcmp(key, "apply_delay") == 0) { - char *delay_str; + char *delay_str; r = JsonbIteratorNext(&it, &v, false); if (r != WJB_VALUE || v.type != jbvString) @@ -1126,10 +1127,10 @@ spock_alter_subscription_options(PG_FUNCTION_ARGS) delay_str = pnstrdup(v.val.string.val, v.val.string.len); sub->apply_delay = DatumGetIntervalP( - DirectFunctionCall3(interval_in, - CStringGetDatum(delay_str), - ObjectIdGetDatum(InvalidOid), - Int32GetDatum(-1))); + DirectFunctionCall3(interval_in, + CStringGetDatum(delay_str), + ObjectIdGetDatum(InvalidOid), + Int32GetDatum(-1))); changed = true; } else @@ -1242,7 +1243,7 @@ spock_alter_subscription_synchronize(PG_FUNCTION_ARGS) static void check_readonly_for_resync(const char *nspname, const char *relname) { - char tablename[NAMEDATALEN * 2 + 2]; + char tablename[NAMEDATALEN * 2 + 2]; if (spock_readonly != READONLY_OFF) { @@ -1286,10 +1287,10 @@ spock_alter_subscription_resynchronize_table(PG_FUNCTION_ARGS) relname = RelationGetRelationName(rel); /* - * Check that the subscriber is in read-only mode BEFORE modifying - * sync status or truncating. If it is readonly, the sync will fail. - * With truncate=true this would cause data loss; without truncate - * it causes an error loop. + * Check that the subscriber is in read-only mode BEFORE modifying sync + * status or truncating. If it is readonly, the sync will fail. With + * truncate=true this would cause data loss; without truncate it causes an + * error loop. */ check_readonly_for_resync(nspname, relname); @@ -2009,17 +2010,17 @@ spock_replication_set_add_all_relations(Name repset_name, char *extname; /* - * The same schema may be named twice in nsp_names, and a second - * visit would try to insert a duplicate catalog row and abort - * the whole call. + * The same schema may be named twice in nsp_names, and a + * second visit would try to insert a duplicate catalog row + * and abort the whole call. */ existing_relations = lappend_oid(existing_relations, reloid); /* * Lock the relation and confirm it is still there before we - * touch it. This scan runs on the catalog snapshot, so a DROP - * TABLE that committed after it started is not reflected in the - * tuple we are holding. + * touch it. This scan runs on the catalog snapshot, so a + * DROP TABLE that committed after it started is not reflected + * in the tuple we are holding. */ targetrel = try_table_open(reloid, AccessShareLock); if (targetrel == NULL) @@ -2030,8 +2031,8 @@ spock_replication_set_add_all_relations(Name repset_name, * A relation belonging to an extension no replication set may * draw from is passed over here rather than inside the add * routines, which raise an error: a relation we merely came - * across while walking a schema should not cost the caller the - * rest of that schema. + * across while walking a schema should not cost the caller + * the rest of that schema. */ extoid = getExtensionOfObject(RelationRelationId, reloid); extname = OidIsValid(extoid) ? get_extension_name(extoid) : NULL; @@ -2623,7 +2624,7 @@ name_in_list(List *names, const char *name) return false; foreach(lc, names) if (strcmp((char *) lfirst(lc), name) == 0) - return true; + return true; return false; } @@ -2701,7 +2702,10 @@ stmt_schema_matches(Node *stmt, ReservedObjectPurpose purpose, bool match_all, drop->removeType != OBJECT_MATVIEW && drop->removeType != OBJECT_FOREIGN_TABLE) return false; - /* One catalog read for the whole (possibly multi-object) DROP. */ + /* + * One catalog read for the whole (possibly multi-object) + * DROP. + */ reserved = spock_reserved_object_names(RESERVED_KIND_SCHEMA, purpose); foreach(cell, drop->objects) @@ -2820,12 +2824,12 @@ spock_auto_replicate_ddl(const char *query, List *replication_sets, /* * Filter local commands and decide on search path setting. * - * We label command as 'local' sometimes to state the fact that the protocol - * does not support its replication. + * We label command as 'local' sometimes to state the fact that the + * protocol does not support its replication. */ switch (nodeTag(stmt)) { - /* Purely local commands */ + /* Purely local commands */ case T_FetchStmt: case T_NotifyStmt: case T_ListenStmt: @@ -2833,9 +2837,10 @@ spock_auto_replicate_ddl(const char *query, List *replication_sets, goto skip_ddl; break; - /* - * We don't want to replicate statements that run outside of transactions - */ + /* + * We don't want to replicate statements that run outside of + * transactions + */ case T_CreateTableSpaceStmt: case T_DropTableSpaceStmt: case T_VacuumStmt: @@ -2881,11 +2886,12 @@ spock_auto_replicate_ddl(const char *query, List *replication_sets, goto skip_ddl; /* - * The defining query is re-executed verbatim on the subscriber. - * If it reads a temporary relation -- at any nesting level -- - * it would fail there, so let the local command stand but skip - * replication and say why. isQueryUsingTempRelation() walks the - * whole analysed query tree. + * The defining query is re-executed verbatim on the + * subscriber. If it reads a temporary relation -- at any + * nesting level -- it would fail there, so let the local + * command stand but skip replication and say why. + * isQueryUsingTempRelation() walks the whole analysed query + * tree. */ if (isQueryUsingTempRelation(castNode(Query, ctas->query))) { @@ -2936,46 +2942,47 @@ spock_auto_replicate_ddl(const char *query, List *replication_sets, break; #if PG_VERSION_NUM >= 190000 - /* - * PostgreSQL 19 folded CLUSTER into the new REPACK command, so a - * CLUSTER statement now parses into a RepackStmt whose target is a - * VacuumRelation rather than a bare RangeVar. - */ + + /* + * PostgreSQL 19 folded CLUSTER into the new REPACK command, so a + * CLUSTER statement now parses into a RepackStmt whose target is + * a VacuumRelation rather than a bare RangeVar. + */ case T_RepackStmt: - { - RepackStmt *cstmt = (RepackStmt *) stmt; - RangeVar *cluster_rel = cstmt->relation ? cstmt->relation->relation : NULL; + { + RepackStmt *cstmt = (RepackStmt *) stmt; + RangeVar *cluster_rel = cstmt->relation ? cstmt->relation->relation : NULL; #else case T_ClusterStmt: - { - ClusterStmt *cstmt = (ClusterStmt *) stmt; - RangeVar *cluster_rel = cstmt->relation; + { + ClusterStmt *cstmt = (ClusterStmt *) stmt; + RangeVar *cluster_rel = cstmt->relation; #endif - bool skip_cluster = true; + bool skip_cluster = true; - if (cluster_rel != NULL) - { - Relation rel; - Oid tableOid; + if (cluster_rel != NULL) + { + Relation rel; + Oid tableOid; - /* - * Single relation case may be allowed if it is not a - * partitioned table. Don't care about errors - if we replicate - * this command it means everything must be ok, or we are in - * trouble and deserve an ERROR. - */ - tableOid = RangeVarGetRelidExtended(cluster_rel, - AccessShareLock, 0, NULL, NULL); - rel = table_open(tableOid, NoLock); - skip_cluster = (rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE); - table_close(rel, AccessShareLock); - } + /* + * Single relation case may be allowed if it is not a + * partitioned table. Don't care about errors - if we + * replicate this command it means everything must be ok, + * or we are in trouble and deserve an ERROR. + */ + tableOid = RangeVarGetRelidExtended(cluster_rel, + AccessShareLock, 0, NULL, NULL); + rel = table_open(tableOid, NoLock); + skip_cluster = (rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE); + table_close(rel, AccessShareLock); + } - if (skip_cluster) - goto skip_ddl; + if (skip_cluster) + goto skip_ddl; - add_search_path = false; - } + add_search_path = false; + } break; case T_AlterTableSpaceOptionsStmt: @@ -3003,22 +3010,22 @@ spock_auto_replicate_ddl(const char *query, List *replication_sets, goto skip_ddl; break; case T_ReindexStmt: - { - ReindexStmt *rstmt = (ReindexStmt *) stmt; - bool concurrently = false; - - foreach(lc, rstmt->params) { - DefElem *opt = (DefElem *) lfirst(lc); + ReindexStmt *rstmt = (ReindexStmt *) stmt; + bool concurrently = false; - if (strcmp(opt->defname, "concurrently") != 0) - continue; - concurrently = defGetBoolean(opt); - } + foreach(lc, rstmt->params) + { + DefElem *opt = (DefElem *) lfirst(lc); - if (concurrently) - goto skip_ddl; - } + if (strcmp(opt->defname, "concurrently") != 0) + continue; + concurrently = defGetBoolean(opt); + } + + if (concurrently) + goto skip_ddl; + } break; case T_DropStmt: @@ -3049,7 +3056,8 @@ spock_auto_replicate_ddl(const char *query, List *replication_sets, roleoid, castNode(Query, estmt->query)->utilityStmt); - return false; /* EXPLAIN without ANALYZE: nothing replicated. */ + return false; /* EXPLAIN without ANALYZE: nothing + * replicated. */ } break; @@ -3059,8 +3067,8 @@ spock_auto_replicate_ddl(const char *query, List *replication_sets, } /* - * Report replication status. In quiet mode, downgrade INFO/WARNING to - * LOG level to reduce output verbosity. + * Report replication status. In quiet mode, downgrade INFO/WARNING to LOG + * level to reduce output verbosity. */ if (warn) elog(spock_enable_quiet_mode ? LOG : WARNING, @@ -3779,8 +3787,8 @@ get_channel_stats(PG_FUNCTION_ARGS) /* * Acquire spinlock before reading counter values to prevent torn * reads. The writer (handle_stats_counter) uses entry->mutex to - * protect counter updates, so we must use the same lock for reads - * to ensure atomic access to 64-bit counter values. + * protect counter updates, so we must use the same lock for reads to + * ensure atomic access to 64-bit counter values. */ SpinLockAcquire(&entry->mutex); for (j = 0; j < SPOCK_STATS_NUM_COUNTERS; j++) @@ -3815,12 +3823,12 @@ reset_channel_stats(PG_FUNCTION_ARGS) /* * In principle we could reset only specific channel statistics; but that - * would be more complicated, and it's probably not worth the trouble. - * So for now, just reset all entries. + * would be more complicated, and it's probably not worth the trouble. So + * for now, just reset all entries. */ - hash_seq_init(&hash_seq, SpockHash); - while ((entry = hash_seq_search(&hash_seq)) != NULL) - { + hash_seq_init(&hash_seq, SpockHash); + while ((entry = hash_seq_search(&hash_seq)) != NULL) + { if (hash_search(SpockHash, &entry->key, HASH_REMOVE, @@ -4016,8 +4024,8 @@ spock_create_sync_event(PG_FUNCTION_ARGS) * directly. */ #if PG_VERSION_NUM >= 170000 - lsn = (LogLogicalMessage)(SPOCK_MESSAGE_PREFIX, (char *) &message, - sizeof(message), transactional, true); + lsn = (LogLogicalMessage) (SPOCK_MESSAGE_PREFIX, (char *) &message, + sizeof(message), transactional, true); #else lsn = LogLogicalMessage(SPOCK_MESSAGE_PREFIX, (char *) &message, sizeof(message), transactional); @@ -4062,7 +4070,7 @@ spock_pause_apply_workers(PG_FUNCTION_ARGS) */ while (waited_ms < max_wait_ms) { - bool all_paused = true; + bool all_paused = true; for (i = 0; i < SpockCtx->total_workers; i++) { @@ -4092,7 +4100,7 @@ spock_pause_apply_workers(PG_FUNCTION_ARGS) break; CHECK_FOR_INTERRUPTS(); - pg_usleep(1000); /* 1ms */ + pg_usleep(1000); /* 1ms */ waited_ms++; } @@ -4162,8 +4170,9 @@ spock_logical_replication_slot_scan(TimestampTz committs, bool *found) * Fix the upper bound of the scan before reading anything. * * The page_read callback used below waits for WAL rather than reporting - * its end: once the reader catches up with the flush position it sleeps in - * pg_usleep() until somebody appends more, which on an idle node is never. + * its end: once the reader catches up with the flush position it sleeps + * in pg_usleep() until somebody appends more, which on an idle node is + * never. */ end_of_wal = GetFlushRecPtr(NULL); @@ -4209,9 +4218,9 @@ spock_logical_replication_slot_scan(TimestampTz committs, bool *found) /* * A NULL record with no message means the reader gave up short of * end_of_wal - it does that on a historic timeline, say after the - * upstream of a cascading standby was promoted mid-scan. The scan - * result is then truncated rather than wrong: too early, never too - * late. + * upstream of a cascading standby was promoted mid-scan. The + * scan result is then truncated rather than wrong: too early, + * never too late. */ if (record == NULL) break; @@ -4232,23 +4241,25 @@ spock_logical_replication_slot_scan(TimestampTz committs, bool *found) continue; /* - * This origin test is what confines the scan to local commits, and - * nothing below can stand in for it: xact_time is the local commit - * time even on a replicated transaction, so without this a commit - * from another node is indistinguishable from one of ours. + * This origin test is what confines the scan to local commits, + * and nothing below can stand in for it: xact_time is the local + * commit time even on a replicated transaction, so without this a + * commit from another node is indistinguishable from one of ours. */ if (XLogRecGetOrigin(ctx->reader) != InvalidRepOriginId) continue; /* - * xl_xact_commit leads the record and xact_time is its first field - * for both commit opcodes, so the timestamp needs no parsing. + * xl_xact_commit leads the record and xact_time is its first + * field for both commit opcodes, so the timestamp needs no + * parsing. * * Do not reach for pg_commit_ts instead. Once it has been * truncated past an xid it reports ts = 0, which reads here as a * commit older than anything the caller can ask about; it errors * out entirely when track_commit_timestamp is off; and it costs - * CommitTsLock plus an SLRU lookup on every commit record scanned. + * CommitTsLock plus an SLRU lookup on every commit record + * scanned. */ Assert(XLogRecGetDataLen(ctx->reader) >= MinSizeOfXactCommit); xlrec = (xl_xact_commit *) XLogRecGetData(ctx->reader); @@ -4329,7 +4340,8 @@ spock_get_lsn_from_commit_ts(PG_FUNCTION_ARGS) /* * Keep a copy of restart_lsn for the log line below: it is emitted after - * the slot has been released, and MyReplicationSlot must not be read then. + * the slot has been released, and MyReplicationSlot must not be read + * then. */ start_lsn = MyReplicationSlot->data.restart_lsn; @@ -4487,8 +4499,8 @@ get_apply_group_progress(PG_FUNCTION_ARGS) while ((e = (SpockGroupEntry *) hash_seq_search(&it)) != NULL) { SpockApplyProgress *sap = &e->progress; - Datum values[_GP_LAST_]; - bool nulls[_GP_LAST_] = {0}; + Datum values[_GP_LAST_]; + bool nulls[_GP_LAST_] = {0}; /* * Centralise conversion of local representation of the progress data diff --git a/src/spock_group.c b/src/spock_group.c index 5192ee77f..135d2258c 100644 --- a/src/spock_group.c +++ b/src/spock_group.c @@ -89,9 +89,9 @@ spock_init_progress_fields(SpockApplyProgress *progress) Assert(OidIsValid(progress->key.remote_node_id)); /* - * Initialize all non-key fields to zero/invalid values. - * Using 0 for timestamps follows PostgreSQL convention where - * timestamp 0 represents "not set" (see CommitTsShmemInit). + * Initialize all non-key fields to zero/invalid values. Using 0 for + * timestamps follows PostgreSQL convention where timestamp 0 represents + * "not set" (see CommitTsShmemInit). */ progress->remote_commit_ts = 0; progress->prev_remote_ts = 0; @@ -331,8 +331,8 @@ progress_update_struct(SpockApplyProgress *dest, const SpockApplyProgress *src) bool spock_group_progress_update(const SpockApplyProgress *sap) { - SpockGroupEntry *entry; - bool found; + SpockGroupEntry *entry; + bool found; Assert(OidIsValid(sap->key.dbid) && OidIsValid(sap->key.node_id) && OidIsValid(sap->key.remote_node_id)); @@ -420,7 +420,7 @@ spock_group_progress_update_ptr(SpockGroupEntry *e, TimestampTz apply_worker_get_prev_remote_ts(void) { - TimestampTz prev_remote_ts; + TimestampTz prev_remote_ts; Assert(MyApplyWorker != NULL); Assert(MyApplyWorker->apply_group != NULL); @@ -432,6 +432,7 @@ apply_worker_get_prev_remote_ts(void) LWLockRelease(SpockCtx->apply_group_master_lock); } else + /* * Should never happen. In production just send the worker into * exception behaviour without crash. @@ -470,11 +471,11 @@ spock_group_foreach(SpockGroupIterCB cb, void *arg) static void dump_one_group_cb(const SpockGroupEntry *entry, void *arg) { - DumpCtx *ctx = (DumpCtx *) arg; + DumpCtx *ctx = (DumpCtx *) arg; /* Only the progress payload goes to disk. It already contains the key. */ write_buf(ctx->fd, &entry->progress, sizeof(SpockApplyProgress), - SPOCK_RES_DUMPFILE "(data)"); + SPOCK_RES_DUMPFILE "(data)"); ctx->count++; } @@ -490,17 +491,16 @@ dump_one_group_cb(const SpockGroupEntry *entry, void *arg) void spock_group_resource_dump(void) { - char pathdir[MAXPGPATH]; - char pathtmp[MAXPGPATH]; - char pathfin[MAXPGPATH]; - int fd = -1; - SpockResFileHeader hdr = {0}; - DumpCtx dctx = {0}; + char pathdir[MAXPGPATH]; + char pathtmp[MAXPGPATH]; + char pathfin[MAXPGPATH]; + int fd = -1; + SpockResFileHeader hdr = {0}; + DumpCtx dctx = {0}; /* * Safety check: if shared memory isn't initialized, we can't dump. This - * shouldn't happen but check anyway. - * Do not tolerate it in development. + * shouldn't happen but check anyway. Do not tolerate it in development. */ Assert(SpockCtx && SpockGroupHash); if (!SpockCtx || !SpockGroupHash) @@ -578,9 +578,9 @@ spock_group_resource_dump(void) static void spock_group_resource_load(void) { - char pathfin[MAXPGPATH]; - int fd; - SpockResFileHeader hdr; + char pathfin[MAXPGPATH]; + int fd; + SpockResFileHeader hdr; /* * Check that we are actually inside shmem startup or recovery that @@ -635,18 +635,19 @@ spock_group_resource_load(void) /* Read each record and upsert */ for (uint32 i = 0; i < hdr.entry_count; i++) { - SpockApplyProgress rec; - bool ret; + SpockApplyProgress rec; + bool ret; /* XXX: Do we need any kind of CRC here? */ read_buf(fd, &rec, sizeof(SpockApplyProgress), - SPOCK_RES_DUMPFILE "(data)"); + SPOCK_RES_DUMPFILE "(data)"); /* * Note: if ever version is changed in SpockApplyProgress and need * compatibility, it should be translated here. For now, 1:1. */ ret = spock_group_progress_update(&rec); + /* * Should never happen in real life, but be tolerant in production as * much as possible. @@ -670,9 +671,9 @@ spock_group_resource_load(void) void spock_group_progress_update_list(List *lst) { - ListCell *lc; + ListCell *lc; - foreach (lc, lst) + foreach(lc, lst) { SpockApplyProgress *sap = (SpockApplyProgress *) lfirst(lc); @@ -692,8 +693,8 @@ spock_group_progress_update_list(List *lst) spock_rmgr_log_resource_dump(SPOCK_DUMP_TABLE_SYNC, lst); /* - * Free the list and each object. Be careful here because it is inside - * a memory context that is rarely reset. + * Free the list and each object. Be careful here because it is inside a + * memory context that is rarely reset. */ list_free_deep(lst); } @@ -711,7 +712,7 @@ spock_group_progress_update_list(List *lst) void spock_group_progress_force_set_list(List *lst) { - ListCell *lc; + ListCell *lc; if (!SpockGroupHash || !SpockCtx) { @@ -720,11 +721,11 @@ spock_group_progress_force_set_list(List *lst) return; } - foreach (lc, lst) + foreach(lc, lst) { SpockApplyProgress *sap = (SpockApplyProgress *) lfirst(lc); - SpockGroupEntry *entry; - bool found; + SpockGroupEntry *entry; + bool found; LWLockAcquire(SpockCtx->apply_group_master_lock, LW_EXCLUSIVE); diff --git a/src/spock_injection.c b/src/spock_injection.c index 2095a34e2..01de21f42 100644 --- a/src/spock_injection.c +++ b/src/spock_injection.c @@ -38,8 +38,8 @@ void spock_random_delay(void) { - long delay_ms = 1 + (long) (pg_prng_uint64(&pg_global_prng_state) % - SPOCK_INJ_MAX_DELAY_MS); + long delay_ms = 1 + (long) (pg_prng_uint64(&pg_global_prng_state) % + SPOCK_INJ_MAX_DELAY_MS); elog(LOG, "Spock random delay: sleeping %ld ms", delay_ms); pg_usleep(delay_ms * 1000L); diff --git a/src/spock_manager.c b/src/spock_manager.c index d3120c2bf..f510b9ab2 100644 --- a/src/spock_manager.c +++ b/src/spock_manager.c @@ -21,7 +21,7 @@ #include "storage/ipc.h" #include "storage/proc.h" -#include "utils/lsyscache.h" /* PG19 moved get_database_name() here */ +#include "utils/lsyscache.h" /* PG19 moved get_database_name() here */ #include "utils/memutils.h" #include "utils/resowner.h" #include "utils/timestamp.h" diff --git a/src/spock_node.c b/src/spock_node.c index ece79d0f4..572d49aa8 100644 --- a/src/spock_node.c +++ b/src/spock_node.c @@ -154,8 +154,8 @@ static bool row_reserved_for_purpose(HeapTuple tuple, TupleDesc tuple_desc, ReservedObjectPurpose purpose) { - bool isnull; - bool flag; + bool isnull; + bool flag; switch (purpose) { @@ -185,7 +185,7 @@ row_reserved_for_purpose(HeapTuple tuple, TupleDesc tuple_desc, return !isnull && flag; } elog(ERROR, "unknown reserved object purpose %d", (int) purpose); - return false; /* unreachable; keeps the compiler quiet */ + return false; /* unreachable; keeps the compiler quiet */ } /* Open spock.reserved_object, failing closed with a hint if it is missing. */ @@ -219,13 +219,13 @@ bool spock_name_is_reserved(ReservedObjectKind kind, ReservedObjectPurpose purpose, const char *name) { - Relation catalog_rel; - TupleDesc tuple_desc; - SysScanDesc scan; - HeapTuple tuple; - const char *wanted_kind = (kind == RESERVED_KIND_EXTENSION) - ? "extension" : "schema"; - bool found = false; + Relation catalog_rel; + TupleDesc tuple_desc; + SysScanDesc scan; + HeapTuple tuple; + const char *wanted_kind = (kind == RESERVED_KIND_EXTENSION) + ? "extension" : "schema"; + bool found = false; if (name == NULL) return false; @@ -236,8 +236,8 @@ spock_name_is_reserved(ReservedObjectKind kind, ReservedObjectPurpose purpose, scan = systable_beginscan(catalog_rel, InvalidOid, false, NULL, 0, NULL); while (HeapTupleIsValid(tuple = systable_getnext(scan))) { - bool isnull; - char *row_kind; + bool isnull; + char *row_kind; if (strcmp(NameStr(*DatumGetName(heap_getattr(tuple, Anum_reserved_name, tuple_desc, &isnull))), @@ -271,13 +271,13 @@ List * spock_reserved_object_names(ReservedObjectKind kind, ReservedObjectPurpose purpose) { - Relation catalog_rel; - TupleDesc tuple_desc; - SysScanDesc scan; - HeapTuple tuple; - List *names = NIL; - const char *wanted_kind = (kind == RESERVED_KIND_EXTENSION) - ? "extension" : "schema"; + Relation catalog_rel; + TupleDesc tuple_desc; + SysScanDesc scan; + HeapTuple tuple; + List *names = NIL; + const char *wanted_kind = (kind == RESERVED_KIND_EXTENSION) + ? "extension" : "schema"; catalog_rel = open_reserved_object(AccessShareLock); tuple_desc = RelationGetDescr(catalog_rel); @@ -285,8 +285,8 @@ spock_reserved_object_names(ReservedObjectKind kind, scan = systable_beginscan(catalog_rel, InvalidOid, false, NULL, 0, NULL); while (HeapTupleIsValid(tuple = systable_getnext(scan))) { - bool isnull; - char *row_kind; + bool isnull; + char *row_kind; row_kind = TextDatumGetCString(heap_getattr(tuple, Anum_reserved_kind, tuple_desc, &isnull)); @@ -302,8 +302,8 @@ spock_reserved_object_names(ReservedObjectKind kind, names = lappend(names, pstrdup(NameStr(*DatumGetName( - heap_getattr(tuple, Anum_reserved_name, - tuple_desc, &isnull))))); + heap_getattr(tuple, Anum_reserved_name, + tuple_desc, &isnull))))); } systable_endscan(scan); @@ -373,15 +373,15 @@ create_node(SpockNode *node) /* * Detect node_id hash collisions before insertion. The id is a 16-bit * hash of the node name, so two different names can produce the same - * value. A collision causes replication-origin ambiguity between the - * two nodes. + * value. A collision causes replication-origin ambiguity between the two + * nodes. */ existing = get_node(node->id, true); if (existing != NULL) elog(ERROR, - "node id %u (computed from name \"%s\") collides with existing " - "node \"%s\"; rename this node to resolve the collision", - node->id, node->name, existing->name); + "node id %u (computed from name \"%s\") collides with existing " + "node \"%s\"; rename this node to resolve the collision", + node->id, node->name, existing->name); rv = makeRangeVar(EXTENSION_NAME, CATALOG_NODE, -1); rel = table_openrv(rv, RowExclusiveLock); @@ -1312,6 +1312,7 @@ subscription_fromtuple(HeapTuple tuple, TupleDesc desc) * context that owns this SpockSubscription. */ Interval *src = DatumGetIntervalP(d); + sub->apply_delay = (Interval *) palloc(sizeof(Interval)); memcpy(sub->apply_delay, src, sizeof(Interval)); } diff --git a/src/spock_output.c b/src/spock_output.c index 210f14dd4..e926f41d0 100644 --- a/src/spock_output.c +++ b/src/spock_output.c @@ -23,8 +23,8 @@ #if PG_VERSION_NUM >= 180000 PG_MODULE_MAGIC_EXT( - .name = "spock_output", - .version = SPOCK_VERSION + .name = "spock_output", + .version = SPOCK_VERSION ); #else PG_MODULE_MAGIC; diff --git a/src/spock_output_plugin.c b/src/spock_output_plugin.c index f7e741d22..d54007b7e 100644 --- a/src/spock_output_plugin.c +++ b/src/spock_output_plugin.c @@ -788,11 +788,12 @@ pg_decode_message(LogicalDecodingContext *ctx, oldctx = MemoryContextSwitchTo(data->context); /* - * The startup message is normally sent in pg_decode_begin_txn. - * A non-transactional sync event can arrive before any - * transaction is decoded (e.g. right after slot creation). - * Send the startup message first so the subscriber knows the - * protocol version and can parse the proto-v5 header. + * The startup message is normally sent in + * pg_decode_begin_txn. A non-transactional sync event can + * arrive before any transaction is decoded (e.g. right after + * slot creation). Send the startup message first so the + * subscriber knows the protocol version and can parse the + * proto-v5 header. */ if (!startup_message_sent) send_startup_message(ctx, data, false); @@ -1413,10 +1414,10 @@ spock_output_plugin_shmem_request(int nworkers) void spock_output_plugin_shmem_startup(bool found) { - bool is_found; - SpockOutputSlotGroup *slot_groups; - int i; - int nworkers = SpockCtx->total_workers; + bool is_found; + SpockOutputSlotGroup *slot_groups; + int i; + int nworkers = SpockCtx->total_workers; /* Check code paths consistency */ Assert(LWLockHeldByMeInMode(AddinShmemInitLock, LW_EXCLUSIVE)); @@ -1437,7 +1438,7 @@ spock_output_plugin_shmem_startup(bool found) for (i = 0; i < nworkers; i++) { slot_groups[i].lock = - &((GetNamedLWLockTranche(SPOCK_SLOT_GROUPS_TRANCHE_NAME)[i + 1]).lock); + &((GetNamedLWLockTranche(SPOCK_SLOT_GROUPS_TRANCHE_NAME)[i + 1]).lock); } } } diff --git a/src/spock_progress_recovery.c b/src/spock_progress_recovery.c index 3b0d31488..f855a3d5c 100644 --- a/src/spock_progress_recovery.c +++ b/src/spock_progress_recovery.c @@ -48,9 +48,12 @@ typedef enum ReconcileResult { - RECONCILE_FILE_IN_SYNC, /* file_lsn == origin_lsn; recovery scan can skip */ - RECONCILE_FILE_STALE, /* file_lsn < origin_lsn; recovery scan needed */ - RECONCILE_FILE_ANOMALY, /* file_lsn > origin_lsn; recovery scan needed */ + RECONCILE_FILE_IN_SYNC, /* file_lsn == origin_lsn; recovery scan can + * skip */ + RECONCILE_FILE_STALE, /* file_lsn < origin_lsn; recovery scan + * needed */ + RECONCILE_FILE_ANOMALY, /* file_lsn > origin_lsn; recovery scan + * needed */ RECONCILE_FILE_ABSENT /* no entry was loaded; recovery scan needed */ } ReconcileResult; @@ -69,15 +72,15 @@ static void recover_progress_timestamps_from_commit_ts(SpockGroupEntry *entry, void spock_init_progress_state(XLogRecPtr origin_lsn) { - ReconcileResult result; - SpockGroupKey key; - SpockGroupEntry *entry; - bool found; + ReconcileResult result; + SpockGroupKey key; + SpockGroupEntry *entry; + bool found; /* - * Defense in depth: reconcile_progress_with_origin returns ABSENT on - * NULL shmem rather than dereferencing it, but the rest of this function - * does dereference SpockCtx/SpockGroupHash. Mirror the guard so the + * Defense in depth: reconcile_progress_with_origin returns ABSENT on NULL + * shmem rather than dereferencing it, but the rest of this function does + * dereference SpockCtx/SpockGroupHash. Mirror the guard so the * caller-visible contract is self-consistent. */ if (!SpockCtx || !SpockGroupHash) @@ -118,8 +121,8 @@ spock_init_progress_state(XLogRecPtr origin_lsn) { /* * The apply worker overwrites replorigin_session_origin per-message - * with the publisher's spock node id (handle_origin) and that value is - * what pg_commit_ts records for applied xacts on the subscriber -- + * with the publisher's spock node id (handle_origin) and that value + * is what pg_commit_ts records for applied xacts on the subscriber -- * NOT the local subscription's roident. Filter the scan on * MySubscription->origin->id so we match the recorded entries. * @@ -149,10 +152,10 @@ spock_init_progress_state(XLogRecPtr origin_lsn) static ReconcileResult reconcile_progress_with_origin(XLogRecPtr origin_lsn) { - SpockGroupKey key; + SpockGroupKey key; SpockGroupEntry *entry; - bool found; - ReconcileResult result; + bool found; + ReconcileResult result; if (!SpockGroupHash || !SpockCtx) { @@ -182,10 +185,10 @@ reconcile_progress_with_origin(XLogRecPtr origin_lsn) { /* * New entry: hash_search already copied the key into - * entry->progress.key. Reset the rest via the same helper that - * the hash insert path uses, then position the LSN fields at - * origin_lsn so this worker starts from the durable origin - * position and the insert >= commit invariant holds. + * entry->progress.key. Reset the rest via the same helper that the + * hash insert path uses, then position the LSN fields at origin_lsn + * so this worker starts from the durable origin position and the + * insert >= commit invariant holds. */ spock_init_progress_fields(&entry->progress); entry->progress.remote_commit_lsn = origin_lsn; @@ -215,13 +218,14 @@ reconcile_progress_with_origin(XLogRecPtr origin_lsn) entry->progress.remote_commit_ts = 0; entry->progress.prev_remote_ts = 0; entry->progress.last_updated_ts = 0; + /* - * Preserve the invariant remote_insert_lsn >= remote_commit_lsn. - * If we only advance commit_lsn, later calls to - * progress_update_struct will assert-fail. The publisher's forced - * keepalive on reconnect will refresh remote_insert_lsn to a - * current value; until then, pinning it to origin_lsn is correct - * (any prior commit has necessarily already been inserted). + * Preserve the invariant remote_insert_lsn >= remote_commit_lsn. If + * we only advance commit_lsn, later calls to progress_update_struct + * will assert-fail. The publisher's forced keepalive on reconnect + * will refresh remote_insert_lsn to a current value; until then, + * pinning it to origin_lsn is correct (any prior commit has + * necessarily already been inserted). */ if (entry->progress.remote_insert_lsn < origin_lsn) entry->progress.remote_insert_lsn = origin_lsn; @@ -233,11 +237,12 @@ reconcile_progress_with_origin(XLogRecPtr origin_lsn) { /* * Anomaly: file ahead of origin. Most likely cause is operator - * intervention on the replication origin (e.g. pg_replication_origin_advance - * to roll back) or filesystem corruption. We trust origin because that - * is the value Postgres will use for incoming WAL acknowledgements; the - * file's values are recorded in the log so an operator can recover them - * after the fact if the trust-origin choice turns out to be wrong. + * intervention on the replication origin (e.g. + * pg_replication_origin_advance to roll back) or filesystem + * corruption. We trust origin because that is the value Postgres + * will use for incoming WAL acknowledgements; the file's values are + * recorded in the log so an operator can recover them after the fact + * if the trust-origin choice turns out to be wrong. */ elog(WARNING, "SPOCK %s: reconcile: file LSN %X/%X ahead of origin %X/%X; trusting origin " @@ -290,10 +295,10 @@ static void recover_progress_timestamps_from_commit_ts(SpockGroupEntry *entry, RepOriginId target_origin) { - TransactionId xid_high; - TimestampTz running_max_ts = 0; - int seen_count = 0; - int64 total_scanned = 0; + TransactionId xid_high; + TimestampTz running_max_ts = 0; + int seen_count = 0; + int64 total_scanned = 0; xid_high = ReadNextTransactionId(); if (TransactionIdPrecedes(xid_high, FirstNormalTransactionId + 1)) @@ -307,9 +312,9 @@ recover_progress_timestamps_from_commit_ts(SpockGroupEntry *entry, while (seen_count < SPOCK_TS_RECOVERY_MIN_SEEN_PER_ORIGIN && total_scanned < SPOCK_TS_RECOVERY_SCAN_LIMIT) { - TransactionId xid_low; - TransactionId xid; - int64 batch_count; + TransactionId xid_low; + TransactionId xid; + int64 batch_count; CHECK_FOR_INTERRUPTS(); @@ -324,13 +329,13 @@ recover_progress_timestamps_from_commit_ts(SpockGroupEntry *entry, for (xid = xid_low; TransactionIdPrecedes(xid, xid_high + 1); xid++) { - TimestampTz ts; - RepOriginId origin; + TimestampTz ts; + RepOriginId origin; if (!TransactionIdGetCommitTsData(xid, &ts, &origin)) - continue; /* aborted, vacuumed, or no commit_ts */ + continue; /* aborted, vacuumed, or no commit_ts */ if (origin != target_origin) - continue; /* local writes / other origins */ + continue; /* local writes / other origins */ seen_count++; if (ts > running_max_ts) @@ -340,7 +345,7 @@ recover_progress_timestamps_from_commit_ts(SpockGroupEntry *entry, total_scanned += batch_count; if (xid_low == FirstNormalTransactionId) - break; /* wraparound floor */ + break; /* wraparound floor */ xid_high = xid_low - 1; } @@ -352,6 +357,7 @@ recover_progress_timestamps_from_commit_ts(SpockGroupEntry *entry, { entry->progress.remote_commit_ts = running_max_ts; entry->progress.prev_remote_ts = running_max_ts; + /* * Local apply time isn't recoverable post-crash. Use * remote_commit_ts as a lower bound; refreshes on the next diff --git a/src/spock_proto_json.c b/src/spock_proto_json.c index 83f688245..c2d219341 100644 --- a/src/spock_proto_json.c +++ b/src/spock_proto_json.c @@ -219,7 +219,7 @@ typedef enum /* type categories for datum_to_json */ } JsonTypeCategory; static void spock_composite_to_json(Datum composite, StringInfo result, - bool use_line_feeds); + bool use_line_feeds); static void array_dim_to_json(StringInfo result, int dim, int ndims, int *dims, Datum *vals, bool *nulls, int *valcount, JsonTypeCategory tcategory, Oid outfuncoid, @@ -522,7 +522,7 @@ static void array_to_json_internal(Datum array, StringInfo result, bool use_line_feeds) { ArrayType *v = DatumGetArrayTypeP(array); - Oid element_type = ARR_ELEMTYPE(v); + Oid element_type = ARR_ELEMTYPE(v); int *dim; int ndim; int nitems; diff --git a/src/spock_proto_native.c b/src/spock_proto_native.c index cd3623283..e1babbb10 100644 --- a/src/spock_proto_native.c +++ b/src/spock_proto_native.c @@ -622,7 +622,7 @@ spock_write_message(StringInfo out, TransactionId xid, XLogRecPtr lsn, if (spock_get_proto_version() >= 5) pq_sendint64(out, GetXLogWriteRecPtr()); - pq_sendbyte(out, 'M'); /* message type field */ + pq_sendbyte(out, 'M'); /* message type field */ /* send out message contents */ pq_sendint32(out, xid); @@ -742,7 +742,7 @@ RepOriginId spock_read_origin(StringInfo in, XLogRecPtr *origin_lsn, char **origin_name) { uint8 flags; - RepOriginId origin_id; + RepOriginId origin_id; /* read the flags */ flags = pq_getmsgbyte(in); diff --git a/src/spock_readonly.c b/src/spock_readonly.c index 2bb8dbb04..6bcd9828b 100644 --- a/src/spock_readonly.c +++ b/src/spock_readonly.c @@ -65,8 +65,8 @@ spockro_terminate_active_transactions(PG_FUNCTION_ARGS) #if PG_VERSION_NUM >= 190000 /* * PostgreSQL 19 replaced CancelVirtualTransaction() with - * SignalRecoveryConflictWithVirtualXID() and moved the conflict reason - * into the RecoveryConflictReason enum. + * SignalRecoveryConflictWithVirtualXID() and moved the conflict + * reason into the RecoveryConflictReason enum. */ (void) SignalRecoveryConflictWithVirtualXID(tvxid[i], RECOVERY_CONFLICT_SNAPSHOT); @@ -90,15 +90,15 @@ spock_ropost_parse_analyze(ParseState *pstate, Query *query, JumbleState *jstate * If spock.readonly is set, enforce Postgres core restriction for the * following query. We actively employ the fact that the core uses the * XactReadOnly value directly, not through the GetConfigOption function. - * Also, we use this fact here to identify if XactReadOnly has been changed - * by Spock or by external tools. + * Also, we use this fact here to identify if XactReadOnly has been + * changed by Spock or by external tools. */ if (spock_readonly >= READONLY_LOCAL && !superuser()) XactReadOnly = true; else if (XactReadOnly) { const char *value = - GetConfigOption("transaction_read_only", false, false); + GetConfigOption("transaction_read_only", false, false); if (strcmp(value, "off") == 0) /* Spock imposed read-only. Restore the original state. */ @@ -125,7 +125,7 @@ spock_roExecutorStart(QueryDesc *queryDesc, int eflags) else if (XactReadOnly) { const char *value = - GetConfigOption("transaction_read_only", false, false); + GetConfigOption("transaction_read_only", false, false); if (strcmp(value, "off") == 0) /* Spock imposed read-only. Restore the original state. */ diff --git a/src/spock_relcache.c b/src/spock_relcache.c index 85bb35cfc..b30bb8484 100644 --- a/src/spock_relcache.c +++ b/src/spock_relcache.c @@ -79,7 +79,8 @@ spock_relation_open(uint32 remoteid, LOCKMODE lockmode) * entry. An index dropped under the apply worker (notably DROP INDEX * CONCURRENTLY, whose lock does not block apply) otherwise leaves a stale * index list on the cached relation, and the next ExecOpenIndices() would - * index_open() the removed OID and raise "could not open relation with OID". + * index_open() the removed OID and raise "could not open relation with + * OID". */ AcceptInvalidationMessages(); @@ -97,10 +98,10 @@ spock_relation_open(uint32 remoteid, LOCKMODE lockmode) /* Need to update the local cache? */ if (!OidIsValid(entry->reloid)) { - RangeVar *rv = makeNode(RangeVar); - int i; - TupleDesc desc; - ResultRelInfo *relinfo; + RangeVar *rv = makeNode(RangeVar); + int i; + TupleDesc desc; + ResultRelInfo *relinfo; rv->schemaname = (char *) entry->nspname; rv->relname = (char *) entry->relname; @@ -112,16 +113,15 @@ spock_relation_open(uint32 remoteid, LOCKMODE lockmode) /* * Reset delta-apply metadata before rescanning. A relcache - * invalidation only resets entry->reloid; the function-Oid array - * and has_delta_columns flag carry over from the prior state. - * Without this reset, dropping a delta_apply_function attoption - * would leave a stale Oid behind and has_delta_columns stuck at - * true. + * invalidation only resets entry->reloid; the function-Oid array and + * has_delta_columns flag carry over from the prior state. Without + * this reset, dropping a delta_apply_function attoption would leave a + * stale Oid behind and has_delta_columns stuck at true. * * Also resize the array to the local TupleDesc width. The - * cache_update path sizes it to remote natts, but the scan loop - * below indexes by attmap[i] (a local position), which can exceed - * remote natts when local has columns the remote does not. + * cache_update path sizes it to remote natts, but the scan loop below + * indexes by attmap[i] (a local position), which can exceed remote + * natts when local has columns the remote does not. */ if (entry->delta_apply_functions != NULL) pfree(entry->delta_apply_functions); @@ -412,6 +412,10 @@ spock_lookup_delta_function(char *fname, Oid typeoid) FuncCandidateList candidates; FuncCandidateList fc; Oid funcoid = InvalidOid; +#if PG_VERSION_NUM >= 190000 + /* PG19 added a mandatory out-parameter that the callee dereferences */ + int fgc_flags = 0; +#endif /* Split the function name into [schema.][funcname] */ if (!SplitIdentifierString(fname, '.', &namelist)) @@ -428,13 +432,14 @@ spock_lookup_delta_function(char *fname, Oid typeoid) } /* Find a match */ - candidates = FuncnameGetCandidates(namestrings, 3, NIL, - false, false, false, false #if PG_VERSION_NUM >= 190000 - /* PG19 added a mandatory out-parameter that the callee dereferences */ - , &(int){0} + candidates = FuncnameGetCandidates(namestrings, 3, NIL, + false, false, false, false, + &fgc_flags); +#else + candidates = FuncnameGetCandidates(namestrings, 3, NIL, + false, false, false, false); #endif - ); for (fc = candidates; fc != NULL; fc = fc->next) if (fc->args[0] == typeoid && fc->args[1] == typeoid && diff --git a/src/spock_repset.c b/src/spock_repset.c index df390975a..3b598453f 100644 --- a/src/spock_repset.c +++ b/src/spock_repset.c @@ -1166,7 +1166,7 @@ replication_set_add_table(Oid setid, Oid reloid, List *att_list, /* Open the relation. */ #if PG_VERSION_NUM < 170000 - LOCKTAG tag; + LOCKTAG tag; SET_LOCKTAG_RELATION(tag, MyDatabaseId, reloid); if (!LockOrStrongerHeldByMe(&tag, AccessShareLock)) @@ -1186,10 +1186,10 @@ replication_set_add_table(Oid setid, Oid reloid, List *att_list, if (!check_relation_replicatable(targetrel, repset, skip_unreplicatable)) { /* - * Caller's lock, caller's problem: we opened with NoLock if it already - * held one, so releasing here would be releasing something we never - * took. Bulk callers hand the lock back themselves once we tell them - * the relation is not going in. + * Caller's lock, caller's problem: we opened with NoLock if it + * already held one, so releasing here would be releasing something we + * never took. Bulk callers hand the lock back themselves once we + * tell them the relation is not going in. */ table_close(targetrel, NoLock); return false; @@ -1275,7 +1275,7 @@ replication_set_add_seq(Oid setid, Oid seqoid) /* Open the relation. */ #if PG_VERSION_NUM < 170000 - LOCKTAG tag; + LOCKTAG tag; SET_LOCKTAG_RELATION(tag, MyDatabaseId, seqoid); if (!LockOrStrongerHeldByMe(&tag, AccessShareLock)) diff --git a/src/spock_rmgr.c b/src/spock_rmgr.c index 7e07da584..5ffe771e0 100644 --- a/src/spock_rmgr.c +++ b/src/spock_rmgr.c @@ -72,9 +72,12 @@ event_name(uint8 event_type) { switch ((SpockResourceDumpEvent) event_type) { - case SPOCK_DUMP_SHUTDOWN: return "shutdown"; - case SPOCK_DUMP_ADD_NODE: return "add_node"; - case SPOCK_DUMP_TABLE_SYNC: return "table_sync"; + case SPOCK_DUMP_SHUTDOWN: + return "shutdown"; + case SPOCK_DUMP_ADD_NODE: + return "add_node"; + case SPOCK_DUMP_TABLE_SYNC: + return "table_sync"; } return "unknown"; } @@ -195,9 +198,9 @@ void spock_rmgr_log_resource_dump(SpockResourceDumpEvent event, List *changed_entries) { - XLogRecPtr last_recptr = InvalidXLogRecPtr; - uint32 entry_total; - uint16 entry_seq = 0; + XLogRecPtr last_recptr = InvalidXLogRecPtr; + uint32 entry_total; + uint16 entry_seq = 0; if (SpockGroupHash == NULL || SpockCtx == NULL) return; diff --git a/src/spock_shmem.c b/src/spock_shmem.c index 0fe693013..40d8e93f7 100644 --- a/src/spock_shmem.c +++ b/src/spock_shmem.c @@ -54,8 +54,8 @@ void spock_shmem_init(void) { /* - * Clean global shared variable pointer. Subsystem-specific pointers - * are cleaned on 'shmem_startup' in corresponding subsystems. + * Clean global shared variable pointer. Subsystem-specific pointers are + * cleaned on 'shmem_startup' in corresponding subsystems. */ SpockCtx = NULL; @@ -74,7 +74,7 @@ spock_shmem_init(void) static Size spock_ctx_shmem_size(int nworkers) { - Size num_bytes = 0; + Size num_bytes = 0; num_bytes = offsetof(SpockContext, workers); num_bytes = add_size(num_bytes, @@ -129,14 +129,13 @@ spock_shmem_request(void) static void spock_shmem_startup(void) { - int nworkers = max_worker_processes; - bool found; + int nworkers = max_worker_processes; + bool found; Assert(nworkers > 0); /* - * XXX: - * Do we have tests on 0, 1, etc workers allowed? + * XXX: Do we have tests on 0, 1, etc workers allowed? */ /* Chain to previous hook first */ @@ -144,8 +143,8 @@ spock_shmem_startup(void) prev_shmem_startup_hook(); /* - * Acquire AddinShmemInitLock once for all subsystem initialization. - * This avoids multiple lock acquisitions and potential race conditions. + * Acquire AddinShmemInitLock once for all subsystem initialization. This + * avoids multiple lock acquisitions and potential race conditions. */ LWLockAcquire(AddinShmemInitLock, LW_EXCLUSIVE); diff --git a/src/spock_sync.c b/src/spock_sync.c index 6cc6a5a0a..cbe7a25dc 100644 --- a/src/spock_sync.c +++ b/src/spock_sync.c @@ -191,8 +191,8 @@ build_exclude_schema_string(SpockSubscription *sub) /* * Exclude unconditionally: we run on the subscriber but pg_dump reads - * the provider (e.g. pgedge_ace exists only there on a fresh join), and - * pg_dump ignores an exclude pattern that matches nothing. + * the provider (e.g. pgedge_ace exists only there on a fresh join), + * and pg_dump ignores an exclude pattern that matches nothing. */ arg = psprintf("--exclude-schema=%s", schema_name); lst = lappend(lst, arg); @@ -203,7 +203,7 @@ build_exclude_schema_string(SpockSubscription *sub) { foreach(lc, sub->skip_schema) { - const char *schema_name = (const char *) lfirst(lc); + const char *schema_name = (const char *) lfirst(lc); if (!OidIsValid(LookupExplicitNamespace(schema_name, true))) continue; @@ -237,7 +237,7 @@ dump_structure(SpockSubscription *sub, const char *destfile, get_pg_executable(PGDUMP_BINARY, pg_dump); args = lappend(args, pg_dump); - args = lappend(args, "-Fc"); /* custom format */ + args = lappend(args, "-Fc"); /* custom format */ args = lappend(args, "-s"); /* schema only */ arg = psprintf("--snapshot=%s", snapshot); @@ -273,10 +273,10 @@ dump_structure(SpockSubscription *sub, const char *destfile, pg_dump))); /* - * Allocations have been made in the transaction context. Hence, don't bother - * freeing memory - it will be released soon. - * Also, some elements in the args list are string literals, so freeing - * the list would be unsafe anyway. + * Allocations have been made in the transaction context. Hence, don't + * bother freeing memory - it will be released soon. Also, some elements + * in the args list are string literals, so freeing the list would be + * unsafe anyway. */ } @@ -495,9 +495,9 @@ adjust_progress_info(PGconn *origin_conn) for (rno = 0; rno < PQntuples(originRes); rno++) { SpockApplyProgress *sap = - MemoryContextAlloc(CacheMemoryContext, - sizeof(SpockApplyProgress)); - MemoryContext oldctx; + MemoryContextAlloc(CacheMemoryContext, + sizeof(SpockApplyProgress)); + MemoryContext oldctx; /* * Update the remote node's progress entry to what our sync @@ -554,6 +554,7 @@ adjust_progress_info(PGconn *origin_conn) Assert(IS_VALID_TIMESTAMP(sap->last_updated_ts)); if (sap->last_updated_ts < sap->remote_commit_ts) + /* * Complaining at the end of the sync we shouldn't flood * the log @@ -569,7 +570,7 @@ adjust_progress_info(PGconn *origin_conn) } sap->updated_by_decode = updated_by_decode[0] == 't', - oldctx = MemoryContextSwitchTo(CacheMemoryContext); + oldctx = MemoryContextSwitchTo(CacheMemoryContext); resultList = lappend(resultList, sap); MemoryContextSwitchTo(oldctx); @@ -608,9 +609,9 @@ adjust_progress_info(PGconn *origin_conn) */ static char * spock_create_slot_and_read_progress(PGconn *conn, PGconn *repl_conn, - const char *slot_name, - Oid origin_node_id, Oid subscriber_node_id, - XLogRecPtr *lsn_out, List **progress_out) + const char *slot_name, + Oid origin_node_id, Oid subscriber_node_id, + XLogRecPtr *lsn_out, List **progress_out) { StringInfoData query; PGresult *res; @@ -618,14 +619,18 @@ spock_create_slot_and_read_progress(PGconn *conn, PGconn *repl_conn, List *progress_list = NIL; int nrows; int rno; - /* Column indices in the result: lsn(0), snapshot(1) are skipped; GP_* start at 2 */ - const int COL_OFFSET = 2; /* GP_* indices start at COL_OFFSET */ + + /* + * Column indices in the result: lsn(0), snapshot(1) are skipped; GP_* + * start at 2 + */ + const int COL_OFFSET = 2; /* GP_* indices start at COL_OFFSET */ initStringInfo(&query); /* - * Drop an existing inactive slot so we can re-create it cleanly. - * Ignore errors (the slot may not exist, which is fine). + * Drop an existing inactive slot so we can re-create it cleanly. Ignore + * errors (the slot may not exist, which is fine). */ appendStringInfo(&query, "SELECT pg_drop_replication_slot('%s') " @@ -652,10 +657,11 @@ spock_create_slot_and_read_progress(PGconn *conn, PGconn *repl_conn, /* * Create the slot via the replication protocol. This returns a snapshot - * consistent with the slot's WAL position — the correct snapshot for COPY. + * consistent with the slot's WAL position — the correct snapshot for + * COPY. * - * Mark the slot with (FAILOVER) when the remote provider is PG17+. - * Detect the version on the SQL connection (conn), held open anyway. + * Mark the slot with (FAILOVER) when the remote provider is PG17+. Detect + * the version on the SQL connection (conn), held open anyway. */ appendStringInfo(&query, "CREATE_REPLICATION_SLOT \"%s\" LOGICAL %s", slot_name, "spock_output"); @@ -690,7 +696,7 @@ spock_create_slot_and_read_progress(PGconn *conn, PGconn *repl_conn, } *lsn_out = DatumGetLSN(DirectFunctionCall1Coll(pg_lsn_in, InvalidOid, - CStringGetDatum(PQgetvalue(res, 0, 1)))); + CStringGetDatum(PQgetvalue(res, 0, 1)))); snapshot = pstrdup(PQgetvalue(res, 0, 2)); PQclear(res); @@ -698,8 +704,8 @@ spock_create_slot_and_read_progress(PGconn *conn, PGconn *repl_conn, slot_name, LSN_FORMAT_ARGS(*lsn_out), snapshot); /* - * Import the slot's snapshot into a REPEATABLE READ transaction. - * This is the snapshot the COPY will use. + * Import the slot's snapshot into a REPEATABLE READ transaction. This is + * the snapshot the COPY will use. */ appendStringInfo(&query, "BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; " @@ -728,9 +734,11 @@ spock_create_slot_and_read_progress(PGconn *conn, PGconn *repl_conn, if (nrows < 1) elog(ERROR, "spock.read_peer_progress returned no rows"); - /* Row 0 is the header row: lsn + snapshot, progress fields all NULL. + /* + * Row 0 is the header row: lsn + snapshot, progress fields all NULL. * lsn_out and snapshot are already set from the replication protocol; - * just log for debugging. Skip COL_LSN/COL_SNAP from SQL result. */ + * just log for debugging. Skip COL_LSN/COL_SNAP from SQL result. + */ elog(LOG, "SPOCK cswp slot=%s lsn=%X/%X snapshot=%s peers=%d", slot_name, LSN_FORMAT_ARGS(*lsn_out), snapshot, nrows - 1); @@ -738,28 +746,28 @@ spock_create_slot_and_read_progress(PGconn *conn, PGconn *repl_conn, for (rno = 1; rno < nrows; rno++) { SpockApplyProgress *sap; - MemoryContext oldctx; - char *remote_node_id_str; - char *remote_commit_ts_str; - char *remote_commit_lsn_str; - char *remote_insert_lsn_str; - char *last_updated_ts_str; + MemoryContext oldctx; + char *remote_node_id_str; + char *remote_commit_ts_str; + char *remote_commit_lsn_str; + char *remote_insert_lsn_str; + char *last_updated_ts_str; if (PQgetisnull(res, rno, COL_OFFSET + GP_REMOTE_NODE_ID)) - continue; /* shouldn't happen but be safe */ + continue; /* shouldn't happen but be safe */ sap = (SpockApplyProgress *) MemoryContextAlloc(CacheMemoryContext, sizeof(SpockApplyProgress)); oldctx = MemoryContextSwitchTo(CacheMemoryContext); - sap->key.dbid = MyDatabaseId; - sap->key.node_id = MySubscription->target->id; - remote_node_id_str = PQgetvalue(res, rno, COL_OFFSET + GP_REMOTE_NODE_ID); - sap->key.remote_node_id = atooid(remote_node_id_str); + sap->key.dbid = MyDatabaseId; + sap->key.node_id = MySubscription->target->id; + remote_node_id_str = PQgetvalue(res, rno, COL_OFFSET + GP_REMOTE_NODE_ID); + sap->key.remote_node_id = atooid(remote_node_id_str); Assert(OidIsValid(sap->key.remote_node_id)); - sap->remote_commit_ts = 0; - sap->prev_remote_ts = 0; + sap->remote_commit_ts = 0; + sap->prev_remote_ts = 0; if (!PQgetisnull(res, rno, COL_OFFSET + GP_REMOTE_COMMIT_TS)) { remote_commit_ts_str = PQgetvalue(res, rno, COL_OFFSET + GP_REMOTE_COMMIT_TS); @@ -767,15 +775,15 @@ spock_create_slot_and_read_progress(PGconn *conn, PGconn *repl_conn, } sap->prev_remote_ts = sap->remote_commit_ts; - remote_commit_lsn_str = PQgetvalue(res, rno, COL_OFFSET + GP_REMOTE_COMMIT_LSN); - sap->remote_commit_lsn = str_to_lsn(remote_commit_lsn_str); + remote_commit_lsn_str = PQgetvalue(res, rno, COL_OFFSET + GP_REMOTE_COMMIT_LSN); + sap->remote_commit_lsn = str_to_lsn(remote_commit_lsn_str); - remote_insert_lsn_str = PQgetvalue(res, rno, COL_OFFSET + GP_REMOTE_INSERT_LSN); - sap->remote_insert_lsn = str_to_lsn(remote_insert_lsn_str); + remote_insert_lsn_str = PQgetvalue(res, rno, COL_OFFSET + GP_REMOTE_INSERT_LSN); + sap->remote_insert_lsn = str_to_lsn(remote_insert_lsn_str); - sap->received_lsn = sap->remote_commit_lsn; + sap->received_lsn = sap->remote_commit_lsn; - sap->last_updated_ts = 0; + sap->last_updated_ts = 0; if (!PQgetisnull(res, rno, COL_OFFSET + GP_LAST_UPDATED_TS)) { last_updated_ts_str = PQgetvalue(res, rno, COL_OFFSET + GP_LAST_UPDATED_TS); @@ -795,9 +803,9 @@ spock_create_slot_and_read_progress(PGconn *conn, PGconn *repl_conn, PQclear(res); /* - * Resume apply workers now that slot and progress are captured. - * The REPEATABLE READ transaction (and its snapshot) remain open - * for the COPY phase; the workers can resume safely. + * Resume apply workers now that slot and progress are captured. The + * REPEATABLE READ transaction (and its snapshot) remain open for the COPY + * phase; the workers can resume safely. */ res = PQexec(conn, "SELECT spock.resume_apply_workers()"); if (PQresultStatus(res) != PGRES_TUPLES_OK) @@ -820,7 +828,7 @@ spock_create_slot_and_read_progress(PGconn *conn, PGconn *repl_conn, static void spock_release_slot_snapshot(PGconn *conn) { - PGresult *res = PQexec(conn, "ROLLBACK"); + PGresult *res = PQexec(conn, "ROLLBACK"); PQclear(res); PQfinish(conn); @@ -879,8 +887,8 @@ start_copy_target_tx(PGconn *conn, const char *origin_name) /* * Set correct origin if target db supports it. We must do this before - * starting the transaction otherwise the status code below would get - * much more complicated. + * starting the transaction otherwise the status code below would get much + * more complicated. */ if (PQserverVersion(conn) >= 90500) { @@ -1247,10 +1255,9 @@ copy_tables_data(SpockSubscription *sub, const char *origin_dsn, /* * Update replication progress. We must do it after commit of the COPY. * - * NOTE: - * It is not obvious we need to arrange progress in case of accidental - * single-table re-sync. But while this machinery serves information goals - * only we just follow the initial logic. + * NOTE: It is not obvious we need to arrange progress in case of + * accidental single-table re-sync. But while this machinery serves + * information goals only we just follow the initial logic. */ spock_group_progress_update_list(progress_entries_list); } @@ -1281,8 +1288,8 @@ copy_replication_sets_data(SpockSubscription *sub, const char *origin_dsn, start_copy_origin_tx(origin_conn, origin_snapshot); /* - * Read progress info within the same snapshot used for COPY so that - * the LSN values are consistent with the data we are about to copy. + * Read progress info within the same snapshot used for COPY so that the + * LSN values are consistent with the data we are about to copy. */ if (progress_out) *progress_out = adjust_progress_info(origin_conn); @@ -1315,7 +1322,7 @@ copy_replication_sets_data(SpockSubscription *sub, const char *origin_dsn, StartTransactionCommand(); { List *reserved = spock_reserved_object_names(RESERVED_KIND_SCHEMA, - RESERVED_PURPOSE_REPSET); + RESERVED_PURPOSE_REPSET); ListCell *lc_res; MemoryContext txcxt = MemoryContextSwitchTo(synccxt); @@ -1514,8 +1521,9 @@ spock_sync_subscription(SpockSubscription *sub) * rather than let the worker crash-loop on every restart. Checked * before the replication connection and slot are created. No * transaction is open (the switch above committed its own), so - * spock_disable_subscription() commits its own and the disable survives - * the FATAL; origin_conn is left open to keep remoteversion_str valid. + * spock_disable_subscription() commits its own and the disable + * survives the FATAL; origin_conn is left open to keep + * remoteversion_str valid. */ if (SyncKindStructure(sync->kind) && !upstream_version_supports_structure_sync(origin_conn)) @@ -1544,20 +1552,20 @@ spock_sync_subscription(SpockSubscription *sub) sub->name, "snap"); /* - * Pause apply workers, create slot via replication protocol - * (returns snapshot consistent with slot's WAL position), - * read peer progress, and resume workers. + * Pause apply workers, create slot via replication protocol (returns + * snapshot consistent with slot's WAL position), read peer progress, + * and resume workers. */ PG_TRY(); { snapshot = spock_create_slot_and_read_progress( - origin_conn, - origin_conn_repl, - sub->slot_name, - MySubscription->origin->id, - MySubscription->target->id, - &lsn, - &progress_entries_list); + origin_conn, + origin_conn_repl, + sub->slot_name, + MySubscription->origin->id, + MySubscription->target->id, + &lsn, + &progress_entries_list); } PG_CATCH(); { @@ -1567,8 +1575,8 @@ spock_sync_subscription(SpockSubscription *sub) /* * CopyErrorData() requires that we are NOT running in * ErrorContext, otherwise its assertion in elog.c trips on - * cassert builds and the apply worker dies with SIGABRT. - * Switch into our long-lived sync context first. + * cassert builds and the apply worker dies with SIGABRT. Switch + * into our long-lived sync context first. */ savecxt = MemoryContextSwitchTo(myctx); edata = CopyErrorData(); @@ -1578,13 +1586,16 @@ spock_sync_subscription(SpockSubscription *sub) sub->name, sub->slot_name, edata->message ? edata->message : ""); - /* Best-effort resume of apply workers on the remote node. - * If the connection is broken this will fail silently — - * the workers' CV timeout will recover them. */ + /* + * Best-effort resume of apply workers on the remote node. If the + * connection is broken this will fail silently — the workers' + * CV timeout will recover them. + */ if (origin_conn && PQstatus(origin_conn) == CONNECTION_OK) { - PGresult *rres = PQexec(origin_conn, - "SELECT spock.resume_apply_workers()"); + PGresult *rres = PQexec(origin_conn, + "SELECT spock.resume_apply_workers()"); + if (rres) PQclear(rres); } @@ -1595,10 +1606,12 @@ spock_sync_subscription(SpockSubscription *sub) } PG_END_TRY(); - /* origin_conn transaction remains open — snapshot held for COPY. - * Keep origin_conn_repl open too — the exported snapshot file - * in pg_snapshots/ is tied to this connection and needed by - * pg_dump during structure sync. */ + /* + * origin_conn transaction remains open — snapshot held for COPY. + * Keep origin_conn_repl open too — the exported snapshot file in + * pg_snapshots/ is tied to this connection and needed by pg_dump + * during structure sync. + */ PG_ENSURE_ERROR_CLEANUP(spock_sync_worker_cleanup_error_cb, PointerGetDatum(sub)); @@ -1790,7 +1803,10 @@ spock_sync_table(SpockSubscription *sub, RangeVar *table, */ if (sync->status != SYNC_STATUS_INIT) { - /* We don't use the if-branch at the moment. Just check to be paranoid. */ + /* + * We don't use the if-branch at the moment. Just check to be + * paranoid. + */ Assert(sync->stop_on_error); /* @@ -2146,12 +2162,11 @@ syncstatus_fromtuple(HeapTuple tuple, TupleDesc desc) { /* * XXX: Adding a parameter to a stable extension's UI and DB table - * always needs careful coding. So, let's do it step-by-step - * and for now change defaults and stop attempting single table - * synchronisation on an error. - * Keep it false for subscriptions syncing purposes. We don't really use - * it in subscription syncing code now - it should be covered by the - * following commits. + * always needs careful coding. So, let's do it step-by-step and for + * now change defaults and stop attempting single table + * synchronisation on an error. Keep it false for subscriptions + * syncing purposes. We don't really use it in subscription syncing + * code now - it should be covered by the following commits. */ sync->stop_on_error = true; } diff --git a/src/spock_worker.c b/src/spock_worker.c index ee05631df..115a9e7b1 100644 --- a/src/spock_worker.c +++ b/src/spock_worker.c @@ -417,8 +417,8 @@ spock_worker_detach(bool crash) /* * Allow tests to observe the worker just before it releases its shared - * memory slot. The worker type and proc pointer are still valid here, - * so callers can distinguish worker types if needed. + * memory slot. The worker type and proc pointer are still valid here, so + * callers can distinguish worker types if needed. */ SPOCK_WORKER_DELAY(); @@ -812,9 +812,9 @@ spock_worker_shmem_request(int nworkers) exception_log_shmem_size(nworkers)); /* - * TODO: Separate spockStatsEntry: it should be covered by separate lock as - * well as its UI functions may be encapsulated inside the module and make - * all the pointers static. + * TODO: Separate spockStatsEntry: it should be covered by separate lock + * as well as its UI functions may be encapsulated inside the module and + * make all the pointers static. */ spock_stats_max_entries = SPOCK_STATS_MAX_ENTRIES(nworkers); num_bytes = add_size(num_bytes, @@ -843,9 +843,9 @@ spock_worker_shmem_request(int nworkers) void spock_worker_shmem_startup(bool found) { - HASHCTL hctl; - bool is_found; - int nworkers = SpockCtx->total_workers; + HASHCTL hctl; + bool is_found; + int nworkers = SpockCtx->total_workers; /* Check code paths consistency */ Assert(LWLockHeldByMeInMode(AddinShmemInitLock, LW_EXCLUSIVE)); @@ -855,9 +855,9 @@ spock_worker_shmem_startup(bool found) * Reset local pointers to shared memory structures. * * This is called during initialization and after crash recovery to ensure - * that local static pointers don't reference old shared memory. - * When the postmaster reinitializes shared memory after a crash, local - * pointers in extensions still point to the old locations. + * that local static pointers don't reference old shared memory. When the + * postmaster reinitializes shared memory after a crash, local pointers in + * extensions still point to the old locations. */ MySpockWorker = NULL; SpockHash = NULL; diff --git a/utils/pgindent/typedefs.list b/utils/pgindent/typedefs.list index 845e50cc0..298212b0b 100644 --- a/utils/pgindent/typedefs.list +++ b/utils/pgindent/typedefs.list @@ -1,9 +1,13 @@ -__m128i -__m512i -__mmask64 -_SPI_connection -_SPI_plan -_stringlist +ACCESS_ALLOWED_ACE +ACL +ACL_SIZE_INFORMATION +AFFIX +ASN1_INTEGER +ASN1_OBJECT +ASN1_OCTET_STRING +ASN1_STRING +ATAlterConstraint +AV A_ArrayExpr A_Const A_Expr @@ -12,7 +16,6 @@ A_Indices A_Indirection A_Star AbsoluteTime -access_vector_t AccessMethodInfo AccessPriv Acl @@ -20,62 +23,64 @@ AclItem AclMaskHow AclMode AclResult -acquireLocksOnSubLinks_context AcquireSampleRowsFunc ActionErrCallbackArg ActionList ActiveSnapshotElt -add_nulling_relids_context -addFkConstraintSides AddForeignUpdateTargets_function AddrInfo -adjust_appendrel_attrs_context -AFFIX AffixNode AffixNodeData +AfterTriggerBatchCallback +AfterTriggerCallbackItem AfterTriggerEvent AfterTriggerEventChunk AfterTriggerEventData AfterTriggerEventList -AfterTriggersData AfterTriggerShared AfterTriggerSharedData +AfterTriggersData AfterTriggersQueryData AfterTriggersTableData AfterTriggersTransData Agg AggClauseCosts +AggClauseInfo AggInfo AggPath -Aggref -AggregateInstrumentation AggSplit AggState AggStatePerAgg +AggStatePerAggData AggStatePerGroup +AggStatePerGroupData AggStatePerHash +AggStatePerHashData AggStatePerPhase +AggStatePerPhaseData AggStatePerTrans +AggStatePerTransData AggStrategy AggTransInfo +Aggref +AggregateInstrumentation AlenState Alias -AllocateDesc -AllocateDescKind AllocBlock AllocFreeListLink -allocfunc AllocPointer AllocSet AllocSetContext AllocSetFreeList +AllocateDesc +AllocateDescKind AlterCollationStmt AlterDatabaseRefreshCollStmt AlterDatabaseSetStmt AlterDatabaseStmt AlterDefaultPrivilegesStmt AlterDomainStmt -AlteredTableInfo +AlterDomainType AlterEnumStmt AlterEventTrigStmt AlterExtensionContentsStmt @@ -83,13 +88,15 @@ AlterExtensionStmt AlterFdwStmt AlterForeignServerStmt AlterFunctionStmt -AlternativeSubPlan AlterObjectDependsStmt AlterObjectSchemaStmt -AlterOperatorStmt AlterOpFamilyStmt +AlterOperatorStmt AlterOwnerStmt +AlterPkRiChange AlterPolicyStmt +AlterPropGraphElementKind +AlterPropGraphStmt AlterPublicationAction AlterPublicationStmt AlterReplicationSlotCmd @@ -100,6 +107,9 @@ AlterStatsStmt AlterSubscriptionStmt AlterSubscriptionType AlterSystemStmt +AlterTSConfigType +AlterTSConfigurationStmt +AlterTSDictionaryStmt AlterTableCmd AlterTableMoveAllStmt AlterTablePass @@ -107,39 +117,12 @@ AlterTableSpaceOptionsStmt AlterTableStmt AlterTableType AlterTableUtilityContext -AlterTSConfigType -AlterTSConfigurationStmt -AlterTSDictionaryStmt AlterTypeRecurseParams AlterTypeStmt AlterUserMappingStmt -amadjustmembers_function -ambeginscan_function -ambuild_function -ambuildempty_function -ambuildphasename_function -ambulkdelete_function -amcanreturn_function +AlteredTableInfo +AlternativeSubPlan AmcheckOptions -amcostestimate_function -amendscan_function -amestimateparallelscan_function -amgetbitmap_function -amgettreeheight_function -amgettuple_function -aminitparallelscan_function -aminsert_function -aminsertcleanup_function -ammarkpos_function -amoptions_function -amparallelrescan_function -amproperty_function -amrescan_function -amrestrpos_function -amtranslate_cmptype_function -amtranslate_strategy_function -amvacuumcleanup_function -amvalidate_function AnalyzeAttrComputeStatsFunc AnalyzeAttrFetchFunc AnalyzeForeignTable_function @@ -148,12 +131,12 @@ AnlIndexData AnyArrayType Append AppendPath +AppendPathInput AppendRelInfo AppendState ApplyErrorCallbackArg ApplyExecState ApplyExecutionData -ApplyMIState ApplyReplayEntryData ApplySubXactData Archive @@ -167,13 +150,14 @@ ArchiveModuleCallbacks ArchiveModuleInit ArchiveModuleState ArchiveOpts -ArchiverOutput -ArchiverStage ArchiveShutdownCB ArchiveStartupCB ArchiveStreamState -array_iter -array_unnest_fctx +ArchivedWALFile +ArchivedWAL_hash +ArchivedWAL_iterator +ArchiverOutput +ArchiverStage ArrayAnalyzeExtraData ArrayBuildState ArrayBuildStateAny @@ -184,6 +168,7 @@ ArrayExpr ArrayExprIterState ArrayIOData ArrayIterator +ArrayIteratorData ArrayMapState ArrayMetaState ArrayParseState @@ -191,59 +176,91 @@ ArraySortCachedInfo ArraySubWorkspace ArrayToken ArrayType -ASN1_INTEGER -ASN1_OBJECT -ASN1_OCTET_STRING -ASN1_STRING -assign_collations_context -astreamer -astreamer_archive_context -astreamer_extractor -astreamer_gzip_decompressor -astreamer_gzip_writer -astreamer_lz4_frame -astreamer_member -astreamer_ops -astreamer_plain_writer -astreamer_recovery_injector -astreamer_tar_archiver -astreamer_tar_parser -astreamer_verify -astreamer_zstd_frame AsyncQueueControl AsyncQueueEntry AsyncRequest -ATAlterConstraint AttInMetadata +AttStatsSlot AttoptCacheEntry AttoptCacheKey -AttrDefault AttrDefInfo -AttributeOpts +AttrDefault AttrMap AttrMissing AttrNumber -AttStatsSlot -auth_password_hook_typ +AttrResultArgMap +AttributeOpts AuthRequest AuthToken AutoPrewarmReadStreamData AutoPrewarmSharedState -autovac_table AutoVacOpts +AutoVacuumScores AutoVacuumShmemStruct AutoVacuumWorkItem AutoVacuumWorkItemType AuxProcType -AV -av_relation -avc_cache -avl_dbase -avl_node -avl_tree -avw_dbase +BF_ctx +BF_key +BF_word +BF_word_signed +BIGNUM +BIO +BIO_METHOD +BITVECP +BMS_Comparison +BMS_Membership +BN_CTX +BOOL +BOOLEAN +BOX +BTArrayKeyInfo +BTBuildState +BTCallbackState +BTCycleId +BTDedupInterval +BTDedupState +BTDedupStateData +BTDeletedPageData +BTIndexStat +BTInsertState +BTInsertStateData +BTLeader +BTMetaPageData +BTOneVacInfo +BTOptions +BTPS_State +BTPageOpaque +BTPageOpaqueData +BTPageStat +BTPageState +BTParallelScanDesc +BTPendingFSM +BTReadPageState +BTScanInsert +BTScanInsertData +BTScanKeyPreproc +BTScanOpaque +BTScanOpaqueData +BTScanPos +BTScanPosData +BTScanPosItem +BTShared +BTSortArrayContext +BTSpool +BTStack +BTStackData +BTVacInfo +BTVacState +BTVacuumPosting +BTVacuumPostingData +BTWriteState +BUF_MEM +BYTE +BY_HANDLE_FILE_INFORMATION Backend BackendId +BackendParameters BackendStartupData BackendState BackendType @@ -252,72 +269,33 @@ BackgroundWorker BackgroundWorkerArray BackgroundWorkerHandle BackgroundWorkerSlot -backslashResult -backup_file_entry -backup_file_hash -backup_manifest_info -backup_manifest_option -backup_wal_range BackupState Barrier -base_yy_extra_type -basebackup_options BaseBackupCmd BaseBackupTargetHandle BaseBackupTargetType BasicArchiveData -bbsink -bbsink_copystream -bbsink_gzip -bbsink_lz4 -bbsink_ops -bbsink_server -bbsink_shell -bbsink_state -bbsink_throttle -bbsink_zstd -bbstreamer -bbstreamer_archive_context -bbstreamer_extractor -bbstreamer_gzip_decompressor -bbstreamer_gzip_writer -bbstreamer_lz4_frame -bbstreamer_member -bbstreamer_ops -bbstreamer_plain_writer -bbstreamer_recovery_injector -bbstreamer_tar_archiver -bbstreamer_tar_parser -bbstreamer_zstd_frame +BatchMVCCState BeginDirectModify_function BeginForeignInsert_function BeginForeignModify_function BeginForeignScan_function BeginSampleScan_function BernoulliSamplerData -BF_ctx -BF_key -BF_word -BF_word_signed -BgwHandleStatus -bgworker_main_type BgWorkerStartTime -bh_node_type -BIGNUM +BgwHandleStatus BinaryArithmFunc -binaryheap -binaryheap_comparator BinaryUpgradeClassOidItem BindParamCbData -BIO -BIO_METHOD BipartiteMatchState +BitString BitmapAnd BitmapAndPath BitmapAndState BitmapHeapPath BitmapHeapScan BitmapHeapScanDesc +BitmapHeapScanDescData BitmapHeapScanInstrumentation BitmapHeapScanState BitmapIndexScan @@ -326,23 +304,13 @@ BitmapOr BitmapOrPath BitmapOrState Bitmapset -bitmapword -bits16 -bits32 -bits8 -BitString -BITVECP Block -BlockedProcData -BlockedProcsData BlockId BlockIdData BlockInfoRecord BlockNumber BlockRangeReadStreamPrivate BlockRefTable -blockreftable_hash -blockreftable_iterator BlockRefTableBuffer BlockRefTableChunk BlockRefTableEntry @@ -352,8 +320,10 @@ BlockRefTableSerializedEntry BlockRefTableWriter BlockSampler BlockSamplerData +BlockedProcData +BlockedProcsData +BlocksReadStreamData BlocktableEntry -bloom_filter BloomBuildState BloomFilter BloomMetaPageData @@ -366,20 +336,13 @@ BloomScanOpaqueData BloomSignatureWord BloomState BloomTuple -BMS_Comparison -BMS_Membership -BN_CTX BoolAggState -Boolean -BooleanTest BoolExpr BoolExprType -boolKEY BoolTestType -BOX +Boolean +BooleanTest BpChar -brin_column_state -brin_serialize_callback_type BrinBuildState BrinDesc BrinInsertState @@ -396,68 +359,29 @@ BrinSpecialSpace BrinStatsData BrinTuple BrinValues -BTArrayKeyInfo -BTBuildState -BTCallbackState -BTCycleId -BTDedupInterval -BTDedupState -BTDedupStateData -BTDeletedPageData -BTIndexStat -BTInsertState -BTInsertStateData -BTLeader -BTMetaPageData -BTOneVacInfo -BTOptions -BTPageOpaque -BTPageOpaqueData -BTPageStat -BTPageState -BTParallelScanDesc -BTPendingFSM -BTPS_State -BTReadPageState BtreeCheckState BtreeLastVisibleEntry BtreeLevel -BTScanInsert -BTScanInsertData -BTScanKeyPreproc -BTScanOpaque -BTScanOpaqueData -BTScanPos -BTScanPosData -BTScanPosItem -BTShared -BTSortArrayContext -BTSpool -BTStack -BTStackData -BTVacInfo -BTVacState -BTVacuumPosting -BTVacuumPostingData -BTWriteState Bucket -BUF_MEM +BufFile Buffer BufferAccessStrategy BufferAccessStrategyType BufferCacheNumaContext BufferCacheNumaRec +BufferCacheOsPagesContext +BufferCacheOsPagesRec BufferCachePagesContext BufferCachePagesRec BufferDesc BufferDescPadded BufferHeapTupleTableSlot +BufferLockMode BufferLookupEnt BufferManagerRelation BufferStrategyControl BufferTag BufferUsage -BufFile BuildAccumulator BuiltinScript BulkInsertState @@ -466,9 +390,33 @@ BulkWriteBuffer BulkWriteState BumpBlock BumpContext -bytea +ByteaSortSupport +CACHESIGN CAC_state -cached_re_str +CCFastEqualFN +CCHashFN +CEOUC_WAIT_MODE +CFuncHashTabEntry +CHAR +CHECKPOINT +CHKVAL +CIRCLE +CMPDAffix +CONTEXT +COP +CRITICAL_SECTION +CRSSnapshotAction +CState +CTECycleClause +CTEMaterialize +CTESearchClause +CURL +CURLM +CURLMcode +CURLMsg +CURLcode +CURLoption +CV CachedExpression CachedFunction CachedFunctionCompileCallback @@ -477,55 +425,36 @@ CachedFunctionHashEntry CachedFunctionHashKey CachedPlan CachedPlanSource -CACHESIGN CallContext CallStmt CancelRequestPacket -canonicalize_state Cardinality CaseExpr CaseKind CaseTestExpr CaseWhen Cash -cashKEY CastInfo -CatalogId -catalogid_hash -CatalogIdMapEntry -CatalogIndexState -CatCache -CatCacheHeader CatCInProgress CatCList CatCTup -cb_cleanup_dir -cb_options -cb_tablespace -cb_tablespace_mapping -CCFastEqualFN -CCHashFN -CEOUC_WAIT_MODE -CFuncHashTabEntry +CatCache +CatCacheHeader +CatalogId +CatalogIdMapEntry +CatalogIndexState +ChangeContext ChangeVarNodes_callback ChangeVarNodes_context -check_agg_arguments_context -check_function_callback -check_network_data -check_object_relabel_type -check_password_hook_type -check_ungrouped_columns_context +ChannelName CheckPoint -CHECKPOINT +CheckPointStmt +CheckpointStatsData CheckpointerRequest CheckpointerShmemStruct -CheckpointStatsData -CheckPointStmt -child_process_kind -CHKVAL -chr +ChecksumBarrierCondition +ChecksumStateType Chromosome -CIRCLE CkptSortItem CkptTsStatus ClientAuthentication_hook_type @@ -543,10 +472,7 @@ ClusterInfo ClusterParams ClusterStmt CmdType -CMPDAffix -cmpEntriesArg CoalesceExpr -codes_t CoerceParamHook CoerceToDomain CoerceToDomainValue @@ -555,17 +481,14 @@ CoercionContext CoercionForm CoercionPathType CollAliasData +CollInfo +CollParam CollateClause CollateExpr CollateStrength -collation_cache_entry -collation_cache_hash CollectedATSubcmd CollectedCommand CollectedCommandType -CollInfo -color -colormaprange ColorTrgm ColorTrgmInfo ColumnCompareData @@ -590,9 +513,9 @@ CommitTimestampShared CommonEntry CommonTableExpr CompactAttribute -compare_context CompareScalarsContext CompareType +CompiledExprState CompositeIOData CompositeTypeStmt CompoundAffixFlag @@ -600,50 +523,41 @@ CompressFileHandle CompressionLocation CompressorState ComputeXidHorizonsResult -ConditionalStack +ConcurrentChangeKind ConditionVariable ConditionVariableMinimallyPadded -config_handle -config_var_value +ConditionalStack +ConditionalStackData ConfigData ConfigVariable ConflictTupleInfo ConflictType -conn_errorMessage_func -conn_oauth_client_id_func -conn_oauth_client_secret_func -conn_oauth_discovery_uri_func -conn_oauth_issuer_id_func -conn_oauth_scope_func -conn_sasl_state_func ConnCacheEntry ConnCacheKey -ConnectionStateEnum ConnParams ConnStatusType ConnType +ConnectionStateEnum +ConnectionTiming +ConnectionWarning +ConnectionWarningFilter ConsiderSplitContext Const +ConstrCheck +ConstrType Constraint ConstraintCategory ConstraintInfo ConstraintsSetStmt -ConstrCheck -ConstrType -contain_aggs_of_level_context -contain_placeholder_references_context ControlData ControlFileData -ConversionLocation -convert_testexpr_context -ConvertRowtypeExpr ConvInfo ConvProcInfo +ConversionLocation +ConvertRowtypeExpr CookedConstraint -COP -copy_data_dest_cb -copy_data_source_cb CopyDest +CopyFormat CopyFormatOptions CopyFromRoutine CopyFromState @@ -655,30 +569,21 @@ CopyMethod CopyMultiInsertBuffer CopyMultiInsertInfo CopyOnErrorChoice +CopySeqResult CopySource CopyStmt CopyToRoutine CopyToState CopyToStateData -core_yy_extra_type -core_yyscan_t -core_YYSTYPE -corrupt_items Cost -cost_qual_eval_context CostSelector -count_param_references_context Counters CoverExt CoverPos -cp_hash_func -create_upper_paths_hook_type CreateAmStmt CreateCastStmt CreateConversionStmt -createdb_failure_params CreateDBRelInfo -CreatedbStmt CreateDBStrategy CreateDomainStmt CreateEnumStmt @@ -693,6 +598,7 @@ CreateOpClassStmt CreateOpFamilyStmt CreatePLangStmt CreatePolicyStmt +CreatePropGraphStmt CreatePublicationStmt CreateRangeStmt CreateReplicationSlotCmd @@ -709,27 +615,14 @@ CreateTableSpaceStmt CreateTransformStmt CreateTrigStmt CreateUserMappingStmt -crosstab_cat_desc -crosstab_HashEnt -CRSSnapshotAction -CState -CTECycleClause +CreatedbStmt +CredHandle CteItem -CTEMaterialize CteScan CteScanState -CTESearchClause CteState CtlCommand -CURL -curl_infotype -curl_socket_t -curl_version_info_data -CURLcode -CURLM -CURLMcode -CURLMsg -CURLoption +CtxtHandle CurrentOfExpr CustomExecMethods CustomOutPtrType @@ -737,97 +630,93 @@ CustomPath CustomScan CustomScanMethods CustomScanState -CV CycleCtr -DatabaseInfo +DBState +DCHCacheEntry +DEADLOCK_INFO +DECountItem +DH +DIR +DNSServiceErrorType +DNSServiceRef +DR_copy +DR_intorel +DR_printtup +DR_sqlfunction +DR_transientrel +DSMREntryType +DSMRegistryCtxStruct +DSMRegistryEntry +DWORD +DWORD64 +DataChecksumsStateStruct +DataChecksumsWorkerDatabase +DataChecksumsWorkerOperation +DataChecksumsWorkerResult DataDirSyncMethod DataDumperPtr DataPageDeleteStack -datapagemap_iterator_t -datapagemap_t DataTypesUsageChecks DataTypesUsageVersionCheck +DatabaseInfo DateADT -dateKEY DateTimeErrorExtra -datetkn Datum DatumTupleFields DbInfo DbInfoArr DbLocaleInfo -DBState -dce_uuid_t -DCHCacheEntry -dclist_head -DEADLOCK_INFO +DbOidName +DdlOptType +DdlOption +DeClonePtrType DeadLockState DeallocateStmt -decimal DeclareCursorStmt -DeClonePtrType DecodedBkpBlock DecodedXLogRecord DecodingOutputState -DECountItem -DefaultACLInfo +DecodingWorker +DecodingWorkerShared DefElem DefElemAction +DefaultACLInfo DefineStmt DefnDumperPtr DeleteStmt -deparse_columns -deparse_context -deparse_expr_cxt -deparse_namespace +DependenciesParseState +DependenciesSemanticState DependencyGenerator DependencyGeneratorData DependencyType -derives_hash DeserialIOData DestReceiver -destructor -dev_t -DH -DictInt DictISpell +DictInt DictSimple DictSnowball DictSubState DictSyn DictThesaurus -digit DimensionInfo -DIR DirectoryMethodData DirectoryMethodFile DisableTimeoutParams -disassembledLeaf DiscardMode DiscardStmt DispatchOption DistanceValue +DistinctColInfo DistinctExpr -dlist_head -dlist_iter -dlist_mutable_iter -dlist_node -dm_letter -dm_node +DoState +DoStmt DocRepresentation DomainConstraintCache DomainConstraintRef DomainConstraintState DomainConstraintType DomainIOData -DoStmt -DR_copy -DR_intorel -DR_printtup -DR_sqlfunction -DR_transientrel DropBehavior -DropdbStmt DropOwnedStmt DropReplicationSlotCmd DropRoleStmt @@ -835,63 +724,40 @@ DropStmt DropSubscriptionStmt DropTableSpaceStmt DropUserMappingStmt -ds_state -dsa_area -dsa_area_control -dsa_area_pool -dsa_area_span -dsa_handle -dsa_pointer -dsa_pointer_atomic -dsa_segment_header -dsa_segment_index -dsa_segment_map -dshash_compare_function -dshash_copy_function -dshash_hash -dshash_hash_function -dshash_parameters -dshash_partition -dshash_seq_status -dshash_table -dshash_table_control -dshash_table_handle -dshash_table_item -dsm_control_header -dsm_control_item -dsm_handle -dsm_op -dsm_segment -dsm_segment_detach_callback -DSMRegistryCtxStruct -DSMRegistryEntry -DumpableAcl -DumpableObject -DumpableObjectType -DumpableObjectWithAcl +DropdbStmt DumpComponents DumpCtx DumpId DumpOptions DumpSignalInformation +DumpableAcl +DumpableObject +DumpableObjectType +DumpableObjectWithAcl DynamicFileList DynamicZoneAbbrev -EachState -ean13 -eary -EC_KEY -ec_matches_callback_type -ec_member_foreign_arg -ec_member_matches_arg ECDerivesEntry ECDerivesKey -Edge +EC_KEY EDGE -EditableObjectType -ElementsState -eLogType -emit_log_hook_type -EnableTimeoutParams +ENGINE +EOM_flatten_into_method +EOM_get_flat_size_method +EPQState +EPlan +EState +EStatus +EVP_CIPHER +EVP_CIPHER_CTX +EVP_MD +EVP_MD_CTX +EVP_PKEY +EachState +Edge +EditableObjectType +ElementsState +ElidedNode +EnableTimeoutParams EndDataPtrType EndDirectModify_function EndForeignInsert_function @@ -901,29 +767,21 @@ EndLOPtrType EndLOsPtrType EndOfWalRecoveryInfo EndSampleScan_function -ENGINE EnumItem EolType -EOM_flatten_into_method -EOM_get_flat_size_method +EphemeralNameRelationType EphemeralNamedRelation EphemeralNamedRelationData EphemeralNamedRelationMetadata EphemeralNamedRelationMetadataData -EphemeralNameRelationType -EPlan -EPQState EquivalenceClass EquivalenceMember EquivalenceMemberIterator ErrorContextCallback ErrorData ErrorSaveContext -EState -EStatus EstimateDSMForeignScan_function EstimationInfo -eval_const_expressions_context EventTriggerCacheEntry EventTriggerCacheItem EventTriggerCacheStateType @@ -931,11 +789,6 @@ EventTriggerData EventTriggerEvent EventTriggerInfo EventTriggerQueryState -EVP_CIPHER -EVP_CIPHER_CTX -EVP_MD -EVP_MD_CTX -EVP_PKEY ExceptionLabelMap ExceptionMap ExecAuxRowMark @@ -956,29 +809,24 @@ ExecScanRecheckMtd ExecStatus ExecStatusType ExecuteStmt -execution_state ExecutorCheckPerms_hook_type ExecutorEnd_hook_type ExecutorFinish_hook_type ExecutorRun_hook_type ExecutorStart_hook_type -exit_function ExpandedArrayHeader ExpandedObjectHeader ExpandedObjectMethods ExpandedRange ExpandedRecordFieldInfo ExpandedRecordHeader -explain_get_index_name_hook_type -explain_per_node_hook_type -explain_per_plan_hook_type -explain_validate_options_hook_type ExplainDirectModify_function ExplainExtensionOption ExplainForeignModify_function ExplainForeignScan_function ExplainFormat ExplainOneQuery_hook_type +ExplainOptionGUCCheckHandler ExplainOptionHandler ExplainSerializeOption ExplainState @@ -987,8 +835,8 @@ ExplainWorkersState ExportedSnapshot Expr ExprContext -ExprContext_CB ExprContextCallbackFunction +ExprContext_CB ExprDoneCond ExprEvalOp ExprEvalOpLookup @@ -1002,84 +850,63 @@ ExtensibleNodeEntry ExtensibleNodeMethods ExtensionControlFile ExtensionInfo +ExtensionLocation ExtensionSiblingCache ExtensionVersionInfo -f_smgr +FDWCollateState +FD_SET +FILE +FILETIME +FPI +FSMAddress +FSMPage +FSMPageData FailoverSlotFilter FailoverSlotFilterKey FakeRelCacheEntry FakeRelCacheEntryData -fasthash_state +FastPathMeta FastPathStrongRelationLockData -fd_set -FDWCollateState FdwInfo FdwRoutine -fe_oauth_state -fe_scram_state -fe_scram_state_enum -fetch_range_request FetchDirection +FetchDirectionKeywords FetchStmt FieldSelect FieldStore File -FILE -file_action_t -file_entry_t -file_type_t FileBackupMethod FileFdwExecutionState FileFdwPlanState -filehash_hash -filehash_iterator -filemap_t FileNameMap FileSet FileTag -fill_string_relopt FilterCommandType FilterObjectType FilterStateData -finalize_primnode_context FinalPathExtraData -find_dependent_phvs_context -find_expr_references_context FindColsContext FindSplitData FindSplitStrat -fireRIRonSubLink_context -fix_join_expr_context -fix_scan_expr_context -fix_upper_expr_context -fix_windowagg_cond_context +First FixedParallelExecutorState FixedParallelState FixedParamState FlagMode -flatten_join_alias_vars_context -flatten_rtes_walker_context Float -float4 -float4KEY -float8 -float8KEY -floating_decimal_32 -floating_decimal_64 FlushPosition -fmAggrefPtr -fmExprContextCallbackFunction -fmgr_hook_type FmgrBuiltin FmgrHookEventType FmgrInfo -fmNodePtr -fmStringInfo ForBothCellState ForBothState ForEachState -foreign_glob_cxt -foreign_loc_cxt +ForFiveState +ForFourState +ForPortionOfClause +ForPortionOfExpr +ForPortionOfState +ForThreeState ForeignAsyncConfigureWait_function ForeignAsyncNotify_function ForeignAsyncRequest_function @@ -1093,68 +920,7 @@ ForeignServer ForeignServerInfo ForeignTable ForeignTruncateInfo -ForFiveState -ForFourState ForkNumber -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 -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 -Form_pg_foreign_data_wrapper -Form_pg_foreign_server -Form_pg_foreign_table -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_partitioned_table -Form_pg_policy -Form_pg_proc -Form_pg_publication -Form_pg_publication_namespace -Form_pg_publication_rel -Form_pg_range -Form_pg_replication_origin -Form_pg_rewrite -Form_pg_sequence -Form_pg_sequence_data -Form_pg_shdepend -Form_pg_statistic -Form_pg_statistic_ext -Form_pg_statistic_ext_data -Form_pg_subscription -Form_pg_subscription_rel -Form_pg_tablespace -Form_pg_transform -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 FormData_pg_aggregate FormData_pg_am FormData_pg_amop @@ -1169,6 +935,7 @@ FormData_pg_collation FormData_pg_constraint FormData_pg_conversion FormData_pg_database +FormData_pg_db_role_setting FormData_pg_default_acl FormData_pg_depend FormData_pg_enum @@ -1189,6 +956,11 @@ FormData_pg_opfamily FormData_pg_partitioned_table FormData_pg_policy FormData_pg_proc +FormData_pg_propgraph_element +FormData_pg_propgraph_element_label +FormData_pg_propgraph_label +FormData_pg_propgraph_label_property +FormData_pg_propgraph_property FormData_pg_publication FormData_pg_publication_namespace FormData_pg_publication_rel @@ -1215,9 +987,72 @@ FormData_pg_type FormData_pg_user_mapping FormData_spock_depend FormExtraData_pg_attribute -ForThreeState +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 +Form_pg_constraint +Form_pg_conversion +Form_pg_database +Form_pg_db_role_setting +Form_pg_default_acl +Form_pg_depend +Form_pg_enum +Form_pg_event_trigger +Form_pg_extension +Form_pg_foreign_data_wrapper +Form_pg_foreign_server +Form_pg_foreign_table +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_partitioned_table +Form_pg_policy +Form_pg_proc +Form_pg_propgraph_element +Form_pg_propgraph_element_label +Form_pg_propgraph_label +Form_pg_propgraph_label_property +Form_pg_propgraph_property +Form_pg_publication +Form_pg_publication_namespace +Form_pg_publication_rel +Form_pg_range +Form_pg_replication_origin +Form_pg_rewrite +Form_pg_sequence +Form_pg_sequence_data +Form_pg_shdepend +Form_pg_statistic +Form_pg_statistic_ext +Form_pg_statistic_ext_data +Form_pg_subscription +Form_pg_subscription_rel +Form_pg_tablespace +Form_pg_transform +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 FreeBlockNumberArray -freefunc FreeListData FreePageBtree FreePageBtreeHeader @@ -1226,12 +1061,9 @@ FreePageBtreeLeafKey FreePageBtreeSearchResult FreePageManager FreePageSpanLeader +From FromCharDateMode FromExpr -fsec_t -FSMAddress -FSMPage -FSMPageData FullTransactionId FuncCall FuncCallContext @@ -1248,26 +1080,42 @@ FunctionScan FunctionScanPerFuncState FunctionScanState FuzzyAttrMatchState +GBT_NUMKEY +GBT_NUMKEY_R +GBT_VARKEY +GBT_VARKEY_R +GENERAL_NAME +GISTBuildBuffers +GISTBuildState +GISTDeletedPageContents +GISTENTRY +GISTInsertStack +GISTInsertState +GISTIntArrayBigOptions +GISTIntArrayOptions +GISTNodeBuffer +GISTNodeBufferPage +GISTPageOpaque +GISTPageOpaqueData +GISTPageSplitInfo +GISTSTATE +GISTScanOpaque +GISTScanOpaqueData +GISTSearchHeapItem +GISTSearchItem +GISTTYPE +GIST_SPLITVEC +GMReaderTupleBuffer +GROUP +GUCHashEntry +GV Gather GatherMerge GatherMergePath GatherMergeState GatherPath GatherState -GBT_NUMKEY -GBT_NUMKEY_R -GBT_VARKEY -GBT_VARKEY_R -gbt_vsrt_arg -gbtree_ninfo -gbtree_vinfo Gene -GENERAL_NAME -generate_series_fctx -generate_series_numeric_fctx -generate_series_timestamp_fctx -generate_series_timestamptz_fctx -generate_subscripts_fctx GeneratePruningStepsContext GenerationBlock GenerationContext @@ -1276,10 +1124,6 @@ GenericCosts GenericXLogPageData GenericXLogState GeqoPrivateData -get_attavgwidth_hook_type -get_index_stats_hook_type -get_relation_info_hook_type -get_relation_stats_hook_type GetForeignJoinPaths_function GetForeignModifyBatchSize_function GetForeignPaths_function @@ -1288,8 +1132,7 @@ GetForeignRelSize_function GetForeignRowMarkType_function GetForeignUpperPaths_function GetState -gid_t -gin_leafpage_items_state +GiSTOptions GinBtree GinBtreeData GinBtreeDataLeafInsertData @@ -1313,8 +1156,10 @@ GinPostingList GinPostingTreeScanItem GinQualCounts GinScanEntry +GinScanEntryData GinScanItem GinScanKey +GinScanKeyData GinScanOpaque GinScanOpaqueData GinSegmentInfo @@ -1324,96 +1169,55 @@ GinTernaryValue GinTuple GinTupleCollector GinVacuumState -ginxlogCreatePostingTree -ginxlogDeleteListPages -ginxlogDeletePage -ginxlogInsert -ginxlogInsertDataInternal -ginxlogInsertEntry -ginxlogInsertListPage -ginxlogRecompressDataLeaf -ginxlogSplit -ginxlogUpdateMeta -ginxlogVacuumDataLeafPage -GIST_SPLITVEC -GISTBuildBuffers GistBuildMode -GISTBuildState -GISTDeletedPageContents -GISTENTRY GistEntryVector GistHstoreOptions GistInetKey -GISTInsertStack -GISTInsertState -GISTIntArrayBigOptions -GISTIntArrayOptions -GISTNodeBuffer -GISTNodeBufferPage GistNSN GistOptBufferingMode -GiSTOptions -GISTPageOpaque -GISTPageOpaqueData -GISTPageSplitInfo -GISTScanOpaque -GISTScanOpaqueData -GISTSearchHeapItem -GISTSearchItem GistSortedBuildLevelState GistSplitUnion GistSplitVector -GISTSTATE GistTsVectorOptions -GISTTYPE GistVacState -gistxlogDelete -gistxlogPage -gistxlogPageDelete -gistxlogPageReuse -gistxlogPageSplit -gistxlogPageUpdate +GlobalChannelEntry +GlobalChannelKey GlobalTransaction +GlobalTransactionData GlobalVisHorizonKind GlobalVisState -GMReaderTupleBuffer GrantRoleOptions GrantRoleStmt GrantStmt GrantTargetType +GraphElementPattern +GraphElementPatternKind +GraphLabelRef +GraphPattern +GraphPropertyRef +GraphTableParseState Group +GroupByColInfo GroupByOrdering GroupClause -grouping_sets_data -GroupingFunc -GroupingSet -GroupingSetData -GroupingSetKind -GroupingSetsPath GroupPath GroupPathExtraData GroupProgressTupDescColumns GroupResultPath GroupState GroupVarInfo -growable_trgm_array -gseg_picksplit_item -gss_buffer_desc -gss_cred_id_t -gss_cred_usage_t -gss_ctx_id_t -gss_key_value_element_desc -gss_key_value_set_desc -gss_name_t -gss_OID_set -gtrgm_consistent_cache +GroupingExprInfo +GroupingFunc +GroupingSet +GroupingSetData +GroupingSetKind +GroupingSetsPath GucAction GucBoolAssignHook GucBoolCheckHook GucContext GucEnumAssignHook GucEnumCheckHook -GUCHashEntry GucIntAssignHook GucIntCheckHook GucRealAssignHook @@ -1424,23 +1228,38 @@ GucStack GucStackState GucStringAssignHook GucStringCheckHook -GV -gzFile GzipCompressorState -Hash -HASH_SEQ_STATUS +HANDLE HASHACTION +HASHBUCKET +HASHCTL +HASHELEMENT +HASHHDR +HASHSEGMENT +HASH_SEQ_STATUS +HE +HEntry +HIST_ENTRY +HKEY +HLOCAL +HMAC_CTX +HMODULE +HOldEntry +HRESULT +HSParser +HSpool +HStore +HTAB +HTSV_Result +HV +Hash HashAggBatch HashAggSpill HashAllocFunc -HASHBUCKET HashBuildState +HashBulkDeleteStreamPrivate HashCompareFunc HashCopyFunc -HASHCTL -HASHELEMENT -hashfunc -HASHHDR HashIndexStat HashInstrumentation HashJoin @@ -1460,17 +1279,13 @@ HashScanOpaque HashScanOpaqueData HashScanPosData HashScanPosItem -HASHSEGMENT HashSkewBucket HashState HashValueFunc HbaLine -hbaPort -HE HeadlineJsonState HeadlineParsedText HeadlineWordEntry -heap_page_items_state HeapCheckContext HeapCheckReadStreamData HeapPageFreeze @@ -1484,40 +1299,41 @@ HeapTupleFreeze HeapTupleHeader HeapTupleHeaderData HeapTupleTableSlot -help_handler -HEntry -HIST_ENTRY HistControl -hlCheck -HMAC_CTX -HOldEntry +HostCacheEntry +HostsFileLoadResult +HostsLine HotStandbyState -HSParser -HSpool -HStore -hstoreCheckKeyLen_t -hstoreCheckValLen_t -hstorePairs_t -hstoreUniquePairs_t -hstoreUpgrade_t -HTAB -HTSV_Result -HV -hyperLogLogState I32 ICU_Convert_Func +ID +INFIX +INT128 +INTERFACE_INFO +IO +IOContext +IOFuncSelector +IOObject +IOOp +IOStats +IO_STATUS_BLOCK +IPCompareMethod +ITEM +IV +IdentLine IdentifierLookup IdentifySystemCmd -IdentLine IfStackElem -ifState -import_error_callback_arg -ImportForeignSchema_function ImportForeignSchemaStmt ImportForeignSchemaType +ImportForeignSchema_function +ImportForeignStatistics_function ImportQual +InProgressEnt +InProgressIO IncludeWal InclusionOpaque +IncrementVarSublevelsUp_context IncrementalBackupInfo IncrementalSort IncrementalSortExecutionStatus @@ -1525,7 +1341,6 @@ IncrementalSortGroupInfo IncrementalSortInfo IncrementalSortPath IncrementalSortState -IncrementVarSublevelsUp_context Index IndexAMProperty IndexAmRoutine @@ -1541,7 +1356,6 @@ IndexClauseSet IndexDeleteCounts IndexDeletePrefetchState IndexDoCheckCallback -indexed_tlist IndexElem IndexFetchHeapData IndexFetchTableData @@ -1555,6 +1369,7 @@ IndexPath IndexRuntimeKeyInfo IndexScan IndexScanDesc +IndexScanDescData IndexScanInstrumentation IndexScanState IndexStateFlagsAction @@ -1564,100 +1379,64 @@ IndexTupleData IndexUniqueCheck IndexVacuumInfo IndxInfo -inet -inet_struct -inetKEY InferClause InferenceElem -INFIX InfoItem InhInfo +InheritableSocket +InitSampleScan_function InitializeDSMForeignScan_function InitializeWorkerForeignScan_function -initRowMethod -InitSampleScan_function +InjIoErrorState InjectionPointCacheEntry InjectionPointCallback InjectionPointCondition InjectionPointConditionType +InjectionPointData InjectionPointEntry -InjectionPointsCtl InjectionPointSharedState -InjIoErrorState -inline_cte_walker_context -inline_error_callback_arg +InjectionPointsCtl InlineCodeBlock -ino_t -InProgressEnt -InProgressIO -inquiry InsertStmt -instr_time Instrumentation -int128 -INT128 Int128AggState -int16 -int16_t -int16KEY -int2vector -int32 -int32_t -int32KEY -int64 -int64_t -int64KEY -int8 -int8_t Int8TransTypeData +IntRBTreeNode Integer IntegerSet InternalDefaultACL InternalGrant -internalPQconninfoOption Interval IntervalAggState IntoClause -intptr_t -IntRBTreeNode -intset_internal_node -intset_leaf_node -intset_node -intvKEY +InvalMessageArray InvalidationInfo InvalidationMsgsGroup -InvalMessageArray -IO -io_callback_fn -io_stat_col -IOContext -IOFuncSelector IoMethodOps -IOObject -IOOp IpcMemoryId IpcMemoryKey IpcMemoryState -IPCompareMethod +IpcSemaphoreId +IpcSemaphoreKey IsForeignPathAsyncCapable_function IsForeignRelUpdatable_function IsForeignScanParallelSafe_function +IsoConnInfo IspellDict Item -ITEM ItemArray ItemId -itemIdCompact -itemIdCompactData ItemIdData ItemPointer ItemPointerData IterateDirectModify_function IterateForeignScan_function IterateJsonStringValuesState -IV JEntry JHashState +JOBOBJECT_BASIC_LIMIT_INFORMATION +JOBOBJECT_BASIC_UI_RESTRICTIONS +JOBOBJECT_SECURITY_LIMIT_INFORMATION JitContext JitInstrumentation JitProviderCallbacks @@ -1666,7 +1445,6 @@ JitProviderInit JitProviderReleaseContextCB JitProviderResetAfterErrorCB Join -join_search_hook_type JoinCostWorkspace JoinDomain JoinExpr @@ -1677,38 +1455,16 @@ JoinState JoinTreeItem JoinType JsObject -json_aelem_action -json_manifest_error_callback -json_manifest_per_file_callback -json_manifest_per_wal_range_callback -json_manifest_perfile_callback -json_manifest_perwalrange_callback -json_manifest_system_identifier_callback -json_manifest_version_callback -json_ofield_action -json_scalar_action -json_struct_action +JsValue JsonAggConstructor JsonAggState JsonArgument JsonArrayAgg JsonArrayConstructor JsonArrayQueryConstructor -Jsonb -JsonbAggState JsonBaseObjectInfo -JsonbContainer JsonBehavior JsonBehaviorType -JsonbInState -JsonbIterator -JsonbIteratorToken -JsonbIterState -JsonbPair -JsonbParseState -JsonbSubWorkspace -JsonbTypeCategory -JsonbValue JsonConstructorExpr JsonConstructorExprState JsonConstructorType @@ -1790,99 +1546,159 @@ JsonValueList JsonValueListIterator JsonValueType JsonWrapper -JsValue +Jsonb +JsonbAggState +JsonbContainer +JsonbInState +JsonbIterState +JsonbIterator +JsonbIteratorToken +JsonbPair +JsonbParseState +JsonbSubWorkspace +JsonbTypeCategory +JsonbValue JumbleState JunkFilter KAXCompressReason -keepwal_entry -keepwal_hash -key_t KeyAction KeyActions KeyArray -keyEntryData KeySuffix KeyWord -LabelProvider -LagTracker -LargeObjectDesc -Latch -LauncherLastStartTimesEntry -lclContext -lclTocEntry +LARGE_INTEGER LDAP -LDAP_TIMEVAL LDAPMessage LDAPURLDesc -leaf_item -leafSegmentInfo -LerpFunc -LexDescr -LexemeEntry -LexemeHashKey -LexemeInfo -LexemeKey -LexizeData -libpq_gettext_func -libpq_source -LibraryInfo -Limit -LimitOption -LimitPath +LDAP_TIMEVAL +LINE +LLVMAttributeRef +LLVMBasicBlockRef +LLVMBuilderRef +LLVMContextRef +LLVMErrorRef +LLVMIntPredicate +LLVMJITEventListenerRef +LLVMJitContext +LLVMJitHandle +LLVMMemoryBufferRef +LLVMModuleRef +LLVMOrcCLookupSet +LLVMOrcCSymbolMapPair +LLVMOrcCSymbolMapPairs +LLVMOrcDefinitionGeneratorRef +LLVMOrcExecutionSessionRef +LLVMOrcJITDylibLookupFlags +LLVMOrcJITDylibRef +LLVMOrcJITTargetAddress +LLVMOrcJITTargetMachineBuilderRef +LLVMOrcLLJITBuilderRef +LLVMOrcLLJITRef +LLVMOrcLookupKind +LLVMOrcLookupStateRef +LLVMOrcMaterializationUnitRef +LLVMOrcObjectLayerRef +LLVMOrcResourceTrackerRef +LLVMOrcSymbolStringPoolRef +LLVMOrcThreadSafeContextRef +LLVMOrcThreadSafeModuleRef +LLVMPassBuilderOptionsRef +LLVMPassManagerBuilderRef +LLVMPassManagerRef +LLVMTargetMachineRef +LLVMTargetRef +LLVMTypeRef +LLVMValueRef +LOCALLOCK +LOCALLOCKOWNER +LOCALLOCKTAG +LOCALPREDICATELOCK +LOCK +LOCKMASK +LOCKMETHODID +LOCKMODE +LOCKTAG +LONG +LONG_PTR +LOOP +LPARAM +LPBYTE +LPCWSTR +LPSERVICE_STATUS +LPSTR +LPTHREAD_START_ROUTINE +LPTSTR +LPVOID +LPWSTR +LSEG +LUID +LVPagePruneState +LVRelState +LVSavedErrInfo +LWLock +LWLockHandle +LWLockMode +LWLockPadded +LWLockTrancheShmemData +LZ4F_compressionContext_t +LZ4F_decompressOptions_t +LZ4F_decompressionContext_t +LZ4F_errorCode_t +LZ4F_preferences_t +LZ4State +LabelProvider +LagTracker +LargeObjectDesc +Latch +LauncherLastStartTimesEntry +LerpFunc +LexDescr +LexemeEntry +LexemeHashKey +LexemeInfo +LexemeKey +LexizeData +LibraryInfo +Limit +LimitOption +LimitPath LimitState LimitStateCond -LINE -line_t List -list_sort_comparator ListCell ListDictionary +ListParsedLex ListenAction ListenActionKind ListenStmt -ListParsedLex +ListenerEntry +LoInfo LoadStmt -loc_chunk -local_relopt -local_relopts -local_source -local_ts_iter -local_ts_radix_tree LocalBufferLookupEnt -locale_t -LOCALLOCK -LOCALLOCKOWNER -LOCALLOCKTAG LocalPgBackendStatus -LOCALPREDICATELOCK LocalTransactionId -locate_agg_of_level_context -locate_var_of_level_context -locate_windowfunc_context +Location LocationIndex LocationLen -LOCK LockAcquireResult LockClauseStrength LockData LockInfoData -LockingClause LockInstanceData -LOCKMASK LockMethod LockMethodData -LOCKMETHODID -LOCKMODE LockRelId LockRows LockRowsPath LockRowsState LockStmt -LOCKTAG LockTagType LockTupleMode LockViewRecurse_context LockWaitPolicy +LockingClause +LogOpts +LogStmtLevel LogicalDecodeBeginCB LogicalDecodeBeginPrepareCB LogicalDecodeChangeCB @@ -1905,6 +1721,7 @@ LogicalDecodeStreamStopCB LogicalDecodeStreamTruncateCB LogicalDecodeTruncateCB LogicalDecodingContext +LogicalDecodingCtlData LogicalErrorCallbackState LogicalOutputPluginInit LogicalOutputPluginWriterPrepareWrite @@ -1917,10 +1734,11 @@ LogicalRepCtxStruct LogicalRepMsgType LogicalRepPartMapEntry LogicalRepPreparedTxnData -LogicalRepRelation LogicalRepRelId LogicalRepRelMapEntry +LogicalRepRelation LogicalRepRollbackPreparedTxnData +LogicalRepSequenceInfo LogicalRepStreamAbortData LogicalRepTupleData LogicalRepTyp @@ -1931,70 +1749,37 @@ LogicalSlotInfo LogicalSlotInfoArr LogicalTape LogicalTapeSet -LogOpts -LogStmtLevel -logstreamer_param -LoInfo -LOOP -lquery -lquery_level -lquery_variant -LSEG +LookupSet LsnReadQueue LsnReadQueueNextFun LsnReadQueueNextStatus -ltree -ltree_gist -ltree_level LtreeGistOptions LtreeSignature -ltxtquery -LVPagePruneState -LVRelState -LVSavedErrInfo -LWLock -LWLockHandle -LWLockMode -LWLockPadded -LZ4F_compressionContext_t -LZ4F_decompressionContext_t -LZ4F_decompressOptions_t -LZ4F_errorCode_t -LZ4F_preferences_t -LZ4State -mac8KEY -macaddr -macaddr_sortsupport_state -macaddr8 -macKEY MAGIC -manifest_data -manifest_file -manifest_files_hash -manifest_files_iterator -manifest_wal_range -manifest_writer +MBuf +MCVHashContext +MCVHashEntry +MCVHashTable_hash +MCVItem +MCVList +MEMORY_BASIC_INFORMATION +MGVTBL +MINIDUMPWRITEDUMP +MINIDUMP_TYPE +MJEvalResult +MTTargetRelLookup +MVDependencies +MVDependency +MVNDistinct +MVNDistinctItem ManyTestResource ManyTestResourceKind -map_variable_attnos_context Material MaterialPath MaterialState -max_parallel_hazard_context -mb2wchar_with_len_converter -mbchar_verifier -mbcharacter_incrementer -mbdisplaylen_converter -mblen_converter -mbstr_verifier -MBuf -MCVItem -MCVList -MdfdVec MdPathStr +MdfdVec Memoize -memoize_hash -memoize_iterator MemoizeEntry MemoizeInstrumentation MemoizeKey @@ -2026,110 +1811,104 @@ MergeStmt MergeSupportFunc MergeWhenClause MetaCommand -metastring -MGVTBL -MinimalTuple -MinimalTupleData -MinimalTupleTableSlot MinMaxAggInfo MinMaxAggPath MinMaxExpr -MinmaxMultiOpaque MinMaxMultiOptions MinMaxOp +MinimalTuple +MinimalTupleData +MinimalTupleTableSlot +MinmaxMultiOpaque MinmaxOpaque -missing_cache_key -mix_data_t -mixedStruct -MJEvalResult -mode_t ModifyTable ModifyTableContext ModifyTablePath ModifyTableState MonotonicFunction MorphOpaque -movedb_failure_params MsgType -MTTargetRelLookup MultiAssignRef -multirange_bsearch_comparison -multirange_unnest_fctx -MultirangeIOData -MultirangeParseState -MultirangeType MultiSortSupport MultiSortSupportData MultiXactId MultiXactMember +MultiXactMemberSlruReadContext MultiXactOffset +MultiXactOffset32 MultiXactStateData MultiXactStatus -MVDependencies -MVDependency -MVNDistinct -MVNDistinctItem -mxact -mXactCacheEnt -mxtruncinfo +MultirangeIOData +MultirangeParseState +MultirangeType +NDBOX +NDistinctParseState +NDistinctSemanticState +NLSVERSIONINFOEX +NODE +NTSTATUS +NUMCacheEntry +NUMDesc +NUMProc +NV Name -NamedArgExpr NameData +NameHashEntry +NamedArgExpr +NamedDSAState +NamedDSHState +NamedDSMState NamedLWLockTranche NamedLWLockTrancheRequest NamedTuplestoreScan NamedTuplestoreScanState -NameHashEntry NamespaceInfo -NDBOX -needs_fmgr_hook_type NestLoop NestLoopParam NestLoopState NestPath -network_sortsupport_state NewColumnValue NewConstraint NextSampleBlock_function NextSampleTuple_function NextValueExpr -nl_item Node -NODE +NodeInstrumentation NodeInterfaceTuple -nodeitem NodeTag NodeTuple NonEmptyRange -normal_rand_fctx +NoneCompressorState +NotNullSource Notification NotificationHash NotificationList NotifyStmt -nsphash_hash +NotnullHashEntry Nsrt -ntile_context -NullableDatum +NtDllRoutine +NtFlushBuffersFileEx_t NullIfExpr -nullingrel_info -NullingRelsMatch NullTest NullTestType -NUMCacheEntry -NUMDesc -numeric +NullableDatum +NullingRelsMatch Numeric NumericAggState NumericDigit NumericSortSupport NumericSumAccum NumericVar -NUMProc -NV OAuthValidatorCallbacks OAuthValidatorModuleInit -object_access_hook_type -object_access_hook_type_str +OM_uint32 +OP +OSAPerGroupState +OSAPerQueryState +OSInfo +OSSLCipher +OSSLDigest +OVERLAPPED ObjectAccessDrop ObjectAccessNamespaceSearch ObjectAccessPostAlter @@ -2137,95 +1916,293 @@ ObjectAccessPostCreate ObjectAccessType ObjectAddress ObjectAddressAndFlags -ObjectAddresses ObjectAddressExtra ObjectAddressStack +ObjectAddresses ObjectClass ObjectPropertyType ObjectType ObjectWithArgs -off_t Offset OffsetNumber OffsetVarNodes_context Oid -oidKEY +Oid8 OidOptions -oidvector OkeysState +OldMultiXactReader OldSnapshotControlData OldSnapshotTimeMapping OldToNewMapping OldToNewMappingData -OM_uint32 -on_dsm_detach_callback -on_exit_nicely_callback OnCommitAction OnCommitItem OnConflictAction +OnConflictActionState OnConflictClause OnConflictExpr OnConflictSetState -OP OpBtreeInterpretation OpClassCacheEnt -OpclassInfo -openssl_tls_init_hook_typ -Operator -OperatorElement OpExpr -OpfamilyInfo OpFamilyMember OpFamilyOpFuncGroup OpIndexInterpretation +OpclassInfo +Operator +OperatorElement +OpfamilyInfo OprCacheEntry OprCacheKey OprInfo OprProofCacheEntry OprProofCacheKey OrArgIndexMatch -OSAPerGroupState -OSAPerQueryState -OSInfo -ossl_EVP_cipher_func -OSSLCipher -OSSLDigest OuterJoinClauseInfo -output_type OutputPluginCallbacks OutputPluginOptions OutputPluginOutputType OutputPluginParam OutputPluginParamKey -overexplain_options OverrideSearchPath OverrideStackEntry OverridingKind -Page -PageData -PageGistNSN -PageHeader -PageHeaderData -pagetable_hash -pagetable_iterator -PagetableEntry -PageXLogRecPtr -pairingheap -pairingheap_comparator -pairingheap_node -Pairs -pam_handle_t -parallel_worker_main_type -ParallelAppendState -ParallelApplyWorkerEntry -ParallelApplyWorkerInfo -ParallelApplyWorkerShared -ParallelBitmapHeapState -ParallelBlockTableScanDesc -ParallelBlockTableScanWorker -ParallelBlockTableScanWorkerData -ParallelCompletionPtr -ParallelContext +PACE_HEADER +PACL +PATH +PCtxtHandle +PERL_CONTEXT +PERL_SI +PFN +PGAlignedBlock +PGAlignedXLogBlock +PGAsyncStatusType +PGCALL2 +PGCRYPTO_SHA_t +PGChecksummablePage +PGContextVisibility +PGEvent +PGEventConnDestroy +PGEventConnReset +PGEventId +PGEventProc +PGEventRegister +PGEventResultCopy +PGEventResultCreate +PGEventResultDestroy +PGFInfoFunction +PGFileType +PGFunction +PGIOAlignedBlock +PGLZ_HistEntry +PGLZ_Strategy +PGLoadBalanceType +PGMessageField +PGModuleMagicFunction +PGNoticeHooks +PGOutputData +PGOutputTxnData +PGPROC +PGP_CFB +PGP_Context +PGP_MPI +PGP_PubKey +PGP_S2K +PGPing +PGQueryClass +PGRUsage +PGSemaphore +PGSemaphoreData +PGShmemHeader +PGTargetServerType +PGTernaryBool +PGTransactionStatusType +PGVerbosity +PG_Locale_Strategy +PG_Lock_Status +PG_init_t +PGauthData +PGcancel +PGcancelConn +PGcmdQueueEntry +PGconn +PGdataValue +PGlobjfuncs +PGnotify +PGoauthBearerRequest +PGoauthBearerRequestV2 +PGpipelineStatus +PGpromptOAuthDevice +PGresAttDesc +PGresAttValue +PGresParamDesc +PGresult +PGresult_data +PIO_STATUS_BLOCK +PLAINTREE +PLAssignStmt +PLcword +PLpgSQL_case_when +PLpgSQL_condition +PLpgSQL_datum +PLpgSQL_datum_type +PLpgSQL_diag_item +PLpgSQL_exception +PLpgSQL_exception_block +PLpgSQL_execstate +PLpgSQL_expr +PLpgSQL_func_hashkey +PLpgSQL_function +PLpgSQL_getdiag_kind +PLpgSQL_if_elsif +PLpgSQL_label_type +PLpgSQL_nsitem +PLpgSQL_nsitem_type +PLpgSQL_plugin +PLpgSQL_promise_type +PLpgSQL_raise_option +PLpgSQL_raise_option_type +PLpgSQL_rec +PLpgSQL_recfield +PLpgSQL_resolve_option +PLpgSQL_row +PLpgSQL_rwopt +PLpgSQL_stmt +PLpgSQL_stmt_assert +PLpgSQL_stmt_assign +PLpgSQL_stmt_block +PLpgSQL_stmt_call +PLpgSQL_stmt_case +PLpgSQL_stmt_close +PLpgSQL_stmt_commit +PLpgSQL_stmt_dynexecute +PLpgSQL_stmt_dynfors +PLpgSQL_stmt_execsql +PLpgSQL_stmt_exit +PLpgSQL_stmt_fetch +PLpgSQL_stmt_forc +PLpgSQL_stmt_foreach_a +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_rollback +PLpgSQL_stmt_type +PLpgSQL_stmt_while +PLpgSQL_trigtype +PLpgSQL_type +PLpgSQL_type_type +PLpgSQL_var +PLpgSQL_variable +PLwdatum +PLword +PLyArrayToOb +PLyCursorObject +PLyDatumToOb +PLyDatumToObFunc +PLyExceptionEntry +PLyExecutionContext +PLyObToArray +PLyObToDatum +PLyObToDatumFunc +PLyObToDomain +PLyObToScalar +PLyObToTransform +PLyObToTuple +PLyObject_AsString_t +PLyPlanObject +PLyProcedure +PLyProcedureCache +PLyProcedureEntry +PLyProcedureKey +PLyResultObject +PLySRFState +PLySavedArgs +PLyScalarToOb +PLySubtransactionData +PLySubtransactionObject +PLyTransformToOb +PLyTrigType +PLyTupleToOb +PLyUnicode_FromStringAndSize_t +PLy_elog_impl_t +PMChild +PMChildPool +PMINIDUMP_CALLBACK_INFORMATION +PMINIDUMP_EXCEPTION_INFORMATION +PMINIDUMP_USER_STREAM_INFORMATION +PMSignalData +PMSignalReason +PMState +POLYGON +PQArgBlock +PQEnvironmentOption +PQExpBuffer +PQExpBufferData +PQauthDataHook_type +PQcommMethods +PQconninfoOption +PQnoticeProcessor +PQnoticeReceiver +PQprintOpt +PQsslKeyPassHook_OpenSSL_type +PREDICATELOCK +PREDICATELOCKTAG +PREDICATELOCKTARGET +PREDICATELOCKTARGETTAG +PROCESS_INFORMATION +PROCLOCK +PROCLOCKTAG +PROC_HDR +PSID +PSQL_COMP_CASE +PSQL_ECHO +PSQL_ECHO_HIDDEN +PSQL_ERROR_ROLLBACK +PSQL_SEND_MODE +PTEntryArray +PTIterationArray +PTOKEN_PRIVILEGES +PTOKEN_USER +PUTENVPROC +PVIndStats +PVIndVacStatus +PVOID +PVShared +PVSharedCostParams +PVWorkerStats +PVWorkerUsage +PX_Alias +PX_Cipher +PX_Combo +PX_HMAC +PX_MD +Page +PageData +PageGistNSN +PageHeader +PageHeaderData +PageXLogRecPtr +PagetableEntry +Pairs +ParallelAppendState +ParallelApplyWorkerEntry +ParallelApplyWorkerInfo +ParallelApplyWorkerShared +ParallelBitmapHeapState +ParallelBlockTableScanDesc +ParallelBlockTableScanWorker +ParallelBlockTableScanWorkerData +ParallelCompletionPtr +ParallelContext ParallelExecutorInfo ParallelHashGrowth ParallelHashJoinBatch @@ -2254,26 +2231,23 @@ ParamPathInfo ParamRef ParamsErrorCbData ParentMapEntry -parse_error_callback_arg ParseCallbackState -ParsedLex -ParsedScript -ParsedText -ParsedWord ParseExprKind ParseLoc ParseNamespaceColumn ParseNamespaceItem ParseParamRefHook -parser_context +ParseState +ParsedLex +ParsedScript +ParsedText +ParsedWord ParserSetupHook ParserState -ParseState PartClauseInfo PartClauseMatchStatus PartClauseTarget PartialFileSetState -partition_method_t PartitionBoundInfo PartitionBoundInfoData PartitionBoundSpec @@ -2281,10 +2255,9 @@ PartitionCmd PartitionDesc PartitionDescData PartitionDirectory +PartitionDirectoryData PartitionDirectoryEntry PartitionDispatch -PartitionedRelPruneInfo -PartitionedRelPruningData PartitionElem PartitionHashBound PartitionKey @@ -2302,114 +2275,49 @@ PartitionRangeBound PartitionRangeDatum PartitionRangeDatumKind PartitionScheme +PartitionSchemeData PartitionSpec PartitionStrategy PartitionTupleRouting +PartitionedRelPruneInfo +PartitionedRelPruningData PartitionwiseAggregateType PasswordType Path -PATH PathClauseUsage PathCostComparison PathHashStack PathKey PathKeysComparison PathTarget -Pattern_Prefix_Status -Pattern_Type PatternInfo PatternInfoArray -pending_label +Pattern_Prefix_Status +Pattern_Type PendingFsyncEntry -pendingPosition +PendingListenAction +PendingListenEntry PendingRelDelete PendingRelSync PendingUnlinkEntry PendingWrite PendingWriteback -PERL_CONTEXT -Perl_ppaddr_t -PERL_SI -PerlInterpreter PerLockTagEntry -PFN -Pg_abi_values -pg_atomic_flag -pg_atomic_uint32 -pg_atomic_uint64 -pg_be_sasl_mech -pg_case_map -pg_category_range -pg_checksum_context -pg_checksum_raw_context -pg_checksum_type -pg_compress_algorithm -pg_compress_specification -pg_conn_host -pg_conn_host_type -pg_conv_map -pg_crc32 -pg_crc32c -pg_cryptohash_ctx -pg_cryptohash_errno -pg_cryptohash_type -pg_ctype_cache -pg_enc -pg_enc2gettext -pg_enc2name -pg_encname -pg_fe_sasl_mech -Pg_finfo_record -pg_funcptr_t -pg_gssinfo -pg_hmac_ctx -pg_hmac_errno -PG_init_t -pg_int64 -pg_local_to_utf_combined -PG_Locale_Strategy -pg_locale_t -PG_Lock_Status -Pg_magic_struct -pg_mb_radix_tree -pg_on_exit_callback -pg_prng_state -pg_re_flags -pg_regex_t -pg_regmatch_t -pg_regoff_t -pg_saslprep_rc -pg_snapshot -pg_special_case -pg_stack_base_t -pg_time_t -pg_time_usec_t -pg_tz -pg_tz_cache -pg_tzenum -pg_unicode_category -pg_unicode_decompinfo -pg_unicode_decomposition -pg_unicode_norminfo -pg_unicode_normprops -pg_unicode_properties -pg_unicode_range -pg_unicode_recompinfo -pg_usec_time_t -pg_utf_to_local_combined -pg_uuid_t -pg_wc_probefunc -pg_wchar -pg_wchar_tbl +PerlInterpreter +Perl_ppaddr_t +Permutation +PermutationStep +PermutationStepBlocker +PermutationStepBlockerType PgAioBackend PgAioCtl PgAioHandle PgAioHandleCallbackComplete PgAioHandleCallbackID PgAioHandleCallbackReport +PgAioHandleCallbackStage PgAioHandleCallbacks PgAioHandleCallbacksEntry -PgAioHandleCallbackStage PgAioHandleFlags PgAioHandleState PgAioOp @@ -2424,13 +2332,10 @@ PgAioUringCaps PgAioUringContext PgAioWaitRef PgAioWorkerControl +PgAioWorkerSet PgAioWorkerSlot PgAioWorkerSubmissionQueue -PGAlignedBlock -PGAlignedXLogBlock PgArchData -PGAsyncStatusType -PGauthData PgBackendGSSStatus PgBackendSSLStatus PgBackendStatus @@ -2441,25 +2346,7 @@ PgBenchExprType PgBenchFunction PgBenchValue PgBenchValueType -PGCALL2 -PGcancel -PGcancelConn -PGChecksummablePage PgChecksumMode -PGcmdQueueEntry -PGconn -PGContextVisibility -PGCRYPTO_SHA_t -PGdataValue -PGEvent -PGEventConnDestroy -PGEventConnReset -PGEventId -PGEventProc -PGEventRegister -PGEventResultCopy -PGEventResultCreate -PGEventResultDestroy PgFdwAnalyzeState PgFdwConnState PgFdwDirectModifyState @@ -2469,50 +2356,26 @@ PgFdwPathExtraData PgFdwRelationInfo PgFdwSamplingMethod PgFdwScanState -PGFileType -PGFInfoFunction -PGFunction PgIfAddrCallback -PGIOAlignedBlock -PGLoadBalanceType -PGlobjfuncs -PGLZ_HistEntry -PGLZ_Strategy -PGMessageField -PGModuleMagicFunction -PGNoticeHooks -PGnotify -PGoauthBearerRequest -PGOutputData -PGOutputTxnData -pgp_armor_headers_state -PGP_CFB -PGP_Context -PGP_MPI -PGP_PubKey -PGP_S2K -pgParameterStatus -PGPing -PGpipelineStatus -PGPROC -PGpromptOAuthDevice -PGQueryClass -PGresAttDesc -PGresAttValue -PGresParamDesc -PGresult -PGresult_data -PGRUsage -PGSemaphore -PGShmemHeader -pgsocket -pgsql_thing_t -pgssEntry -pgssGlobalStats -pgssHashKey -pgssSharedState -pgssStoreKind -pgssVersion +PgStatShared_Archiver +PgStatShared_Backend +PgStatShared_BgWriter +PgStatShared_Checkpointer +PgStatShared_Common +PgStatShared_CustomFixedEntry +PgStatShared_CustomVarEntry +PgStatShared_Database +PgStatShared_Function +PgStatShared_HashEntry +PgStatShared_IO +PgStatShared_InjectionPoint +PgStatShared_InjectionPointFixed +PgStatShared_Lock +PgStatShared_Relation +PgStatShared_ReplSlot +PgStatShared_SLRU +PgStatShared_Subscription +PgStatShared_Wal PgStat_ArchiverStats PgStat_Backend PgStat_BackendPending @@ -2521,8 +2384,6 @@ PgStat_BgWriterStats PgStat_BktypeIO PgStat_CheckpointerStats PgStat_Counter -pgstat_entry_ref_hash_hash -pgstat_entry_ref_hash_iterator PgStat_EntryRef PgStat_EntryRefHashEntry PgStat_FetchConsistency @@ -2533,15 +2394,18 @@ PgStat_IO PgStat_Kind PgStat_KindInfo PgStat_LocalState -pgstat_page +PgStat_Lock +PgStat_LockEntry PgStat_PendingDroppedStatsItem PgStat_PendingIO +PgStat_PendingLock PgStat_PendingWalStats -PgStat_ShmemControl PgStat_SLRUStats +PgStat_ShmemControl PgStat_Snapshot -pgstat_snapshot_hash PgStat_SnapshotEntry +PgStat_StatCustomFixedEntry +PgStat_StatCustomVarEntry PgStat_StatDBEntry PgStat_StatFuncEntry PgStat_StatInjEntry @@ -2549,177 +2413,36 @@ PgStat_StatInjFixedEntry PgStat_StatReplSlotEntry PgStat_StatSubEntry PgStat_StatTabEntry +PgStat_StatsFileOp PgStat_SubXactStatus PgStat_TableCounts PgStat_TableStatus PgStat_TableXactStatus PgStat_WalCounters PgStat_WalStats -PgStatShared_Archiver -PgStatShared_Backend -PgStatShared_BgWriter -PgStatShared_Checkpointer -PgStatShared_Common -PgStatShared_Database -PgStatShared_Function -PgStatShared_HashEntry -PgStatShared_InjectionPoint -PgStatShared_InjectionPointFixed -PgStatShared_IO -PgStatShared_Relation -PgStatShared_ReplSlot -PgStatShared_SLRU -PgStatShared_Subscription -PgStatShared_Wal -pgstattuple_type -PGTargetServerType -PGTernaryBool -pgthreadlock_t -PGTransactionStatusType -PGVerbosity PgXmlErrorContext PgXmlStrictness -pid_t +Pg_abi_values +Pg_finfo_record +Pg_magic_struct PipeProtoChunk PipeProtoHeader -pivot_field PlaceHolderInfo PlaceHolderVar -PLAINTREE Plan PlanDirectModify_function PlanForeignModify_function PlanInvalItem +PlanRowMark +PlanState PlannedStmt -planner_hook_type +PlannedStmtOrigin PlannerGlobal PlannerInfo PlannerParamItem -PlanRowMark -PlanState -planstate_tree_walker_callback -PLAssignStmt -PLcword -plperl_array_info -plperl_call_data -plperl_interp_desc -plperl_proc_desc -plperl_proc_key -plperl_proc_ptr -plperl_query_desc -plperl_query_entry -PLpgSQL_case_when -plpgsql_CastExprHashEntry -plpgsql_CastHashEntry -plpgsql_CastHashKey -PLpgSQL_condition -PLpgSQL_datum -PLpgSQL_datum_type -PLpgSQL_diag_item -PLpgSQL_exception -PLpgSQL_exception_block -PLpgSQL_execstate -PLpgSQL_expr -plpgsql_expr_walker_callback -PLpgSQL_func_hashkey -PLpgSQL_function -PLpgSQL_getdiag_kind -plpgsql_HashEnt -PLpgSQL_if_elsif -PLpgSQL_label_type -PLpgSQL_nsitem -PLpgSQL_nsitem_type -PLpgSQL_plugin -PLpgSQL_promise_type -PLpgSQL_raise_option -PLpgSQL_raise_option_type -PLpgSQL_rec -PLpgSQL_recfield -PLpgSQL_resolve_option -PLpgSQL_row -PLpgSQL_rwopt -PLpgSQL_stmt -PLpgSQL_stmt_assert -PLpgSQL_stmt_assign -PLpgSQL_stmt_block -PLpgSQL_stmt_call -PLpgSQL_stmt_case -PLpgSQL_stmt_close -PLpgSQL_stmt_commit -PLpgSQL_stmt_dynexecute -PLpgSQL_stmt_dynfors -PLpgSQL_stmt_execsql -PLpgSQL_stmt_exit -PLpgSQL_stmt_fetch -PLpgSQL_stmt_forc -PLpgSQL_stmt_foreach_a -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_rollback -PLpgSQL_stmt_type -plpgsql_stmt_walker_callback -PLpgSQL_stmt_while -PLpgSQL_trigtype -PLpgSQL_type -PLpgSQL_type_type -PLpgSQL_var -PLpgSQL_variable -pltcl_call_state -pltcl_interp_desc -pltcl_proc_desc -pltcl_proc_key -pltcl_proc_ptr -pltcl_query_desc -PLwdatum -PLword -PLy_elog_impl_t -PLyArrayToOb -PLyCursorObject -PLyDatumToOb -PLyDatumToObFunc -PLyExceptionEntry -PLyExecutionContext -PLyObject_AsString_t -PLyObToArray -PLyObToDatum -PLyObToDatumFunc -PLyObToDomain -PLyObToScalar -PLyObToTransform -PLyObToTuple -PLyPlanObject -PLyProcedure -PLyProcedureEntry -PLyProcedureKey -PLyResultObject -PLySavedArgs -PLyScalarToOb -PLySRFState -PLySubtransactionData -PLySubtransactionObject -PLyTransformToOb -PLyTupleToOb -PLyUnicode_FromStringAndSize_t -PMChild -PMChildPool -PMSignalData -PMSignalReason -PMState Point Pointer PolicyInfo -POLYGON -polymorphic_actuals PolyNumAggState Pool PopulateArrayContext @@ -2731,73 +2454,34 @@ Portal PortalHashEnt PortalStatus PortalStrategy -pos_trgm -post_parse_analyze_hook_type -PostgresPollingStatusType -PostingItem PostParseColumnRefHook PostRewriteHook -PQArgBlock -PQauthDataHook_type -pqbool -PQcommMethods -PQconninfoOption -PQEnvironmentOption -PQExpBuffer -PQExpBufferData -PQnoticeProcessor -PQnoticeReceiver -PQprintOpt -pqsigfunc -PQsslKeyPassHook_OpenSSL_type +PostgresPollingStatusType +PostingItem +PreParseColumnRefHook PredClass -PREDICATELOCK -PredicateLockData -PREDICATELOCKTAG -PREDICATELOCKTARGET -PREDICATELOCKTARGETTAG -PredicateLockTargetType PredIterInfo PredIterInfoData PredXactList +PredicateLockData +PredicateLockTargetType PrefetchBufferResult -PreparedStatement -PrepareStmt -PreParseColumnRefHook PrepParallelRestorePtrType +PrepareStmt +PreparedStatement PresortedKeyData PrewarmType PrintExtraTocPtrType +PrintTocDataPtrType PrintfArgType PrintfArgValue PrintfTarget -printQueryOpt -printTableContent -printTableFooter -printTableOpt -printTextFormat -printTextLineFormat -printTextLineWrap -printTextRule -PrintTocDataPtrType PrinttupAttrInfo -printXheaderWidthType -priv_map -PrivateRefCountEntry PrivTarget -PROC_HDR +PrivateRefCountData +PrivateRefCountEntry ProcArrayStruct -process_file_callback_t -process_sublinks_context -ProcessingMode -ProcessUtility_hook_type -ProcessUtilityContext ProcLangInfo -proclist_head -proclist_mutable_iter -proclist_node -PROCLOCK -PROCLOCKTAG ProcNumber ProcSignalBarrierType ProcSignalHeader @@ -2805,91 +2489,70 @@ ProcSignalReason ProcSignalSlot ProcState ProcWaitStatus +ProcessUtilityContext +ProcessUtility_hook_type +ProcessingMode ProgressCommandType -ProjectionInfo -ProjectionPath ProjectSet ProjectSetPath ProjectSetState +ProjectionInfo +ProjectionPath PromptInterruptContext -promptStatus_t +PropGraphEdge +PropGraphLabelAndProperties +PropGraphProperties +PropGraphVertex ProtocolVersion PrsStorage +PruneFreezeParams PruneFreezeResult PruneReason PruneState PruneStepResult -PSQL_COMP_CASE -PSQL_ECHO -PSQL_ECHO_HIDDEN -PSQL_ERROR_ROLLBACK -PSQL_SEND_MODE PsqlScanCallbacks PsqlScanQuoteType PsqlScanResult PsqlScanState PsqlScanStateData +PsqlScanStateSave PsqlSettings -PTEntryArray -pthread_barrier_t -pthread_key_t -pthread_mutex_t -pthread_once_t -pthread_t -PTIterationArray -ptrdiff_t Publication PublicationActions +PublicationAllObjSpec +PublicationAllObjType PublicationDesc PublicationInfo PublicationObjSpec PublicationObjSpecType PublicationPartOpt PublicationRelInfo +PublicationRelKind PublicationSchemaInfo PublicationTable -published_rel PublishGencolsType -pull_var_clause_context -pull_varattnos_context -pull_varnos_context -pull_vars_context PullFilter PullFilterOps -pullup_replace_vars_context -pushdown_safe_type -pushdown_safety_info PushFilter PushFilterOps PushFunction -PVIndStats -PVIndVacStatus -PVShared -PX_Alias -PX_Cipher -PX_Combo -PX_HMAC -PX_MD -Py_ssize_t PyCFunction PyMappingMethods PyMethodDef PyModuleDef PyObject PySequenceMethods +PyTypeObject PyType_Slot PyType_Spec -PyTypeObject -qc_hash_func +Py_ssize_t QPRS_STATE -qsort_arg_comparator -qsort_comparator QTN2QTState QTNode +QUERYTYPE QualCost QualItem Query -query_pathkeys_callback QueryCompletion QueryDesc QueryEnvironment @@ -2902,23 +2565,38 @@ QueryOperator QueryRepresentation QueryRepresentationOperand QuerySource -QUERYTYPE QueueBackendStatus -QueuedMessage QueuePosition QueueTuple +QueuedMessage QuitSignalReason -radius_attribute -radius_packet +RBTNode +RBTOrderControl +RBTree +RBTreeIterator +REPARSE_JUNCTION_DATA_BUFFER +RIX +RI_CompareHashEntry +RI_CompareKey +RI_ConstraintInfo +RI_FastPathEntry +RI_FastPathKey +RI_QueryHashEntry +RI_QueryKey +RTEKind +RTEPermissionInfo +RWConflict +RWConflictData +RWConflictPoolHeader +RadixSortInfo Range RangeBound RangeBox RangeFunction +RangeGraphTable RangeIOData RangeQueryClause -Ranges RangeSubselect -rangeTableEntry_used_context RangeTableFunc RangeTableFuncCol RangeTableSample @@ -2928,21 +2606,15 @@ RangeTblRef RangeType RangeVar RangeVarGetRelidCallback -rank_context +Ranges RawColumnDefault RawParseMode RawStmt -rbt_allocfunc -rbt_combiner -rbt_comparator -rbt_freefunc -RBTNode -RBTOrderControl -RBTree -RBTreeIterator +ReInitializeDSMForeignScan_function +ReScanForeignScan_function +ReadBufPtrType ReadBufferMode ReadBuffersOperation -ReadBufPtrType ReadBytePtrType ReadExtraTocPtrType ReadFunc @@ -2952,10 +2624,12 @@ ReadStream ReadStreamBlockNumberCB ReassignOwnedStmt RecheckForeignScan_function +ReconcileResult RecordCacheArrayEntry RecordCacheEntry RecordCompareData RecordIOData +RecoveryConflictReason RecoveryLockEntry RecoveryLockXidEntry RecoveryPauseState @@ -2967,78 +2641,55 @@ RecursionContext RecursiveUnion RecursiveUnionPath RecursiveUnionState -reduce_outer_joins_partial_state -reduce_outer_joins_pass1_state -reduce_outer_joins_pass2_state RefetchForeignRow_function RefreshMatViewStmt -regex_arc_t -regexp -regexp_matches_ctx +RegProcedure Regis RegisNode -registered_buffer RegisteredBgWorker -regproc -RegProcedure ReindexErrorInfo ReindexIndexInfo ReindexObjectType ReindexParams ReindexStmt ReindexType -ReInitializeDSMForeignScan_function -RelabelType -Relation -RelationData -RelationInfo -RelationPtr -RelationSyncEntry -RelcacheCallbackFunction -ReleaseMatchCB +RelAggInfo RelFileLocator RelFileLocatorBackend RelFileNumber -RelfilenumberMapEntry -RelfilenumberMapKey RelIdCacheEnt -Relids RelIdToTypeIdCacheEntry RelInfo RelInfoArr RelMapFile RelMapping -RelocationBufferInfo -relopt_bool -relopt_enum -relopt_enum_elt_def -relopt_gen -relopt_int -relopt_kind -relopt_parse_elt -relopt_real -relopt_string -relopt_type -relopt_value RelOptInfo RelOptKind -relopts_validator RelPathStr -RelptrFreePageBtree -RelptrFreePageManager -RelptrFreePageSpanLeader RelStatsInfo RelSyncCallbackFunction RelToCheck RelToCluster -remoteConn -remoteConnHashEnt -remoteDep +RelabelType +Relation +RelationData +RelationInfo +RelationPtr +RelationSyncEntry +RelcacheCallbackFunction +ReleaseMatchCB +RelfilenumberMapEntry +RelfilenumberMapKey +Relids +RelocationBufferInfo +RelptrFreePageBtree +RelptrFreePageManager +RelptrFreePageSpanLeader +RemoteAttributeMapping RemoteSlot +RemoteStatsResults RemoteSyncPosition -remove_nulling_relids_context RenameStmt -rendezvousHashEntry ReopenPtrType ReorderBuffer ReorderBufferApplyChangeCB @@ -3062,17 +2713,24 @@ ReorderBufferStreamPrepareCB ReorderBufferStreamStartCB ReorderBufferStreamStopCB ReorderBufferStreamTruncateCB +ReorderBufferTXN +ReorderBufferTXNByIdEnt ReorderBufferToastEnt ReorderBufferTupleBuf ReorderBufferTupleCidEnt ReorderBufferTupleCidKey -ReorderBufferTXN -ReorderBufferTXNByIdEnt ReorderBufferUpdateProgressTxnCB ReorderTuple +RepOriginId +RepSetSeqTuple +RepSetTableTuple +RepSetTuple +RepackCommand +RepackDecodingState +RepackStmt ReparameterizeForeignPathByChild_function -replace_rte_variables_callback -replace_rte_variables_context +ReplOriginId +ReplOriginXactState ReplaceVarsFromTargetList_context ReplaceVarsNoMatchOption ReplaceWrapOption @@ -3087,12 +2745,9 @@ ReplicationSlotPersistentData ReplicationState ReplicationStateCtl ReplicationStateOnDisk -RepOriginId -report_error_fn -RepSetSeqTuple -RepSetTableTuple -RepSetTuple -ReScanForeignScan_function +ResTarget +ReservedObjectKind +ReservedObjectPurpose ReservoirState ReservoirStateData ResourceArray @@ -3103,48 +2758,39 @@ ResourceReleaseCallback ResourceReleaseCallbackItem ResourceReleasePhase ResourceReleasePriority -ResTarget RestoreOptions RestorePass RestrictInfo Result ResultRelInfo ResultState +ResultType +RetainDeadTuplesData +RetainDeadTuplesPhase +RetrievedObject +RetrievedObjects +ReturnSetInfo +ReturnStmt ReturningClause ReturningExpr ReturningOption ReturningOptionKind -ReturnSetInfo -ReturnStmt RevmapContents RevokeRoleGrantAction -rewind_source -rewrite_event RewriteMappingDataEntry RewriteMappingFile RewriteRule RewriteState -rf_context -rfile -RI_CompareHashEntry -RI_CompareKey -RI_ConstraintInfo -RI_QueryHashEntry -RI_QueryKey -RIX -rm_detail_t +RewriteStateData RmgrData RmgrDescData RmgrId -role_auth_extra -rolename_hash RoleNameEntry RoleNameItem RoleSpec RoleSpecType RoleStmtType RollupData -row_security_policy_hook_type RowCompareExpr RowCompareType RowExpr @@ -3153,27 +2799,68 @@ RowMarkClause RowMarkType RowSecurityDesc RowSecurityPolicy -rsv_callback -rt_iter -rt_node_class_test_elem -rt_radix_tree -RTEKind -RTEPermissionInfo +RtlGetLastNtStatus_t +RtlNtStatusToDosError_t RuleInfo RuleLock RuleStmt +RunMode RunningTransactions RunningTransactionsData -RWConflict -RWConflictData -RWConflictPoolHeader +SASLStatus +SC_HANDLE +SECURITY_ATTRIBUTES +SECURITY_STATUS +SEG +SERIALIZABLEXACT +SERIALIZABLEXID +SERIALIZABLEXIDTAG +SERVICE_STATUS +SERVICE_STATUS_HANDLE +SERVICE_TABLE_ENTRY +SID_AND_ATTRIBUTES +SID_IDENTIFIER_AUTHORITY +SID_NAME_USE +SISeg +SIZE_T +SMgrRelation +SMgrRelationData +SMgrSortArray +SN_local +SOCKADDR +SOCKET +SPELL +SPICallbackArg +SPIExecuteOptions +SPIParseOpenOptions +SPIPlanPtr +SPIPrepareOptions +SPITupleTable +SPKFlushPosition +SPKRelMetaCacheEntry +SPLITCOST +SPNode +SPNodeData +SPPageDesc +SQLDropObject +SQLFunctionCache +SQLFunctionCachePtr +SQLFunctionHashEntry +SQLFunctionParseInfo +SQLFunctionParseInfoPtr +SQLValueFunction +SQLValueFunctionOp +SSL +SSLExtensionInfoContext +SSL_CTX +STARTUPINFO +STRLEN +SV +SYNCHRONIZATION_BARRIER +SYSTEM_INFO SampleScan SampleScanGetSampleSize_function SampleScanState -saophash_hash -SASLStatus -save_buffer -save_locale_t SavedTransactionCharacteristics ScalarArrayOpExpr ScalarArrayOpExprHashEntry @@ -3187,80 +2874,69 @@ ScanKey ScanKeyData ScanKeywordHashFunc ScanKeywordList -ScannerCallbackState ScanState ScanTypeControl +ScannerCallbackState SchemaQuery -scram_state -scram_state_enum -script_error_callback_arg SearchPathCacheEntry SearchPathCacheKey SearchPathMatcher +SecBuffer +SecBufferDesc SecLabelItem SecLabelStmt -security_class_t SeenRelsEntry -SEG -Selectivity SelectLimit SelectStmt +SelectStmtPassthrough +Selectivity SelfJoinCandidate -sem_t -SemiAntiJoinFactors SemTPadded -sepgsql_context_info_t +SemiAntiJoinFactors SeqScan +SeqScanInstrumentation SeqScanState SeqStateTuple SeqTable SeqTableData SeqType -sequence_magic SequenceItem SerCommitSeqNo SerialControl SerialIOData -SERIALIZABLEXACT SerializableXactHandle -SERIALIZABLEXID -SERIALIZABLEXIDTAG +SerializeDestReceiver +SerializeMetrics SerializedActiveRelMaps SerializedClientConnectionInfo -SerializeDestReceiver SerializedRanges SerializedReindexState SerializedSnapshotData SerializedTransactionState -SerializeMetrics Session SessionBackupState SessionEndType -set_conn_altsock_func -set_conn_oauth_token_func -set_join_pathlist_hook_type -set_rel_pathlist_hook_type SetConstraintState SetConstraintStateData SetConstraintTriggerData SetExprState SetFunctionReturnMode +SetHintBitsState SetOp SetOpCmd -SetOperation -SetOperationStmt SetOpPath SetOpState SetOpStatePerGroup SetOpStatePerGroupData SetOpStatePerInput SetOpStrategy +SetOperation +SetOperationStmt SetQuantifier SetToDefault -SetupWorkerPtrType SetVarReturningType_context -shared_ts_iter -shared_ts_radix_tree +SetupWorkerPtrType +ShDependObjectInfo SharedAggInfo SharedBitmapHeapInstrumentation SharedBitmapState @@ -3273,47 +2949,43 @@ SharedIncrementalSortInfo SharedIndexScanInstrumentation SharedInvalCatalogMsg SharedInvalCatcacheMsg -SharedInvalidationMessage +SharedInvalRelSyncMsg SharedInvalRelcacheMsg SharedInvalRelmapMsg -SharedInvalRelSyncMsg SharedInvalSmgrMsg SharedInvalSnapshotMsg +SharedInvalidationMessage SharedJitInstrumentation SharedMemoizeInfo SharedRecordTableEntry SharedRecordTableKey SharedRecordTypmodRegistry -Sharedsort +SharedSeqScanInstrumentation SharedSortInfo +SharedTidRangeScanInstrumentation SharedTuplestore SharedTuplestoreAccessor SharedTuplestoreChunk SharedTuplestoreParticipant SharedTypmodTableEntry -ShDependObjectInfo +Sharedsort ShellTypeInfo ShippableCacheEntry ShippableCacheKey -shm_mq -shm_mq_handle -shm_mq_iovec -shm_mq_result -shm_toc -shm_toc_entry -shm_toc_estimator -shmem_request_hook_type -shmem_startup_hook_type +ShmemAllocatorData +ShmemAttachCallback +ShmemCallbacks +ShmemHashOpts ShmemIndexEnt +ShmemInitCallback +ShmemRequest +ShmemRequestCallback +ShmemRequestKind +ShmemStructOpts ShutdownForeignScan_function ShutdownInformation ShutdownMode -sig_atomic_t -sigjmp_buf -signal_worker_item -signedbitmapword SignTSVector -sigset_t SimpleActionList SimpleActionListCell SimpleEcontextStackEntry @@ -3325,36 +2997,30 @@ SimpleStats SimpleStringList SimpleStringListCell SingleBoundSortItem -SinglePartitionSpec -SISeg Size -size_t SkipPages SkipSupport +SkipSupportData SkipSupportIncDec SlabBlock SlabContext SlabSlot -slist_head -slist_iter -slist_mutable_iter -slist_node -slock_t SlotInvalidationCauseMap SlotNumber SlotSyncCtxStruct +SlotSyncSkipReason SlruCtl SlruCtlData +SlruDesc SlruErrorCause +SlruOpts SlruPageStatus SlruScanCallback +SlruSegState SlruShared SlruSharedData SlruWriteAll SlruWriteAllData -SMgrRelation -SMgrRelationData -SMgrSortArray SnapBuild SnapBuildOnDisk SnapBuildState @@ -3362,14 +3028,12 @@ Snapshot SnapshotData SnapshotType SockAddr -socket_set -socklen_t Sort SortBy SortByDir SortByNulls SortCoordinate -SortedPoint +SortCoordinateData SortGroupClause SortItem SortPath @@ -3379,26 +3043,17 @@ SortSupport SortSupportData SortTuple SortTupleComparator -SpecialJoinInfo -SPELL -spgBulkDeleteState -spgChooseIn -spgChooseOut -spgChooseResultType -spgConfigIn -spgConfigOut -spgInnerConsistentIn -spgInnerConsistentOut +SortedPoint SpGistBuildState SpGistCache SpGistDeadTuple SpGistDeadTupleData SpGistInnerTuple SpGistInnerTupleData +SpGistLUPCache SpGistLastUsedPage SpGistLeafTuple SpGistLeafTupleData -SpGistLUPCache SpGistMetaPageData SpGistNodeTuple SpGistNodeTupleData @@ -3410,48 +3065,20 @@ SpGistScanOpaqueData SpGistSearchItem SpGistState SpGistTypeDesc -spgLeafConsistentIn -spgLeafConsistentOut -spgNodePtr -spgPickSplitIn -spgPickSplitOut -spgVacPendingItem -spgxlogAddLeaf -spgxlogAddNode -spgxlogMoveLeafs -spgxlogPickSplit -spgxlogSplitTuple -spgxlogState -spgxlogVacuumLeaf -spgxlogVacuumRedirect -spgxlogVacuumRoot -SPICallbackArg -SPIExecuteOptions +SpecialJoinInfo SpinDelayStatus -SPIParseOpenOptions -SPIPlanPtr -SPIPrepareOptions -SPITupleTable -SPKFlushPosition -SPKRelMetaCacheEntry -split_pathtarget_context -split_pathtarget_item -SPLITCOST -SplitedPageLayout SplitInterval SplitLR SplitPageLayout SplitPoint SplitTextOutputData SplitVar -SPNode -SPNodeData -Spock_Stat_PendingSubEntry -Spock_Stat_StatSubEntry -Spock_Stat_Subscription +SplitedPageLayout +SpockApplyChangeLogging SpockApplyProgress SpockApplyWorker SpockConflictResolution +SpockConflictType SpockContext SpockExceptionBehaviour SpockExceptionLog @@ -3460,6 +3087,7 @@ SpockGroupEntry SpockGroupKey SpockInterface SpockLocalNode +SpockLogVerbosity SpockNode SpockOutputData SpockOutputParamType @@ -3472,9 +3100,9 @@ SpockRemoteRel SpockRepSet SpockResFileHeader SpockResolveOption -spockStatsEntry -spockStatsKey -spockStatsType +SpockResourceDumpEvent +SpockResourceDumpRec +SpockSaveOriginConflictOption SpockSubscription SpockSyncEventMessage SpockSyncStatus @@ -3484,35 +3112,23 @@ SpockTupleData SpockWalMessage SpockWalMessageSimple SpockWorker -SPPageDesc -sql_error_callback_arg -SQLDropObject -SQLFunctionCache -SQLFunctionCachePtr -SQLFunctionHashEntry -SQLFunctionParseInfo -SQLFunctionParseInfoPtr -sqlparseInfo -sqlparseState -SQLValueFunction -SQLValueFunctionOp -ss_lru_item_t -ss_scan_location_t -ss_scan_locations_t -ssize_t -SSL -SSL_CTX -SSLExtensionInfoContext +SpockWorkerStatus +SpockWorkerType +Spock_Stat_PendingSubEntry +Spock_Stat_StatSubEntry +Spock_Stat_Subscription StackElem -standard_qp_extra +StakindFlags +StartBufferIOResult StartDataPtrType StartLOPtrType StartLOsPtrType StartReplicationCmd StartupStatusEnum -StateFileChunk +StatApproxReadStreamPrivate StatEntry StatExtEntry +StateFileChunk StatisticExtInfo StatsBuildData StatsData @@ -3521,80 +3137,133 @@ StatsExtInfo StdAnalyzeData StdRdOptIndexCleanup StdRdOptions -stemmer_module -stmtCacheEntry +Step StopList -storeInfo -storeRes_func StrategyNumber -stream_stop_callback StreamCtl StreamStopReason String StringInfo StringInfoData StripnullState -STRLEN SubLink SubLinkType SubOpts SubPlan +SubPlanRTInfo SubPlanState +SubRelInfo +SubRemoveRels +SubTransactionId +SubXactCallback +SubXactCallbackItem +SubXactEvent +SubXactInfo SubqueryScan SubqueryScanPath SubqueryScanState SubqueryScanStatus -SubRelInfo -SubRemoveRels SubscriptExecSetup SubscriptExecSteps +SubscriptRoutines +SubscriptTransform SubscriptingRef SubscriptingRefState Subscription SubscriptionInfo SubscriptionRelState SubscriptionTuple -SubscriptRoutines -SubscriptTransform -substitute_actual_parameters_context -substitute_actual_srf_parameters_context -substitute_grouped_columns_context -substitute_phv_relids_context -SubTransactionCommitTsEntry -SubTransactionId -SubXactCallback -SubXactCallbackItem -SubXactEvent -SubXactInfo -subxids_array_status SummarizerReadLocalXLogPrivate SupportRequestCost SupportRequestIndexCondition +SupportRequestInlineInFrom SupportRequestModifyInPlace SupportRequestOptimizeWindowClause SupportRequestRows SupportRequestSelectivity SupportRequestSimplify +SupportRequestSimplifyAggref SupportRequestWFuncMonotonic -SV -symbol Syn -SyncingTablesState SyncOps SyncRepConfigData SyncRepStandbyData SyncRequestHandler SyncRequestType SyncStandbySlotsConfigData -SyscacheCallbackFunction +SyncingRelationsState +SyncingTablesState +SysCacheIdentifier SysFKRelationship SysScanDesc +SysScanDescData +SyscacheCallbackFunction +SysloggerStartupData SystemRowsSamplerData SystemSamplerData SystemTimeSamplerData -T_Action -T_WorkerStatus -TableAmRoutine +TAPtype +TAR_MEMBER +TBMIterateResult +TBMIteratingState +TBMIterator +TBMPrivateIterator +TBMSharedIterator +TBMSharedIteratorState +TBMStatus +TBlockState +TCPattern +TIDBitmap +TM_FailureData +TM_IndexDelete +TM_IndexDeleteOp +TM_IndexStatus +TM_Result +TOKEN_DEFAULT_DACL +TOKEN_INFORMATION_CLASS +TOKEN_PRIVILEGES +TOKEN_USER +TParser +TParserCharTest +TParserPosition +TParserSpecial +TParserState +TParserStateAction +TParserStateActionItem +TQueueDestReceiver +TRGM +TSAnyCacheEntry +TSConfigCacheEntry +TSConfigInfo +TSDictInfo +TSDictionaryCacheEntry +TSExecuteCallback +TSLexeme +TSParserCacheEntry +TSParserInfo +TSQuery +TSQueryData +TSQueryParserState +TSQuerySign +TSReadPointer +TSTemplateInfo +TSTernaryValue +TSTokenTypeItem +TSTokenTypeStorage +TSVector +TSVectorBuildState +TSVectorData +TSVectorParseState +TSVectorStat +TState +TStatus +TStoreState +TU_UpdateIndexes +TXNEntryFile +TYPCATEGORY +T_Action +T_WorkerStatus +TableAmRoutine TableAttachInfo TableDataInfo TableFunc @@ -3607,26 +3276,18 @@ TableLikeClause TableSampleClause TableScanDesc TableScanDescData +TableScanInstrumentation TableSpaceCacheEntry -tablespaceinfo +TableSpaceOpts +TableToProcess TablespaceList TablespaceListCell -TableSpaceOpts TapeBlockTrailer TapeShare -tar_file -TAR_MEMBER -TargetEntry TarMethodData TarMethodFile -TBlockState -TBMIterateResult -TBMIteratingState -TBMIterator -TBMPrivateIterator -TBMSharedIterator -TBMSharedIteratorState -TBMStatus +TargetEntry +TclExceptionNameMap Tcl_CmdInfo Tcl_DString Tcl_FileProc @@ -3637,26 +3298,19 @@ Tcl_NotifierProcs Tcl_Obj Tcl_Size Tcl_Time -TclExceptionNameMap -TCPattern -td_entry -temp_tablespaces_extra TempNamespaceStatus -teSection -test_re_flags -test_regex_ctx -test_shm_mq_header -test_spec +TestDSMRegistryHashEntry +TestDSMRegistryStruct TestDecodingData TestDecodingTxnData -TestDSMRegistryStruct +TestShmemData +TestSlruSharedState +TestSpec TestValueType -text TextFreq TextPositionState TheLexeme TheSubstitute -TIDBitmap TidExpr TidExprType TidHashKey @@ -3664,71 +3318,48 @@ TidOpExpr TidPath TidRangePath TidRangeScan +TidRangeScanInstrumentation TidRangeScanState TidScan TidScanState TidStore TidStoreIter TidStoreIterResult -time_t TimeADT -timeKEY TimeLineHistoryCmd TimeLineHistoryEntry TimeLineID TimeOffset -timeout_handler_proc -timeout_params +TimeStamp +TimeTzADT +TimeZoneAbbrevTable TimeoutId TimeoutType Timestamp TimestampTz -TimeTzADT -TimeZoneAbbrevTable -tlist_vinfo -TM_FailureData -TM_IndexDelete -TM_IndexDeleteOp -TM_IndexStatus -TM_Result +TimingClockSourceType TmFromChar TmToChar -toast_compress_header ToastAttrInfo ToastCompressionId -ToastedAttribute ToastTupleContext +ToastedAttribute TocEntry TokenAuxData -tokenize_error_callback_arg TokenizedAuthLine -TParser -TParserCharTest -TParserPosition -TParserSpecial -TParserState -TParserStateAction -TParserStateActionItem -TQueueDestReceiver TrackItem +TransApplyAction +TransInvalidationInfo +TransState TransactionId TransactionState TransactionStateData TransactionStmt TransactionStmtKind TransamVariablesData -TransApplyAction -transferMode TransformInfo TransformJsonStringValuesState -TransInvalidationInfo TransitionCaptureState -TransState -tree_mutator_callback -tree_walker_callback -trgm -TRGM -trgm_mb_char TrgmArc TrgmArcInfo TrgmBound @@ -3750,52 +3381,25 @@ TriggerDesc TriggerEvent TriggerFlags TriggerInfo +TriggerInstrumentation TriggerTransition -trivalue TruncateStmt -ts_parserstate -ts_tokenizer -ts_tokentype -TSAnyCacheEntry -TSConfigCacheEntry -TSConfigInfo -TSDictInfo -TSDictionaryCacheEntry -tsearch_readline_state -TSExecuteCallback -tsKEY -TSLexeme +TscClockSourceInfo TsmRoutine -TSParserCacheEntry -TSParserInfo -TSQuery -TSQueryData -TSQueryParserState -TSQuerySign -TSReadPointer -TState -TStatus -TSTemplateInfo -TSTernaryValue -TSTokenTypeItem -TSTokenTypeStorage -TStoreState -TSVector -TSVectorBuildState -TSVectorData -TSVectorParseState -TSVectorStat -TU_UpdateIndexes +TupOutputState +TupSortStatus +TupStoreStatus TupleConstr TupleConversionMap TupleDesc -tuplehash_hash -tuplehash_iterator TupleHashEntry TupleHashEntryData TupleHashIterator TupleHashTable +TupleHashTableData TupleQueueReader +TupleTableSlot +TupleTableSlotOps TuplesortClusterArg TuplesortDatumArg TuplesortIndexArg @@ -3807,11 +3411,6 @@ TuplesortPublic TuplesortSpaceType Tuplesortstate Tuplestorestate -TupleTableSlot -TupleTableSlotOps -TupOutputState -TupSortStatus -TupStoreStatus TwoPhaseCallback TwoPhaseFileHeader TwoPhaseLockRecord @@ -3823,8 +3422,6 @@ TwoPhasePredicateXactRecord TwoPhaseRecordOnDisk TwoPhaseRmgrId TwoPhaseStateData -TXNEntryFile -TYPCATEGORY Type TypeCacheEntry TypeCacheEnumData @@ -3834,46 +3431,29 @@ TypeFuncClass TypeInfo TypeName TzAbbrevCache -tzEntry -u_char -u_int U32 U8 -ua_page_items -ua_page_stats +UCaseMap UChar UCharIterator -uchr UColAttributeValue UCollator UConverter UErrorCode -uid_t -uint128 -uint16 -uint16_t -uint32 -uint32_t -uint64 -uint64_t -uint8 -uint8_t -uintptr_t -unicode_linestyle +UINT +ULARGE_INTEGER +ULONG +ULONG_PTR +UV +UVersionInfo UnicodeNormalizationForm UnicodeNormalizationQC -unicodeStyleBorderFormat -unicodeStyleColumnFormat -unicodeStyleFormat -unicodeStyleRowFormat Unique UniquePath UniquePathMethod UniqueRelInfo UniqueState -unit_conversion UnlistenStmt -unlogged_relation_entry UnresolvedTup UnresolvedTupData UpdateContext @@ -3891,14 +3471,7 @@ UserAuth UserContext UserMapping UserOpts -utf_local_conversion_func -uuid_rc_t -uuid_sortsupport_state -uuid_t -uuidKEY -UV -UVersionInfo -va_list +VMCorruptionType VacAttrStats VacAttrStatsP VacDeadItems @@ -3906,46 +3479,39 @@ VacDeadItemsInfo VacErrPhase VacObjFilter VacOptValue -vacuumingOptions +VacuumCutoffs VacuumParams VacuumRelation VacuumStmt -validate_string_relopt +ValidIOData ValidateIndexState ValidatorModuleResult ValidatorModuleState ValidatorShutdownCB ValidatorStartupCB ValidatorValidateCB -ValidIOData ValuesScan ValuesScanState Var -varatt_expanded -varattrib_1b -varattrib_1b_e -varattrib_4b VarBit VarChar +VarParamState +VarReturningType +VarString +VarStringSortSupport Variable VariableAssignHook VariableCache VariableCacheData -Variables VariableSetKind VariableSetStmt VariableShowStmt VariableSpace VariableStatData VariableSubstituteHook -VarParamState -VarReturningType -VarString -VarStringSortSupport -vbits +Variables Vector32 Vector8 -verifier_context VersionedQuery Vfd ViewCheckOption @@ -3957,8 +3523,27 @@ VirtualTupleTableSlot VolatileFunctionStatus Vsrt WAIT_ORDER +WALAvailability +WALInsertLock +WALInsertLockPadded +WALOpenSegment +WALReadError +WALSegmentCloseCB +WALSegmentContext +WALSegmentOpenCB +WCHAR +WCOKind +WFW_WaitOption +WIDGET +WORD +WORKSTATE +WSABUF +WSADATA +WSANETWORKEVENTS +WSAPROTOCOL_INFO WaitEvent WaitEventActivity +WaitEventBuffer WaitEventBufferPin WaitEventClient WaitEventCustomCounterData @@ -3968,45 +3553,24 @@ WaitEventIO WaitEventIPC WaitEventSet WaitEventTimeout +WaitLSNProcInfo +WaitLSNResult +WaitLSNState +WaitLSNType WaitPMResult -WALAvailability +WaitStmt WalCloseMethod WalCompression -Walfile WalInsertClass -WALInsertLock -WALInsertLockPadded WalLevel -WALOpenSegment -walrcv_alter_slot_fn -walrcv_check_conninfo_fn -walrcv_connect_fn -walrcv_create_slot_fn -walrcv_disconnect_fn -walrcv_endstreaming_fn -walrcv_exec_fn -walrcv_get_backend_pid_fn -walrcv_get_conninfo_fn -walrcv_get_dbname_from_conninfo_fn -walrcv_get_senderinfo_fn -walrcv_identify_system_fn -walrcv_readtimelinehistoryfile_fn -walrcv_receive_fn -walrcv_send_fn -walrcv_server_version_fn -walrcv_startstreaming_fn WalRcvData WalRcvExecResult WalRcvExecStatus WalRcvState WalRcvStreamOptions WalRcvWakeupReason -WALReadError WalReceiverConn WalReceiverFunctionsType -WALSegmentCloseCB -WALSegmentContext -WALSegmentOpenCB WalSnd WalSndCtlData WalSndSendDataCallback @@ -4018,11 +3582,7 @@ WalTimeSample WalUsage WalWriteMethod WalWriteMethodOps -wchar_t -wchar2mb_with_len_converter -WCOKind -WFW_WaitOption -WIDGET +Walfile WindowAgg WindowAggPath WindowAggState @@ -4039,7 +3599,7 @@ WindowObjectData WindowStatePerAgg WindowStatePerAggData WindowStatePerFunc -wint_t +WindowStatePerFuncData WithCheckOption WithClause WordBoundaryNext @@ -4048,18 +3608,15 @@ WordEntryIN WordEntryPos WordEntryPosVector WordEntryPosVector1 -worker_state +WorkTableScan +WorkTableScanState WorkerInfo WorkerInfoData WorkerInstrumentation WorkerJobDumpPtrType WorkerJobRestorePtrType +WorkerNodeInstrumentation Working_State -WORKSTATE -worktable -WorkTableScan -WorkTableScanState -WritebackContext WriteBufPtrType WriteBytePtrType WriteDataCallback @@ -4068,114 +3625,15 @@ WriteExtraTocPtrType WriteFunc WriteManifestState WriteTarState -ws_file_info -ws_options +WritebackContext X509 X509_EXTENSION X509_NAME X509_NAME_ENTRY X509_STORE X509_STORE_CTX -XactCallback -XactCallbackItem -XactEvent -XactLockTableWaitInfo -XidBoundsViolation -XidCacheStatus -XidCommitStatus -XidStatus -xl_brin_createidx -xl_brin_desummarize -xl_brin_insert -xl_brin_revmap_extend -xl_brin_samepage_update -xl_brin_update -xl_btree_dedup -xl_btree_delete -xl_btree_insert -xl_btree_mark_page_halfdead -xl_btree_metadata -xl_btree_newroot -xl_btree_reuse_page -xl_btree_split -xl_btree_unlink_page -xl_btree_update -xl_btree_vacuum -xl_clog_truncate -xl_commit_ts_truncate -xl_dbase_create_file_copy_rec -xl_dbase_create_wal_log_rec -xl_dbase_drop_rec -xl_end_of_recovery -xl_hash_add_ovfl_page -xl_hash_delete -xl_hash_init_bitmap_page -xl_hash_init_meta_page -xl_hash_insert -xl_hash_move_page_contents -xl_hash_split_allocate_page -xl_hash_split_complete -xl_hash_squeeze_page -xl_hash_update_meta_page -xl_hash_vacuum_one_page -xl_heap_confirm -xl_heap_delete -xl_heap_freeze_page -xl_heap_freeze_plan -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_prune -xl_heap_rewrite_mapping -xl_heap_truncate -xl_heap_update -xl_heap_vacuum -xl_heap_visible -xl_invalid_page -xl_invalid_page_key -xl_invalidations -xl_logical_message -xl_multi_insert_tuple -xl_multixact_create -xl_multixact_truncate -xl_overwrite_contrecord -xl_parameter_change -xl_relmap_update -xl_replorigin_drop -xl_replorigin_set -xl_restore_point -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_testcustomrmgrs_message -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_parsed_prepare -xl_xact_prepare -xl_xact_relfilelocators -xl_xact_stats_item -xl_xact_stats_items -xl_xact_subxacts -xl_xact_twophase -xl_xact_xinfo -xlhp_freeze_plan -xlhp_freeze_plans -xlhp_prune_items +X86FeatureId +XLTW_Oper XLogCtlData XLogCtlInsert XLogDumpConfig @@ -4187,393 +3645,1134 @@ XLogPageHeaderData XLogPageReadCB XLogPageReadPrivate XLogPageReadResult +XLogPrefetchStats XLogPrefetcher XLogPrefetcherFilter -XLogPrefetchStats XLogReaderRoutine XLogReaderState XLogRecData +XLogRecPtr +XLogRecStats XLogRecord XLogRecordBlockCompressHeader XLogRecordBlockHeader XLogRecordBlockImageHeader XLogRecordBuffer XLogRecoveryCtlData -XLogRecPtr -XLogRecStats XLogRedoAction XLogSegNo XLogSource XLogStats XLogwrtResult XLogwrtRqst -XLTW_Oper -xmlBuffer -xmlBufferPtr -xmlChar -xmlDocPtr -xmlError +XPV +XPVIV +XPVMG +XactCallback +XactCallbackItem +XactEvent +XactLockTableWaitInfo +XidBoundsViolation +XidCacheStatus +XidCommitStatus +XidStatus XmlExpr XmlExprOp -xmlExternalEntityLoader -xmlGenericErrorFunc -xmlNodePtr -xmlNodeSetPtr XmlOptionType -xmlParserCtxtPtr -xmlParserInputPtr -xmlSaveCtxt -xmlSaveCtxtPtr XmlSerialize -xmlStructuredErrorFunc XmlTableBuilderData -xmlTextWriter -xmlTextWriterPtr -xmltype -xmlXPathCompExprPtr -xmlXPathContextPtr -xmlXPathObjectPtr -xpath_workspace -XPV -XPVIV -XPVMG -xsltSecurityPrefsPtr -xsltStylesheetPtr -xsltTransformContextPtr -YY_BUFFER_STATE -yy_parser -yy_size_t YYLTYPE -yyscan_t YYSTYPE -z_stream -z_streamp -zic_t -SpockTupleData -SpockSyncStatus -SpockResFileHeader -DumpCtx -SpockGroupKey -SpockApplyProgress -SpockGroupEntry -SpockExceptionLog -SpockOutputData -SpockOutputSlotGroup -SpockWalMessageSimple -SpockSyncEventMessage -SpockRepSet -SpockTableRepInfo -RepSetTableTuple -QueuedMessage -SpockNode -SpockInterface -SpockLocalNode -SpockSubscription -SpockApplyWorker -SpockSyncWorker -SpockWorker -SpockContext -spockStatsKey -spockStatsEntry -JsonbInState -UserContext -SpockApplyProgress -SpockGroupEntry -SubTransactionCommitTsEntry -SpockProtoAPI -SpockRemoteRel -SpockRelation - - - - - -Step -Workflow -FormData_spock_depend -ObjectAddressExtra -ObjectAddressStack -find_expr_references_context -signal_worker_item -SeqStateTuple -spock_copyState -SPKRelMetaCacheEntry -RepSetTuple -RepSetSeqTuple -RepSetTableTuple -OutputPluginParam -RemoteSlot -FailoverSlotFilter -QueueTuple -NodeTuple -NodeInterfaceTuple -SubscriptionTuple -ApplyExecutionData -ApplyExecState -ApplyReplayEntryData -SpockApplyFunctions -SPKFlushPosition -ApplyExecState -ActionErrCallbackArg -RemoteSyncPosition -SpockReadonlyMode -GroupProgressTupDescColumns -SpockExceptionBehaviour -SpockExceptionLogging -SpockWorkerType -SpockWorkerStatus -spockStatsType -JsonbTypeCategory -SpockProtoType -SpockConflictResolution -SpockResolveOption -SpockConflictType -LogLevel -SpockOutputParamType -OutputPluginParamKey -/* -FailoverSlotFilterKey -SpockTupleData -SpockSyncStatus -SpockResFileHeader -DumpCtx -SpockGroupKey -SpockApplyProgress -SpockGroupEntry -SpockExceptionLog -SpockOutputData -SpockOutputSlotGroup -SpockWalMessageSimple -SpockSyncEventMessage -SpockRepSet -SpockTableRepInfo -RepSetTableTuple -QueuedMessage -SpockNode -SpockInterface -SpockLocalNode -SpockSubscription -SpockApplyWorker -SpockSyncWorker -spockStatsKey -spockStatsEntry -JsonbInState -UserContext -SpockApplyProgress -SpockGroupEntry -SubTransactionCommitTsEntry -SpockProtoAPI -SpockRemoteRel -SpockRelation -Step -Workflow -FormData_spock_depend -ObjectAddressExtra -ObjectAddressStack -find_expr_references_context -signal_worker_item -SPKRelMetaCacheEntry -RepSetTuple -RepSetSeqTuple -RepSetTableTuple -OutputPluginParam -RemoteSlot -FailoverSlotFilter -QueueTuple -NodeTuple -NodeInterfaceTuple -SubscriptionTuple -ApplyExecutionData -ApplyExecState -ApplyReplayEntryData -SPKFlushPosition -ApplyExecState -ActionErrCallbackArg -RemoteSyncPosition -SpockReadonlyMode - -SpockExceptionBehaviour -SpockExceptionLogging -spockStatsType -/* -SpockProtoType -SpockConflictResolution - -SpockConflictType -SpockOutputParamType -/* -FailoverSlotFilterKey -SpockTupleData -SpockSyncStatus -SpockResFileHeader -DumpCtx -SpockGroupKey -SpockApplyProgress -SpockGroupEntry -SpockExceptionLog -SpockOutputData -SpockOutputSlotGroup -SpockWalMessageSimple -SpockSyncEventMessage -SpockRepSet -SpockTableRepInfo -RepSetTableTuple -QueuedMessage -SpockNode -SpockInterface -SpockLocalNode -SpockSubscription -SpockApplyWorker -SpockSyncWorker -SpockWorker -SpockContext -spockStatsKey -spockStatsEntry -JsonbInState -UserContext -SpockApplyProgress -SpockGroupEntry -SubTransactionCommitTsEntry -SpockProtoAPI -SpockRemoteRel -SpockRelation - - - - - -Step -Workflow -FormData_spock_depend -ObjectAddressExtra -ObjectAddressStack -find_expr_references_context -signal_worker_item -SeqStateTuple -SPKRelMetaCacheEntry -RepSetTuple -RepSetSeqTuple -RepSetTableTuple -OutputPluginParam -RemoteSlot -FailoverSlotFilter -QueueTuple -NodeTuple -NodeInterfaceTuple -SubscriptionTuple -ApplyExecutionData -ApplyExecState -ApplyReplayEntryData -SPKFlushPosition -ApplyExecState -ActionErrCallbackArg -RemoteSyncPosition -SpockReadonlyMode - -SpockExceptionBehaviour -SpockExceptionLogging - - -spockStatsType -/* -SpockProtoType -SpockConflictResolution - -SpockConflictType - -SpockOutputParamType -OutputPluginParamKey -/* -FailoverSlotFilterKey -SpockWalMessage -SpockTupleData -SpockSyncStatus -SpockResFileHeader -DumpCtx -SpockGroupKey -SpockApplyProgress -SpockGroupEntry -SpockExceptionLog -SpockOutputData -SpockOutputSlotGroup -SpockWalMessageSimple -SpockSyncEventMessage -SpockRepSet -SpockTableRepInfo -RepSetTableTuple -QueuedMessage -SpockNode -SpockInterface -SpockLocalNode -SpockSubscription -SpockApplyWorker -SpockSyncWorker -SpockWorker -SpockContext -spockStatsKey -spockStatsEntry -JsonbInState -UserContext -SpockApplyProgress -SpockGroupEntry -SubTransactionCommitTsEntry -SpockProtoAPI -SpockRemoteRel -SpockRelation - - - - - -Step -Workflow -FormData_spock_depend -ObjectAddressExtra -ObjectAddressStack -find_expr_references_context -signal_worker_item -SeqStateTuple -SPKRelMetaCacheEntry -RepSetTuple -RepSetSeqTuple -RepSetTableTuple -OutputPluginParam -RemoteSlot -FailoverSlotFilter -QueueTuple -NodeTuple -NodeInterfaceTuple -SubscriptionTuple -ApplyExecutionData -ApplyExecState -ApplyReplayEntryData -SPKFlushPosition -ApplyExecState -ActionErrCallbackArg -RemoteSyncPosition -SpockReadonlyMode - -SpockExceptionBehaviour -SpockExceptionLogging - - -spockStatsType -/* -SpockProtoType -SpockConflictResolution - -SpockConflictType - -SpockOutputParamType -OutputPluginParamKey -/* -FailoverSlotFilterKey -SpockWalMessage +YY_BUFFER_STATE ZSTD_CCtx -ZSTD_cParameter ZSTD_CStream ZSTD_DCtx ZSTD_DStream +ZSTD_cParameter ZSTD_inBuffer ZSTD_outBuffer ZstdCompressorState +_SPI_connection +_SPI_plan +__m128i +__m512i +__mmask64 +__time64_t +_dev_t +_ino_t +_locale_t +_resultmap +_stringlist +access_vector_t +acquireLocksOnSubLinks_context +addFkConstraintSides +add_nulling_relids_context +adjust_appendrel_attrs_context +allocfunc +amadjustmembers_function +ambeginscan_function +ambuild_function +ambuildempty_function +ambuildphasename_function +ambulkdelete_function +amcanreturn_function +amcostestimate_function +amendscan_function +amestimateparallelscan_function +amgetbitmap_function +amgettreeheight_function +amgettuple_function +aminitparallelscan_function +aminsert_function +aminsertcleanup_function +ammarkpos_function +amoptions_function +amparallelrescan_function +amproperty_function +amrescan_function +amrestrpos_function +amtranslate_cmptype_function +amtranslate_strategy_function +amvacuumcleanup_function +amvalidate_function +array_iter +array_unnest_fctx +assign_collations_context +astreamer +astreamer_archive_context +astreamer_extractor +astreamer_gzip_decompressor +astreamer_gzip_writer +astreamer_lz4_frame +astreamer_member +astreamer_ops +astreamer_plain_writer +astreamer_recovery_injector +astreamer_tar_archiver +astreamer_tar_parser +astreamer_verify +astreamer_waldump +astreamer_zstd_frame +auth_password_hook_typ +auto_explain_extension_options +auto_explain_option +autovac_table +av_relation +avc_cache +avl_dbase +avl_node +avl_tree +avw_dbase +backslashResult +backup_file_entry +backup_file_hash +backup_manifest_info +backup_manifest_option +backup_wal_range +base_yy_extra_type +basebackup_options +bbsink +bbsink_copystream +bbsink_gzip +bbsink_lz4 +bbsink_ops +bbsink_server +bbsink_shell +bbsink_state +bbsink_throttle +bbsink_zstd +bbstreamer +bbstreamer_archive_context +bbstreamer_extractor +bbstreamer_gzip_decompressor +bbstreamer_gzip_writer +bbstreamer_lz4_frame +bbstreamer_member +bbstreamer_ops +bbstreamer_plain_writer +bbstreamer_recovery_injector +bbstreamer_tar_archiver +bbstreamer_tar_parser +bbstreamer_zstd_frame +bgworker_main_type +bh_node_type +binaryheap +binaryheap_comparator +bitmapword +bits16 +bits32 +bits8 +blockreftable_hash +blockreftable_iterator +bloom_filter +boolKEY +brin_column_state +brin_serialize_callback_type +btree_gin_convert_function +btree_gin_leftmost_function +build_simple_rel_hook_type +bytea +cached_re_str +canonicalize_state +cashKEY +catalogid_hash +cb_cleanup_dir +cb_options +cb_tablespace +cb_tablespace_mapping +char16_t +char32_t +check_agg_arguments_context +check_function_callback +check_network_data +check_object_relabel_type +check_password_hook_type +check_ungrouped_columns_context +child_process_kind +chr +cmpEntriesArg +codes_t +collation_cache_entry +collation_cache_hash +color +colormaprange +compare_context +config_handle +config_var_value +conn_errorMessage_func +conn_oauth_client_id_func +conn_oauth_client_secret_func +conn_oauth_discovery_uri_func +conn_oauth_issuer_id_func +conn_oauth_scope_func +conn_sasl_state_func +contain_aggs_of_level_context +contain_placeholder_references_context +convert_testexpr_context +copy_data_dest_cb +copy_data_source_cb +core_YYSTYPE +core_yy_extra_type +core_yyscan_t +corrupt_items +cost_qual_eval_context +count_param_references_context +cp_hash_func +create_upper_paths_hook_type +createdb_failure_params +crosstab_HashEnt +crosstab_cat_desc +curl_infotype +curl_socket_t +curl_version_info_data +datapagemap_iterator_t +datapagemap_t +dateKEY +datetkn +dce_uuid_t +dclist_head +decimal +deparse_columns +deparse_context +deparse_expr_cxt +deparse_namespace +derives_hash +destructor +dev_t +digit +disassembledLeaf +dlist_head +dlist_iter +dlist_mutable_iter +dlist_node +dm_code +dm_codes +dm_letter +dm_node +ds_state +dsa_area +dsa_area_control +dsa_area_pool +dsa_area_span +dsa_handle +dsa_pointer +dsa_pointer_atomic +dsa_segment_header +dsa_segment_index +dsa_segment_map +dshash_compare_function +dshash_copy_function +dshash_hash +dshash_hash_function +dshash_parameters +dshash_partition +dshash_seq_status +dshash_table +dshash_table_control +dshash_table_handle +dshash_table_item +dsm_control_header +dsm_control_item +dsm_handle +dsm_op +dsm_segment +dsm_segment_detach_callback +duration +eLogType +ean13 +eary +ec_matches_callback_type +ec_member_foreign_arg +ec_member_matches_arg +element_type +emit_log_hook_type +eval_const_expressions_context +exec_thread_arg +execution_state +exit_function +explain_get_index_name_hook_type +explain_per_node_hook_type +explain_per_plan_hook_type +explain_validate_options_hook_type +f_smgr +fasthash_state +fd_set +fe_oauth_state +fe_scram_state +fe_scram_state_enum +fetch_range_request +file_action_t +file_content_type_t +file_entry_t +file_type_t +filehash_hash +filehash_iterator +filemap_t +fill_string_relopt +finalize_primnode_context +find_dependent_phvs_context +find_expr_references_context +fireRIRonSubLink_context +fix_join_expr_context +fix_scan_expr_context +fix_upper_expr_context +fix_windowagg_cond_context +flatten_join_alias_vars_context +flatten_rtes_walker_context +float4 +float4KEY +float8 +float8KEY +floating_decimal_32 +floating_decimal_64 +fmAggrefPtr +fmExprContextCallbackFunction +fmNodePtr +fmStringInfo +fmgr_hook_type +foreign_glob_cxt +foreign_loc_cxt +freefunc +fsec_t +gbt_vsrt_arg +gbtree_ninfo +gbtree_vinfo +generate_series_fctx +generate_series_numeric_fctx +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 +gid_t +gin_leafpage_items_state +ginxlogCreatePostingTree +ginxlogDeleteListPages +ginxlogDeletePage +ginxlogInsert +ginxlogInsertDataInternal +ginxlogInsertEntry +ginxlogInsertListPage +ginxlogRecompressDataLeaf +ginxlogSplit +ginxlogUpdateMeta +ginxlogVacuumDataLeafPage +gistxlogDelete +gistxlogPage +gistxlogPageDelete +gistxlogPageReuse +gistxlogPageSplit +gistxlogPageUpdate +grouping_eqop_callback +grouping_sets_data +grouping_walker_ctx +growable_trgm_array +gseg_picksplit_item +gss_OID_set +gss_buffer_desc +gss_cred_id_t +gss_cred_usage_t +gss_ctx_id_t +gss_key_value_element_desc +gss_key_value_set_desc +gss_name_t +gtrgm_consistent_cache +gzFile +hashfunc +having_grouping_ctx +hbaPort +heap_page_items_state +help_handler +hlCheck +host_cache_hash +hstoreCheckKeyLen_t +hstoreCheckValLen_t +hstorePairs_t +hstoreUniquePairs_t +hstoreUpgrade_t +hyperLogLogState +ifState +import_error_callback_arg +indexed_tlist +inet +inetKEY +inet_struct +initRowMethod +init_function +inline_cte_walker_context +inline_error_callback_arg +ino_t +inquiry +instr_time +int128 +int16 +int16KEY +int16_t +int2vector +int32 +int32KEY +int32_t +int64 +int64KEY +int64_t +int8 +int8_t +int8x16_t +int_fast32_t +int_fast64_t +internalPQconninfoOption +intmax_t +intptr_t +intset_internal_node +intset_leaf_node +intset_node +intvKEY +io_callback_fn +io_stat_col +itemIdCompact +itemIdCompactData +iterator +jmp_buf +join_path_setup_hook_type +join_search_hook_type +joinrel_setup_hook_type +json_aelem_action +json_manifest_error_callback +json_manifest_per_file_callback +json_manifest_per_wal_range_callback +json_manifest_perfile_callback +json_manifest_perwalrange_callback +json_manifest_system_identifier_callback +json_manifest_version_callback +json_ofield_action +json_scalar_action +json_struct_action +keepwal_entry +keepwal_hash +keyEntryData +key_t +lclContext +lclTocEntry +leafSegmentInfo +leaf_item +libpq_gettext_func +libpq_source +libpqsrv_PGresult +line_t +lineno_t +list_sort_comparator +loc_chunk +local_relopt +local_relopts +local_source +local_ts_iter +local_ts_radix_tree +locale_t +locate_agg_of_level_context +locate_var_of_level_context +locate_windowfunc_context +logstreamer_param +lquery +lquery_level +lquery_variant +ltree +ltree_gist +ltree_level +ltxtquery +mXactCacheEnt +mac8KEY +macKEY +macaddr +macaddr8 +macaddr_sortsupport_state +manifest_data +manifest_file +manifest_files_hash +manifest_files_iterator +manifest_wal_range +manifest_writer +map_variable_attnos_context +max_parallel_hazard_context +mb2wchar_with_len_converter +mbchar_verifier +mbcharacter_incrementer +mbdisplaylen_converter +mblen_converter +mbstr_verifier +memoize_hash +memoize_iterator +metastring +missing_cache_key +mix_data_t +mixedStruct +mode_t +movedb_failure_params +multirange_bsearch_comparison +multirange_unnest_fctx +mxact +mxtruncinfo +needs_fmgr_hook_type +network_sortsupport_state +nl_item +nodeitem +normal_rand_fctx +nsphash_hash +ntile_context +nullingrel_info +numeric +object_access_hook_type +object_access_hook_type_str +off_t +oidKEY +oidvector +on_dsm_detach_callback +on_exit_nicely_callback +openssl_tls_init_hook_typ +ossl_EVP_cipher_func +other +output_type +overexplain_options +pagetable_hash +pagetable_iterator +pairingheap +pairingheap_comparator +pairingheap_node +pam_handle_t +parallel_worker_main_type +parse_error_callback_arg +parser_context +partition_method_t +pe_test_config +pe_test_escape_func +pe_test_vector +pendingPosition +pending_label +pgParameterStatus +pg_atomic_flag +pg_atomic_uint32 +pg_atomic_uint64 +pg_be_sasl_mech +pg_case_map +pg_category_range +pg_checksum_context +pg_checksum_raw_context +pg_checksum_type +pg_compress_algorithm +pg_compress_specification +pg_conn_host +pg_conn_host_type +pg_conv_map +pg_crc32 +pg_crc32c +pg_cryptohash_ctx +pg_cryptohash_errno +pg_cryptohash_type +pg_ctype_cache +pg_enc +pg_enc2gettext +pg_enc2name +pg_encname +pg_fe_sasl_mech +pg_funcptr_t +pg_getopt_ctx +pg_gssinfo +pg_hmac_ctx +pg_hmac_errno +pg_int64 +pg_local_to_utf_combined +pg_locale_t +pg_mb_radix_tree +pg_md5_ctx +pg_on_exit_callback +pg_plan_advice_advisor_hook +pg_prng_state +pg_re_flags +pg_regex_t +pg_regmatch_t +pg_regoff_t +pg_saslprep_rc +pg_saslprep_test_context +pg_sha1_ctx +pg_sha224_ctx +pg_sha256_ctx +pg_sha384_ctx +pg_sha512_ctx +pg_signal_info +pg_snapshot +pg_special_case +pg_stack_base_t +pg_ternary +pg_time_t +pg_time_usec_t +pg_tz +pg_tz_cache +pg_tzenum +pg_unicode_category +pg_unicode_decompinfo +pg_unicode_decomposition +pg_unicode_norminfo +pg_unicode_normprops +pg_unicode_properties +pg_unicode_range +pg_unicode_recompinfo +pg_usec_time_t +pg_utf8_codepoint_range +pg_utf_to_local_combined +pg_uuid_t +pg_wc_probefunc +pg_wchar +pg_wchar_tbl +pgoff_t +pgp_armor_headers_state +pgpa_advice_item +pgpa_advice_tag_type +pgpa_advice_target +pgpa_identifier +pgpa_index_target +pgpa_itm_type +pgpa_jo_outcome +pgpa_join_member +pgpa_join_state +pgpa_join_strategy +pgpa_join_unroller +pgpa_output_context +pgpa_plan_walker_context +pgpa_planner_info +pgpa_planner_state +pgpa_qf_type +pgpa_query_feature +pgpa_scan +pgpa_scan_strategy +pgpa_target_type +pgpa_trove +pgpa_trove_entry +pgpa_trove_entry_element +pgpa_trove_entry_hash +pgpa_trove_entry_key +pgpa_trove_lookup_type +pgpa_trove_result +pgpa_trove_slice +pgpa_unrolled_join +pgpa_yy_extra_type +pgsa_entry +pgsa_entry_key +pgsa_saved_entry +pgsa_saved_stash +pgsa_saved_stash_table_hash +pgsa_saved_stash_table_iterator +pgsa_shared_state +pgsa_stash +pgsa_stash_count +pgsa_stash_count_table_hash +pgsa_stash_name +pgsa_stash_name_table_hash +pgsa_writer_context +pgsocket +pgsql_thing_t +pgssEntry +pgssGlobalStats +pgssHashKey +pgssSharedState +pgssStoreKind +pgssVersion +pgstat_entry_ref_hash_hash +pgstat_entry_ref_hash_iterator +pgstat_page +pgstat_snapshot_hash +pgstattuple_type +pgthreadlock_t +pid_t +pivot_field +planner_hook_type +planner_setup_hook_type +planner_shutdown_hook_type +planstate_tree_walker_callback +plperl_array_info +plperl_call_data +plperl_interp_desc +plperl_proc_desc +plperl_proc_key +plperl_proc_ptr +plperl_query_desc +plperl_query_entry +plpgsql_CastExprHashEntry +plpgsql_CastHashEntry +plpgsql_CastHashKey +plpgsql_HashEnt +plpgsql_expr_walker_callback +plpgsql_stmt_walker_callback +pltcl_call_state +pltcl_interp_desc +pltcl_proc_desc +pltcl_proc_key +pltcl_proc_ptr +pltcl_query_desc +pointer +polymorphic_actuals +pos_trgm +post_parse_analyze_hook_type +postprocess_result_function +pqbool +pqsigfunc +pqsigfunc_legacy +printQueryOpt +printTableContent +printTableFooter +printTableOpt +printTextFormat +printTextLineFormat +printTextLineWrap +printTextRule +printXheaderWidthType +printfunc +priv_map +process_file_callback_t +process_sublinks_context +proclist_head +proclist_mutable_iter +proclist_node +promptStatus_t +pthread_barrier_t +pthread_cond_t +pthread_key_t +pthread_mutex_t +pthread_once_t +pthread_t +ptrdiff_t +publication_tables_state +published_rel +pull_var_clause_context +pull_varattnos_context +pull_varnos_context +pull_vars_context +pullup_replace_vars_context +pushdown_safe_type +pushdown_safety_info +qc_hash_func +qsort_arg_comparator +qsort_comparator +query_pathkeys_callback +radius_attribute +radius_packet +rangeTableEntry_used_context +rank_context +rbt_allocfunc +rbt_combiner +rbt_comparator +rbt_freefunc +reduce_outer_joins_partial_state +reduce_outer_joins_pass1_state +reduce_outer_joins_pass2_state +refcount_hash +refcount_iterator +reference +regc_wc_probefunc +regex_arc_t +regex_t +regexp +regexp_matches_ctx +registered_buffer +regmatch_t +regoff_t +regproc +relopt_bool +relopt_enum +relopt_enum_elt_def +relopt_gen +relopt_int +relopt_kind +relopt_parse_elt +relopt_real +relopt_string +relopt_ternary +relopt_type +relopt_value +relopts_validator +remoteConn +remoteConnHashEnt +remoteDep +remove_nulling_relids_context +rendezvousHashEntry +rep +replace_rte_variables_callback +replace_rte_variables_context +report_error_fn +ret_type +rewind_source +rewrite_event +rf_context +rfile +rm_detail_t +role_auth_extra +rolename_hash +row_security_policy_hook_type +rsv_callback +rt_iter +rt_node_class_test_elem +rt_radix_tree +saophash_hash +save_buffer +save_locale_t +scram_state +scram_state_enum +script_error_callback_arg +security_class_t +sem_t +sepgsql_context_info_t +sequence_magic +set_conn_altsock_func +set_conn_oauth_token_func +set_join_pathlist_hook_type +set_rel_pathlist_hook_type +shared_ts_iter +shared_ts_radix_tree +shm_mq +shm_mq_handle +shm_mq_iovec +shm_mq_result +shm_toc +shm_toc_entry +shm_toc_estimator +shmem_hash_allocator +shmem_request_hook_type +shmem_startup_hook_type +sig_atomic_t +siginfo_t +sigjmp_buf +signal_worker_item +signedbitmapword +sigset_t +size_t +slist_head +slist_iter +slist_mutable_iter +slist_node +slock_t +socket_set +socklen_t +spgBulkDeleteState +spgChooseIn +spgChooseOut +spgChooseResultType +spgConfigIn +spgConfigOut +spgInnerConsistentIn +spgInnerConsistentOut +spgLeafConsistentIn +spgLeafConsistentOut +spgNodePtr +spgPickSplitIn +spgPickSplitOut +spgVacPendingItem +spgxlogAddLeaf +spgxlogAddNode +spgxlogMoveLeafs +spgxlogPickSplit +spgxlogSplitTuple +spgxlogState +spgxlogVacuumLeaf +spgxlogVacuumRedirect +spgxlogVacuumRoot +split_pathtarget_context +split_pathtarget_item +spockStatsEntry +spockStatsKey +spockStatsType +sql_error_callback_arg +sqlparseInfo +sqlparseState +ss_lru_item_t +ss_scan_location_t +ss_scan_locations_t +ssize_t +standard_qp_extra +stemmer_module +stmtCacheEntry +storeInfo +storeRes_func +stream_stop_callback +string +substitute_actual_parameters_context +substitute_actual_parameters_in_from_context +substitute_actual_srf_parameters_context +substitute_grouped_columns_context +substitute_phv_relids_context +subxids_array_status +symbol +tablespaceinfo +tar_file +td_entry +teSection +temp_tablespaces_extra +test128 +test_re_flags +test_regex_ctx +test_shm_mq_header +test_spec +test_start_function +text +timeKEY +time_t +timeout_handler_proc +timeout_params +timerCA +tlist_vinfo +toast_compress_header +tokenize_error_callback_arg +transferMode +transfer_thread_arg +tree_mutator_callback +tree_walker_callback +trgm +trgm_mb_char +trivalue +tsKEY +ts_parserstate +ts_tokenizer +ts_tokentype +tsearch_readline_state +tuplehash_hash +tuplehash_iterator +type +tzEntry +u_char +u_int +ua_page_items +ua_page_stats +uchr +uid_t +uint128 +uint16 +uint16_t +uint16x8_t +uint32 +uint32_t +uint32x4_t +uint64 +uint64_t +uint64x2_t +uint8 +uint8_t +uint8x16_t +uint_fast64_t +uintmax_t +uintptr_t +unicodeStyleBorderFormat +unicodeStyleColumnFormat +unicodeStyleFormat +unicodeStyleRowFormat +unicode_linestyle +unit_conversion +unlogged_relation_entry +utf_local_conversion_func +uuidKEY +uuid_rc_t +uuid_sortsupport_state +uuid_t +va_list +vacuumingOptions +validate_string_relopt +varatt_expanded +varatt_external +varatt_indirect +varattrib_1b +varattrib_1b_e +varattrib_4b +varlena +vartag_external +vbits +verifier_context +walrcv_alter_slot_fn +walrcv_check_conninfo_fn +walrcv_connect_fn +walrcv_create_slot_fn +walrcv_disconnect_fn +walrcv_endstreaming_fn +walrcv_exec_fn +walrcv_get_backend_pid_fn +walrcv_get_conninfo_fn +walrcv_get_dbname_from_conninfo_fn +walrcv_get_senderinfo_fn +walrcv_identify_system_fn +walrcv_readtimelinehistoryfile_fn +walrcv_receive_fn +walrcv_send_fn +walrcv_server_version_fn +walrcv_startstreaming_fn +wchar2mb_with_len_converter +wchar_t +win32_deadchild_waitinfo +wint_t +worker_state +worktable +wrap +ws_file_info +ws_options +xl_brin_createidx +xl_brin_desummarize +xl_brin_insert +xl_brin_revmap_extend +xl_brin_samepage_update +xl_brin_update +xl_btree_dedup +xl_btree_delete +xl_btree_insert +xl_btree_mark_page_halfdead +xl_btree_metadata +xl_btree_newroot +xl_btree_reuse_page +xl_btree_split +xl_btree_unlink_page +xl_btree_update +xl_btree_vacuum +xl_checkpoint_redo +xl_checksum_state +xl_clog_truncate +xl_commit_ts_truncate +xl_dbase_create_file_copy_rec +xl_dbase_create_wal_log_rec +xl_dbase_drop_rec +xl_end_of_recovery +xl_hash_add_ovfl_page +xl_hash_delete +xl_hash_init_bitmap_page +xl_hash_init_meta_page +xl_hash_insert +xl_hash_move_page_contents +xl_hash_split_allocate_page +xl_hash_split_complete +xl_hash_squeeze_page +xl_hash_update_meta_page +xl_hash_vacuum_one_page +xl_heap_confirm +xl_heap_delete +xl_heap_freeze_page +xl_heap_freeze_plan +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_prune +xl_heap_rewrite_mapping +xl_heap_truncate +xl_heap_update +xl_heap_vacuum +xl_heap_visible +xl_invalid_page +xl_invalid_page_key +xl_invalidations +xl_logical_message +xl_multi_insert_tuple +xl_multixact_create +xl_multixact_truncate +xl_overwrite_contrecord +xl_parameter_change +xl_relmap_update +xl_replorigin_drop +xl_replorigin_set +xl_restore_point +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_testcustomrmgrs_message +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_parsed_prepare +xl_xact_prepare +xl_xact_relfilelocators +xl_xact_stats_item +xl_xact_stats_items +xl_xact_subxacts +xl_xact_twophase +xl_xact_xinfo +xlhp_freeze_plan +xlhp_freeze_plans +xlhp_prune_items +xmlBuffer +xmlBufferPtr +xmlChar +xmlDocPtr +xmlError +xmlErrorPtr +xmlExternalEntityLoader +xmlGenericErrorFunc +xmlNodePtr +xmlNodeSetPtr +xmlParserCtxtPtr +xmlParserErrors +xmlParserInputPtr +xmlSaveCtxt +xmlSaveCtxtPtr +xmlStructuredErrorFunc +xmlTextWriter +xmlTextWriterPtr +xmlXPathCompExprPtr +xmlXPathContextPtr +xmlXPathObjectPtr +xmltype +xpath_workspace +xsltSecurityPrefsPtr +xsltStylesheetPtr +xsltTransformContextPtr +yy_parser +yy_size_t +yyscan_t +z_stream +z_streamp +zic_t