diff --git a/.github/workflows/pgindent.yml b/.github/workflows/pgindent.yml new file mode 100644 index 00000000..8d07b793 --- /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.h b/include/spock.h index 2d96941f..ab95c04f 100644 --- a/include/spock.h +++ b/include/spock.h @@ -52,7 +52,7 @@ extern int restart_delay_on_exception; extern int spock_replay_queue_size; extern int spock_pause_timeout; 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; diff --git a/include/spock_conflict.h b/include/spock_conflict.h index a6fe9b6c..3db3e6a2 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, @@ -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 @@ -107,17 +107,17 @@ typedef enum SPOCK_ORIGIN_REMOTE_ONLY_DIFFERS, /* log only if origin changed since start of subscription */ SPOCK_ORIGIN_DIFFERS_SINCE_SUB -} SpockSaveOriginConflictOption; +} SpockSaveOriginConflictOption; 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 492f8446..0630b8f9 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 */ \ No newline at end of file +#endif /* SPOCK_CONFLICT_STAT_H */ diff --git a/include/spock_group.h b/include/spock_group.h index 256d8e04..bc47e854 100644 --- a/include/spock_group.h +++ b/include/spock_group.h @@ -66,7 +66,7 @@ typedef struct SpockGroupKey /* * Columns for the UI routine get_apply_group_progress. */ -typedef enum +typedef enum GroupProgressTupDescColumns { GP_DBOID = 0, GP_NODE_ID, @@ -115,35 +115,35 @@ typedef enum */ 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 0df5096a..8c9d4186 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; /* NULL-terminated arrays */ diff --git a/include/spock_output_plugin.h b/include/spock_output_plugin.h index 07781879..e4aefc13 100644 --- a/include/spock_output_plugin.h +++ b/include/spock_output_plugin.h @@ -100,7 +100,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 434fbd18..4c35d054 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_relcache.h b/include/spock_relcache.h index a9a689de..2d507416 100644 --- a/include/spock_relcache.h +++ b/include/spock_relcache.h @@ -69,7 +69,7 @@ extern void spock_relation_cache_reset(void); extern Oid spock_lookup_delta_function(char *fname, Oid typeoid); -extern Oid get_replication_identity(Relation rel); +extern Oid get_replication_identity(Relation rel); struct SpockTupleData; diff --git a/include/spock_sync.h b/include/spock_sync.h index 2169c07a..4cab8d70 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 60891451..68e73265 100644 --- a/include/spock_worker.h +++ b/include/spock_worker.h @@ -26,7 +26,7 @@ typedef enum SPOCK_WORKER_APPLY, /* Apply. */ SPOCK_WORKER_SYNC /* Special type of Apply that synchronizes one * table. */ -} SpockWorkerType; +} SpockWorkerType; typedef enum { @@ -36,7 +36,7 @@ typedef enum SPOCK_WORKER_STATUS_STOPPING, /* Stopping. */ SPOCK_WORKER_STATUS_STOPPED, /* Stopped. */ SPOCK_WORKER_STATUS_FAILED, /* Failed. */ -} SpockWorkerStatus; +} SpockWorkerStatus; typedef struct SpockApplyWorker { @@ -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 90e432c7..7adba757 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/spock.c b/src/spock.c index 8def4d39..385fb554 100644 --- a/src/spock.c +++ b/src/spock.c @@ -126,7 +126,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} }; @@ -143,7 +143,8 @@ 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_pause_timeout = 10; /* seconds to wait for apply workers + * to pause */ bool check_all_uc_indexes = false; bool spock_enable_quiet_mode = false; int log_origin_change = SPOCK_ORIGIN_NONE; @@ -923,7 +924,7 @@ log_message_filter(ErrorData *edata) static void spock_object_relabel(const ObjectAddress *object, const char *seclabel) { - Oid extoid; + Oid extoid; extoid = get_extension_oid(EXTENSION_NAME, true); if (!OidIsValid(extoid)) @@ -1217,13 +1218,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 6d35b242..6e6e5979 100644 --- a/src/spock_apply.c +++ b/src/spock_apply.c @@ -119,7 +119,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; @@ -137,7 +138,7 @@ static ApplyReplayEntry * apply_replay_next = NULL; /* Total bytes of libpq-allocated data held by in-memory queue entries */ static int 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; @@ -247,12 +248,12 @@ static void get_feedback_position(XLogRecPtr *recvpos, XLogRecPtr *writepos, XLogRecPtr *flushpos, XLogRecPtr *max_recvpos); static void UpdateWorkerStats(XLogRecPtr last_received, XLogRecPtr last_inserted); static void maybe_advance_forwarded_origin(XLogRecPtr end_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); /* Wrapper for latch for waiting for previous transaction to commit */ void @@ -449,8 +450,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); @@ -484,10 +485,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(); @@ -495,15 +496,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, @@ -566,6 +566,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. @@ -922,9 +923,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). */ @@ -1004,11 +1005,12 @@ handle_commit(StringInfo s) .prev_remote_ts = replorigin_session_origin_timestamp, .remote_commit_lsn = end_lsn, .received_lsn = end_lsn, + /* * Include remote_insert_lsn for WAL persistence. This was already * updated in shmem by UpdateWorkerStats() earlier (either from - * apply_work for protocol 5+, or from handle_commit for protocol 4). - * Without this, crash recovery would lose remote_insert_lsn. + * apply_work for protocol 5+, or from handle_commit for protocol + * 4). Without this, crash recovery would lose remote_insert_lsn. */ .remote_insert_lsn = MyApplyWorker->apply_group->progress.remote_insert_lsn, /* XXX: Could we use commit_ts value instead? */ @@ -1228,11 +1230,11 @@ log_insert_exception(bool failed, char *errmsg, SpockRelation *rel, SpockTupleData *oldtup, SpockTupleData *newtup, const char *action_name) { - RepOriginId local_origin = InvalidRepOriginId; - TimestampTz local_commit_ts = 0; - TransactionId xmin = InvalidTransactionId; - bool local_origin_found = false; - HeapTuple localtup; + 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; @@ -1310,8 +1312,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; @@ -1349,8 +1351,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 == @@ -1389,16 +1391,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, edata->message, rel, NULL, &newtup, "INSERT"); @@ -2528,10 +2531,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)", @@ -2949,9 +2952,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) @@ -3009,11 +3012,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) { @@ -3065,22 +3068,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) { @@ -3190,8 +3194,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; } @@ -3339,10 +3343,10 @@ apply_work(PGconn *streamConn) * we still need to ensure proper cleanup (e.g., disabling the * subscription). * - * Handle SUB_DISABLE mode for both cases: xact_had_exception means DML - * operations failed during exception handling, while use_try_block - * without xact_had_exception means an error occurred after successful - * retry (e.g., TRANSDISCARD throwing ERROR). + * Handle SUB_DISABLE mode for both cases: xact_had_exception means + * DML operations failed during exception handling, while + * use_try_block without xact_had_exception means an error occurred + * after successful retry (e.g., TRANSDISCARD throwing ERROR). * * Note: spock_disable_subscription() handles transaction management * internally, so no need to wrap it in StartTransactionCommand(). @@ -3367,9 +3371,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 @@ -3465,10 +3469,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; } @@ -3646,9 +3651,8 @@ spock_execute_sql_command(char *cmdstr, char *role, bool isTopLevel) /* * check if it's a DDL statement. we only do this for - * in_spock_replicate_ddl_command - * SECURITY LABEL command is not a DDL, just an utility one. Hence, let - * spock execute this command. + * in_spock_replicate_ddl_command SECURITY LABEL command is not a DDL, + * just an utility one. Hence, let spock execute this command. */ if (in_spock_replicate_ddl_command && GetCommandLogLevel(command->stmt) != LOGSTMT_DDL && @@ -3802,8 +3806,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; @@ -3993,8 +3997,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; @@ -4125,12 +4129,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); } @@ -4148,9 +4152,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)); @@ -4167,11 +4172,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); @@ -4295,10 +4300,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; @@ -4321,11 +4326,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); @@ -4335,8 +4340,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); @@ -4364,20 +4369,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 { @@ -4401,7 +4406,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 */ } } @@ -4457,7 +4462,7 @@ apply_replay_queue_start_replay(void) static void maybe_advance_forwarded_origin(XLogRecPtr end_lsn, bool xact_had_exception) { - RepOriginId forwarded_origin; + RepOriginId forwarded_origin; /* * Only advance for forwarded transactions (origin differs from our direct @@ -4470,8 +4475,8 @@ maybe_advance_forwarded_origin(XLogRecPtr end_lsn, bool xact_had_exception) return; /* - * Check cache first. The remote_origin_id (Spock node ID) is stable - * for a given source node, so we can reuse the local origin ID. + * Check cache first. The remote_origin_id (Spock node ID) is stable for a + * given source node, so we can reuse the local origin ID. */ if (remote_origin_id == cached_forward_remote_id && cached_forward_local_id != InvalidRepOriginId) diff --git a/src/spock_apply_heap.c b/src/spock_apply_heap.c index 46253d76..8a6c621f 100644 --- a/src/spock_apply_heap.c +++ b/src/spock_apply_heap.c @@ -541,20 +541,20 @@ build_delta_tuple(SpockRelation *rel, SpockTupleData *oldtup, } /* - * This shouldn't happen: creating delta_apply column we must check that - * NOT NULL constraint is set on this column or reject. But just to - * survive in case of a bug we complain and send the apply worker to - * exception behavior path way. + * This shouldn't happen: creating delta_apply column we must check + * that NOT NULL constraint is set on this column or reject. But just + * to survive in case of a bug we complain and send the apply worker + * to exception behavior path way. */ if (oldtup->nulls[remoteattnum] || newtup->nulls[remoteattnum]) ereport(ERROR, (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), - errmsg("delta apply column can't operate NULL values"), - errdetail("attribute %d for remote tuple is %s, and for the local tuple is %s", - remoteattnum + 1, - newtup->nulls[remoteattnum] ? "NULL" : "NOT NULL", - oldtup->nulls[remoteattnum] ? "NULL" : "NOT NULL" - ))); + errmsg("delta apply column can't operate NULL values"), + errdetail("attribute %d for remote tuple is %s, and for the local tuple is %s", + remoteattnum + 1, + newtup->nulls[remoteattnum] ? "NULL" : "NOT NULL", + oldtup->nulls[remoteattnum] ? "NULL" : "NOT NULL" + ))); loc_value = heap_getattr(TTS_TUP(localslot), remoteattnum + 1, tupdesc, &loc_isnull); @@ -629,8 +629,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, @@ -708,12 +709,12 @@ spock_handle_conflict_and_apply(SpockRelation *rel, EState *estate, PG_CATCH(); { /* - * 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) @@ -733,7 +734,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); @@ -976,8 +977,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) { @@ -987,11 +988,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 @@ -1000,6 +1005,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. @@ -1096,13 +1102,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]; @@ -1118,25 +1124,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 { @@ -1146,14 +1152,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. */ @@ -1191,4 +1197,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 cb4e37b3..e1ec390f 100644 --- a/src/spock_autoddl.c +++ b/src/spock_autoddl.c @@ -80,8 +80,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, @@ -121,14 +122,14 @@ spock_autoddl_process(PlannedStmt *pstmt, void add_ddl_to_repset(Node *parsetree) { - Relation targetrel; - SpockRepSet *repset; + Relation targetrel; + SpockRepSet *repset; SpockLocalNode *node; - Oid reloid = InvalidOid; - RangeVar *relation = NULL; - List *reloids = NIL; - ListCell *lc; - bool missing_ok = false; + Oid reloid = InvalidOid; + RangeVar *relation = NULL; + List *reloids = NIL; + ListCell *lc; + bool missing_ok = false; /* no need to proceed if spock_include_ddl_repset is off */ if (!spock_include_ddl_repset) @@ -223,10 +224,11 @@ add_ddl_to_repset(Node *parsetree) { targetrel = table_openrv_extended(relation, AccessShareLock, missing_ok); if (targetrel == NULL) - /* - * If relation doesn't exist - quietly exit. It is assumed that the core - * already produced an INFO message. - */ + + /* + * If relation doesn't exist - quietly exit. It is assumed that + * the core already produced an INFO message. + */ return; } diff --git a/src/spock_conflict.c b/src/spock_conflict.c index c9fb4f1e..832b3c37 100644 --- a/src/spock_conflict.c +++ b/src/spock_conflict.c @@ -372,13 +372,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; @@ -388,8 +391,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; @@ -420,9 +423,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; @@ -457,10 +460,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); @@ -542,17 +545,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, @@ -813,8 +816,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; @@ -893,9 +896,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, @@ -939,8 +942,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; @@ -952,14 +955,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(); { @@ -984,8 +987,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. @@ -1019,7 +1022,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 53e85de4..f70b8cc8 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 " @@ -280,7 +281,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 @@ -294,7 +295,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 @@ -303,7 +304,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 a53ca168..c83063a1 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 b5d4f51d..8643d371 100644 --- a/src/spock_executor.c +++ b/src/spock_executor.c @@ -239,7 +239,7 @@ spock_object_access(ObjectAccessType access, { Oid save_userid = 0; int save_sec_context = 0; - ObjectAddress object; + ObjectAddress object; if (next_object_access_hook) (*next_object_access_hook) (access, classId, objectId, subId, arg); @@ -312,14 +312,15 @@ spock_object_access(ObjectAccessType access, /* SECURITY LABEL related section (see delta_apply for more details) */ else if (access == OAT_POST_ALTER && subId > 0) { - char *label; + char *label; /* - * Something changes in the definition of the column. We have not enough - * data at the moment to check if the column will satisfy delta_apply - * type requirements. So, just warn and drop security label, if exists. - * TODO: the direction of further improvement is discovery of syscache - * or querying the table definition in attempt to identify the new type. + * Something changes in the definition of the column. We have not + * enough data at the moment to check if the column will satisfy + * delta_apply type requirements. So, just warn and drop security + * label, if exists. TODO: the direction of further improvement is + * discovery of syscache or querying the table definition in attempt + * to identify the new type. */ ObjectAddressSubSet(object, classId, objectId, subId); label = GetSecurityLabel(&object, "spock"); diff --git a/src/spock_failover_slots.c b/src/spock_failover_slots.c index 552e3745..e58b6d5c 100644 --- a/src/spock_failover_slots.c +++ b/src/spock_failover_slots.c @@ -565,11 +565,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) { @@ -600,10 +600,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; @@ -884,8 +884,8 @@ synchronize_one_slot(RemoteSlot *remote_slot) /* * ReplicationSlotsComputeRequiredXmin(true) asserts that BOTH - * ReplicationSlotControlLock (exclusive) and ProcArrayLock (exclusive) - * are held, in that order, to prevent deadlocks. + * ReplicationSlotControlLock (exclusive) and ProcArrayLock + * (exclusive) are held, in that order, to prevent deadlocks. */ LWLockAcquire(ReplicationSlotControlLock, LW_EXCLUSIVE); LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE); @@ -932,10 +932,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", @@ -1008,9 +1008,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') @@ -1120,18 +1122,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); @@ -1232,8 +1235,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 @@ -1261,14 +1264,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 @@ -1635,15 +1640,15 @@ 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. - * Spock's failover slot worker is not needed on PG18+. + * physical standbys via sync_replication_slots = on (slotsync worker) and + * provides synchronized_standby_slots for walsender hold-back. Spock's + * failover slot worker is not needed on PG18+. * * To enable slot synchronization on PG18, set in postgresql.conf: - * sync_replication_slots = on - * primary_conninfo = '...' + * sync_replication_slots = on primary_conninfo = '...' */ elog(LOG, "spock: skipping failover slot worker on PostgreSQL 18+ " "(use sync_replication_slots = on instead)"); diff --git a/src/spock_functions.c b/src/spock_functions.c index b4dea760..8c3482f4 100644 --- a/src/spock_functions.c +++ b/src/spock_functions.c @@ -961,7 +961,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, @@ -973,7 +973,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) @@ -984,7 +984,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, @@ -1014,7 +1014,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) @@ -1024,10 +1024,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 @@ -1140,7 +1140,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) { @@ -1184,10 +1184,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); @@ -2330,12 +2330,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: @@ -2343,9 +2343,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: @@ -2409,33 +2410,33 @@ spock_auto_replicate_ddl(const char *query, List *replication_sets, break; case T_ClusterStmt: - { - ClusterStmt *cstmt = (ClusterStmt *) stmt; - bool skip_cluster = true; - - if (cstmt->relation != NULL) { - Relation rel; - Oid tableOid; + ClusterStmt *cstmt = (ClusterStmt *) stmt; + bool skip_cluster = true; - /* - * 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(cstmt->relation, - AccessShareLock, 0, NULL, NULL); - rel = table_open(tableOid, NoLock); - skip_cluster = (rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE); - table_close(rel, AccessShareLock); - } + if (cstmt->relation != NULL) + { + Relation rel; + Oid tableOid; - if (skip_cluster) - goto skip_ddl; + /* + * 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(cstmt->relation, + AccessShareLock, 0, NULL, NULL); + rel = table_open(tableOid, NoLock); + skip_cluster = (rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE); + table_close(rel, AccessShareLock); + } - add_search_path = false; - } + if (skip_cluster) + goto skip_ddl; + + add_search_path = false; + } break; case T_AlterTableSpaceOptionsStmt: @@ -2463,22 +2464,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: @@ -2520,8 +2521,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, @@ -3204,8 +3205,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++) @@ -3240,12 +3241,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, @@ -3441,8 +3442,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); @@ -3478,16 +3479,16 @@ spock_pause_apply_workers(PG_FUNCTION_ARGS) 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). + * 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). * * Either state means the worker has committed its last transaction and * cannot apply new DML until the flag is cleared. */ while (waited_ms < max_wait_ms) { - bool all_paused = true; + bool all_paused = true; for (i = 0; i < SpockCtx->total_workers; i++) { @@ -3517,7 +3518,7 @@ spock_pause_apply_workers(PG_FUNCTION_ARGS) break; CHECK_FOR_INTERRUPTS(); - pg_usleep(1000); /* 1ms */ + pg_usleep(1000); /* 1ms */ waited_ms++; } @@ -3825,8 +3826,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 b3f8cb35..82be89b1 100644 --- a/src/spock_group.c +++ b/src/spock_group.c @@ -78,9 +78,9 @@ 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; @@ -320,8 +320,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)); @@ -332,12 +332,12 @@ spock_group_progress_update(const SpockApplyProgress *sap) /* * 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: - * 1. A bug in initialization ordering, or - * 2. Corruption of shared memory pointers + * shmem_startup_hook. If we hit this, it likely indicates: 1. A bug + * in initialization ordering, or 2. Corruption of shared memory + * pointers * - * We return false to allow callers to continue (best-effort recovery), - * but this progress update is lost. + * We return false to allow callers to continue (best-effort + * recovery), but this progress update is lost. * * TODO: Add a test case that deliberately calls this function before * shared memory initialization (e.g., from a backend that loads spock @@ -409,7 +409,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); @@ -421,6 +421,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. @@ -459,11 +460,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++; } @@ -479,17 +480,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) @@ -567,9 +567,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 @@ -624,18 +624,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. @@ -655,17 +656,16 @@ spock_checkpoint_hook(XLogRecPtr checkPointRedo, int flags) /* * Dump current progress state to resource.dat at every checkpoint. * - * resource.dat and WAL cooperate for crash recovery: - * - resource.dat seeds shmem with checkpoint-time values on restart - * - WAL replay (spock_rmgr_redo) advances any entries written after - * checkPointRedo + * resource.dat and WAL cooperate for crash recovery: - resource.dat seeds + * shmem with checkpoint-time values on restart - WAL replay + * (spock_rmgr_redo) advances any entries written after checkPointRedo * * Without dumping at regular checkpoints, a crash after a checkpoint * leaves resource.dat with values from the last clean shutdown. If apply - * workers were idle during the checkpoint interval (provider unreachable), - * no SPOCK_RMGR_APPLY_PROGRESS records exist after checkPointRedo to - * recover from either, causing spock.progress to show stale values or - * missing entries after crash recovery. + * workers were idle during the checkpoint interval (provider + * unreachable), no SPOCK_RMGR_APPLY_PROGRESS records exist after + * checkPointRedo to recover from either, causing spock.progress to show + * stale values or missing entries after crash recovery. */ spock_group_resource_dump(); } @@ -673,9 +673,9 @@ spock_checkpoint_hook(XLogRecPtr checkPointRedo, int flags) void spock_group_progress_update_list(List *lst) { - ListCell *lc; + ListCell *lc; - foreach (lc, lst) + foreach(lc, lst) { SpockApplyProgress *sap = (SpockApplyProgress *) lfirst(lc); @@ -693,8 +693,8 @@ spock_group_progress_update_list(List *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); } @@ -709,7 +709,7 @@ spock_group_progress_update_list(List *lst) void spock_group_progress_force_set_list(List *lst) { - ListCell *lc; + ListCell *lc; if (!SpockGroupHash || !SpockCtx) { @@ -718,11 +718,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); @@ -748,12 +748,12 @@ spock_group_progress_force_set_list(List *lst) { /* * Existing LSN >= resume_lsn. Unconditionally overwrite: the - * value from read_peer_progress is authoritative because - * it was captured at COPY snapshot time. The apply worker may - * have advanced past it since then, but any data it applied - * after the snapshot is NOT in the COPY — so the new node must - * replay from the snapshot boundary, not from the worker's - * current position. + * value from read_peer_progress is authoritative because it was + * captured at COPY snapshot time. The apply worker may have + * advanced past it since then, but any data it applied after the + * snapshot is NOT in the COPY — so the new node must replay + * from the snapshot boundary, not from the worker's current + * position. */ elog(LOG, "SPOCK: force-set %d->%d overwriting: existing=%X/%X -> resume_lsn=%X/%X", sap->key.remote_node_id, MySubscription->target->id, @@ -762,10 +762,16 @@ spock_group_progress_force_set_list(List *lst) } else { - /* Stale entry below resume_lsn; will be reset after WAL write succeeds. */ + /* + * Stale entry below resume_lsn; will be reset after WAL write + * succeeds. + */ } - /* WAL-log before shmem update; skipped above when existing LSN is higher. */ + /* + * WAL-log before shmem update; skipped above when existing LSN is + * higher. + */ spock_apply_progress_add_to_wal(sap); /* Now safe to mutate shmem: WAL write succeeded. */ diff --git a/src/spock_injection.c b/src/spock_injection.c index 2095a34e..01de21f4 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_node.c b/src/spock_node.c index 87112f9e..d4221ae3 100644 --- a/src/spock_node.c +++ b/src/spock_node.c @@ -122,13 +122,13 @@ const char *const skip_schema[] = { "lolor", "snowflake", "spock", - NULL /* sentinel */ + NULL /* sentinel */ }; const char *const skip_extension[] = { "lolor", "snowflake", "spock", - NULL /* sentinel */ + NULL /* sentinel */ }; /* @@ -1281,9 +1281,9 @@ get_node_subscriptions(Oid nodeid, bool origin) void EnsureRelationNotIgnored(Relation rel) { - int i; - char *nspname; - Oid extoid; + int i; + char *nspname; + Oid extoid; nspname = get_namespace_name(RelationGetNamespace(rel)); @@ -1308,9 +1308,8 @@ EnsureRelationNotIgnored(Relation rel) for (i = 0; skip_extension[i] != NULL; i++) { /* - * Detect if extension includes this relation. - * XXX: Should we check if the relation doesn't belong to the extension - * but depends on it? + * Detect if extension includes this relation. XXX: Should we check if + * the relation doesn't belong to the extension but depends on it? */ if (extoid != get_extension_oid(skip_extension[i], true)) continue; diff --git a/src/spock_output_plugin.c b/src/spock_output_plugin.c index ef0e6040..ff9927e1 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_proto_json.c b/src/spock_proto_json.c index b6baed0c..662852db 100644 --- a/src/spock_proto_json.c +++ b/src/spock_proto_json.c @@ -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 baa573c4..e0de018a 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 933f9605..1b0cfedc 100644 --- a/src/spock_readonly.c +++ b/src/spock_readonly.c @@ -69,15 +69,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. */ @@ -104,7 +104,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 182957e5..d80c9a64 100644 --- a/src/spock_relcache.c +++ b/src/spock_relcache.c @@ -85,9 +85,9 @@ spock_relation_open(uint32 remoteid, LOCKMODE lockmode) /* Need to update the local cache? */ if (!OidIsValid(entry->reloid)) { - RangeVar *rv = makeNode(RangeVar); - int i; - ResultRelInfo *relinfo; + RangeVar *rv = makeNode(RangeVar); + int i; + ResultRelInfo *relinfo; rv->schemaname = (char *) entry->nspname; rv->relname = (char *) entry->relname; @@ -98,9 +98,9 @@ spock_relation_open(uint32 remoteid, LOCKMODE lockmode) for (i = 0; i < entry->natts; i++) { - ObjectAddress object; - char *seclabel; - TupleDesc desc; + ObjectAddress object; + char *seclabel; + TupleDesc desc; desc = RelationGetDescr(entry->rel); entry->attmap[i] = tupdesc_get_att_by_name(desc, entry->attnames[i]); @@ -109,8 +109,8 @@ spock_relation_open(uint32 remoteid, LOCKMODE lockmode) continue; /* - * Read security labels for each attname. For each such an attribute - * choose corresponding delta function. + * Read security labels for each attname. For each such an + * attribute choose corresponding delta function. * * XXX: What about non-existing columns on remote side? */ @@ -120,8 +120,8 @@ spock_relation_open(uint32 remoteid, LOCKMODE lockmode) seclabel = GetSecurityLabel(&object, SPOCK_SECLABEL_PROVIDER); if (seclabel != NULL) { - Form_pg_attribute att; - Oid dfunc; + Form_pg_attribute att; + Oid dfunc; att = TupleDescAttr(desc, entry->attmap[i]); dfunc = spock_lookup_delta_function(seclabel, att->atttypid); @@ -149,11 +149,11 @@ spock_relation_open(uint32 remoteid, LOCKMODE lockmode) if (entry->has_delta_columns) { /* - * It looks like a hack — which, in fact, it is. - * We assume that delta_apply may be used for the DEFAULT identity - * only and will be immediately removed after altering the table. - * Also, if an ERROR happens here we will stay with an inconsistent - * value of the relreplident field. But it is just a cache ... + * It looks like a hack — which, in fact, it is. We assume that + * delta_apply may be used for the DEFAULT identity only and will + * be immediately removed after altering the table. Also, if an + * ERROR happens here we will stay with an inconsistent value of + * the relreplident field. But it is just a cache ... */ relinfo->ri_RelationDesc->rd_rel->relreplident = REPLICA_IDENTITY_DEFAULT; relinfo->ri_RelationDesc->rd_indexvalid = false; @@ -449,8 +449,8 @@ get_replication_identity(Relation rel) for (i = 0; i < tupDesc->natts; i++) { - char *seclabel; - ObjectAddress object; + char *seclabel; + ObjectAddress object; ObjectAddressSubSet(object, RelationRelationId, RelationGetRelid(rel), i + 1); diff --git a/src/spock_repset.c b/src/spock_repset.c index c3539dbf..4f4cfaea 100644 --- a/src/spock_repset.c +++ b/src/spock_repset.c @@ -1112,7 +1112,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)) @@ -1220,7 +1220,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 b2a9c0af..378892d5 100644 --- a/src/spock_rmgr.c +++ b/src/spock_rmgr.c @@ -84,7 +84,7 @@ spock_rmgr_redo(XLogReaderState *record) { case SPOCK_RMGR_APPLY_PROGRESS: { - SpockApplyProgress *rec; + SpockApplyProgress *rec; rec = (SpockApplyProgress *) XLogRecGetData(record); @@ -115,7 +115,7 @@ spock_rmgr_desc(StringInfo buf, XLogReaderState *record) { case SPOCK_RMGR_APPLY_PROGRESS: { - SpockApplyProgress *rec; + SpockApplyProgress *rec; rec = (SpockApplyProgress *) XLogRecGetData(record); appendStringInfo(buf, "spock apply progress for dbid %u, node_id %u, remote_node_id %u; " @@ -178,7 +178,7 @@ spock_rmgr_cleanup(void) XLogRecPtr spock_apply_progress_add_to_wal(const SpockApplyProgress *sap) { - XLogRecPtr lsn; + XLogRecPtr lsn; Assert(sap != NULL); @@ -187,8 +187,8 @@ spock_apply_progress_add_to_wal(const SpockApplyProgress *sap) lsn = XLogInsert(SPOCK_RMGR_ID, SPOCK_RMGR_APPLY_PROGRESS); /* - * Force the WAL record to disk immediately. This ensures that progress - * is durably recorded before we update the in-memory state and continue + * Force the WAL record to disk immediately. This ensures that progress is + * durably recorded before we update the in-memory state and continue * processing. If we crash after updating memory but before the WAL * flushes, we could lose progress tracking and replay would be incorrect. */ diff --git a/src/spock_shmem.c b/src/spock_shmem.c index f1602bc9..b955d166 100644 --- a/src/spock_shmem.c +++ b/src/spock_shmem.c @@ -55,8 +55,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; @@ -75,7 +75,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, @@ -130,14 +130,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 */ @@ -149,8 +148,8 @@ spock_shmem_startup(void) on_shmem_exit(spock_on_shmem_exit, (Datum) 0); /* - * 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 99a97aaa..427a6a30 100644 --- a/src/spock_sync.c +++ b/src/spock_sync.c @@ -170,9 +170,9 @@ get_pg_executable(char *cmdname, char *cmdbuf) static List * build_exclude_extension_string(void) { - List *lst = NIL; - char *arg; - int i; + List *lst = NIL; + char *arg; + int i; for (i = 0; skip_extension[i] != NULL; i++) { @@ -206,7 +206,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; @@ -240,7 +240,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); @@ -276,10 +276,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. */ } @@ -369,11 +369,11 @@ ensure_replication_slot_snapshot(PGconn *sql_conn, PGconn *repl_conn, * 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: - * CREATE_REPLICATION_SLOT "name" LOGICAL plugin (FAILOVER) + * CREATE_REPLICATION_SLOT "name" LOGICAL plugin (FAILOVER) * * We key off the regular SQL connection (sql_conn) for version detection. - * Replication protocol connections (repl_conn) return 0 from PQserverVersion() - * so they cannot be used for this check. + * Replication protocol connections (repl_conn) return 0 from + * PQserverVersion() so they cannot be used for this check. */ if (PQserverVersion(sql_conn) >= 170000) appendStringInfo(&query, " (FAILOVER)"); @@ -468,9 +468,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 @@ -527,6 +527,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 @@ -542,7 +543,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); @@ -581,9 +582,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; @@ -591,14 +592,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') " @@ -625,10 +630,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+. - * Use the regular SQL connection (conn) for version detection — replication + * Mark the slot with (FAILOVER) when the remote provider is PG17+. Use + * the regular SQL connection (conn) for version detection — replication * protocol connections (repl_conn) return 0 from PQserverVersion(). */ appendStringInfo(&query, "CREATE_REPLICATION_SLOT \"%s\" LOGICAL %s", @@ -664,7 +670,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); @@ -672,8 +678,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; " @@ -702,9 +708,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); @@ -712,28 +720,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); @@ -741,15 +749,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); @@ -769,9 +777,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) @@ -794,7 +802,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); @@ -853,8 +861,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) { @@ -1221,10 +1229,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); } @@ -1255,8 +1262,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); @@ -1466,20 +1473,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(); { @@ -1490,13 +1497,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); } @@ -1506,10 +1516,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)); @@ -1701,7 +1713,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); /* @@ -2057,12 +2072,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; } @@ -2597,7 +2611,7 @@ PglGetLastWin32Error(void) if (dw != ERROR_SUCCESS) { FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL); + NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) & lpMsgBuf, 0, NULL); pgstr = pstrdup((LPTSTR) lpMsgBuf); LocalFree(lpMsgBuf); } diff --git a/src/spock_worker.c b/src/spock_worker.c index 170db6e3..51902059 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(); @@ -779,9 +779,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, @@ -810,9 +810,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)); @@ -822,9 +822,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/README.md b/utils/pgindent/README.md index 958ab073..e770b34d 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 66c362ed..00000000 --- a/utils/pgindent/gen-typedefs.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -#curl https://buildfarm.postgresql.org/cgi-bin/typedefs.pl > typedefs.list - -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 - -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 00000000..07f28dbd --- /dev/null +++ b/utils/pgindent/run-pgindent.sh @@ -0,0 +1,80 @@ +#!/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. +# +# 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)" + +# 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" + +BUILDFARM_URL="https://buildfarm.postgresql.org/cgi-bin/typedefs.pl" +TYPEDEFS="$SCRIPT_DIR/typedefs.list" +TMPFILE=$(mktemp) + +trap 'rm -f "$TMPFILE" "$TMPFILE".* 2>/dev/null' EXIT + +# ------------------------------------------------------------------ +# 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 + +# ------------------------------------------------------------------ +# 2. Extract Spock-specific typedefs from source code +# ------------------------------------------------------------------ +echo "Extracting Spock typedefs from source..." +for keyword in "typedef struct" "typedef enum" "typedef union"; do + grep -rn "$keyword" "$SPOCK_ROOT" \ + --include="*.c" --include="*.h" \ + | grep -v "{" \ + | awk '{print $3}' >> "$TMPFILE" || true +done + +# ------------------------------------------------------------------ +# 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") 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 + +find "$SPOCK_ROOT" -type f \( -name "*.c" -o -name "*.h" \) \ + -print0 \ + | xargs -0 pgindent "${PGINDENT_ARGS[@]}" + +echo "Done." diff --git a/utils/pgindent/typedefs.list b/utils/pgindent/typedefs.list index fd3797cc..7a73008c 100644 --- a/utils/pgindent/typedefs.list +++ b/utils/pgindent/typedefs.list @@ -1,13 +1,81 @@ -ACCESS_ALLOWED_ACE -ACL -ACL_SIZE_INFORMATION -AFFIX -ASN1_INTEGER -ASN1_OBJECT -ASN1_OCTET_STRING -ASN1_STRING -ATAlterConstraint -AV +__m128i +__m512i +__mmask64 +_accessMethodInfo +_aggInfo +_archiveFormat +_archiveHandle +_archiveMode +_archiveOpts +_attrDefInfo +_avl_node +_avl_tree +_backslashResult +_castInfo +_catalogIdMapEntry +_cfgInfo +_collInfo +_connParams +_constraintInfo +_convInfo +_defaultACLInfo +_DestReceiver +_dictInfo +_dumpableAcl +_dumpableObject +_dumpableObjectWithAcl +_dumpOptions +_evttriggerInfo +_extensionInfo +_fdwInfo +_foreignServerInfo +_FuncCandidateList +_funcInfo +_indexAttachInfo +_IndexList +_indxInfo +_inhInfo +_internalPQconninfoOption +_loInfo +_MdfdVec +_namespaceInfo +_opclassInfo +_opfamilyInfo +_oprInfo +_PGpromptOAuthDevice +_pivot_field +_policyInfo +_PQconninfoOption +_PQprintOpt +_procLangInfo +_promptStatus +_prsInfo +_psqlSettings +_PublicationInfo +_PublicationRelInfo +_PublicationSchemaInfo +_relStatsInfo +_restoreOptions +_resultmap +_ruleInfo +_shellTypeInfo +_SPI_connection +_SPI_plan +_statsExtInfo +_stringlist +_SubRelInfo +_SubscriptionInfo +_tableAttachInfo +_tableDataInfo +_tableInfo +_teSection +_tmplInfo +_tocEntry +_transformInfo +_triggerInfo +_typeInfo +_variable +"typedef A_ArrayExpr A_Const A_Expr @@ -16,6 +84,7 @@ A_Indices A_Indirection A_Star AbsoluteTime +access_vector_t AccessMethodInfo AccessPriv Acl @@ -23,56 +92,72 @@ AclItem AclMaskHow AclMode AclResult +acquireLocksOnSubLinks_context AcquireSampleRowsFunc +ActionErrCallbackArg ActionList ActiveSnapshotElt +add_nulling_relids_context +addFkConstraintSides AddForeignUpdateTargets_function AddrInfo +adjust_appendrel_attrs_context +aff_struct +AFFIX AffixNode AffixNodeData AfterTriggerEvent AfterTriggerEventChunk AfterTriggerEventData +AfterTriggerEventDataNoOids +AfterTriggerEventDataOneCtid +AfterTriggerEventDataZeroCtids 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 +AllocBlockData AllocFreeListLink +allocfunc AllocPointer AllocSet AllocSetContext AllocSetFreeList -AllocateDesc -AllocateDescKind AlterCollationStmt AlterDatabaseRefreshCollStmt AlterDatabaseSetStmt AlterDatabaseStmt AlterDefaultPrivilegesStmt AlterDomainStmt -AlterDomainType +AlteredTableInfo AlterEnumStmt AlterEventTrigStmt AlterExtensionContentsStmt @@ -80,10 +165,11 @@ AlterExtensionStmt AlterFdwStmt AlterForeignServerStmt AlterFunctionStmt +AlternativeSubPlan AlterObjectDependsStmt AlterObjectSchemaStmt -AlterOpFamilyStmt AlterOperatorStmt +AlterOpFamilyStmt AlterOwnerStmt AlterPolicyStmt AlterPublicationAction @@ -96,9 +182,6 @@ AlterStatsStmt AlterSubscriptionStmt AlterSubscriptionType AlterSystemStmt -AlterTSConfigType -AlterTSConfigurationStmt -AlterTSDictionaryStmt AlterTableCmd AlterTableMoveAllStmt AlterTablePass @@ -106,12 +189,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 +233,10 @@ AppendPath AppendRelInfo AppendState ApplyErrorCallbackArg +ApplyExecState ApplyExecutionData +ApplyMIState +ApplyReplayEntryData ApplySubXactData Archive ArchiveCheckConfiguredCB @@ -136,11 +249,13 @@ ArchiveModuleCallbacks ArchiveModuleInit ArchiveModuleState ArchiveOpts +ArchiverOutput +ArchiverStage ArchiveShutdownCB ArchiveStartupCB ArchiveStreamState -ArchiverOutput -ArchiverStage +array_iter +array_unnest_fctx ArrayAnalyzeExtraData ArrayBuildState ArrayBuildStateAny @@ -151,91 +266,67 @@ ArrayExpr ArrayExprIterState ArrayIOData ArrayIterator +ArrayIteratorData ArrayMapState ArrayMetaState +ArrayParseState 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 -BY_HANDLE_FILE_INFORMATION -BackendParameters +AuxProcType +AV +av_relation +avc_cache +avl_dbase +avl_node +avl_tree +avw_dbase +Backend +BackendId BackendStartupData BackendState BackendType @@ -244,30 +335,73 @@ 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 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 BitmapHeapPath BitmapHeapScan BitmapHeapScanDesc +BitmapHeapScanDescData BitmapHeapScanInstrumentation BitmapHeapScanState BitmapIndexScan @@ -276,13 +410,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 @@ -292,9 +436,8 @@ BlockRefTableSerializedEntry BlockRefTableWriter BlockSampler BlockSamplerData -BlockedProcData -BlockedProcsData BlocktableEntry +bloom_filter BloomBuildState BloomFilter BloomMetaPageData @@ -307,13 +450,21 @@ BloomScanOpaqueData BloomSignatureWord BloomState BloomTuple +BMS_Comparison +BMS_Membership +BN_CTX BoolAggState +Boolean +BooleanTest BoolExpr BoolExprType +boolkey +boolKEY BoolTestType -Boolean -BooleanTest +BOX BpChar +brin_column_state +brin_serialize_callback_type BrinBuildState BrinDesc BrinInsertState @@ -330,62 +481,84 @@ BrinSpecialSpace BrinStatsData BrinTuple BrinValues +BTArrayKeyInfo +BTBuildState +BTCallbackState +BTCycleId +BTDedupInterval +BTDedupState +BTDedupStateData +BTDeletedPageData +BTIndexStat +BTInsertState +BTInsertStateData +BTLeader +BTMetaPageData +BTOneVacInfo +BTOptions +BTPageOpaque +BTPageOpaqueData +BTPageStat +BTPageState +BTParallelScanDesc +BTParallelScanDescData +BTPendingFSM +BTPS_State +BTReadPageState BtreeCheckState BtreeLastVisibleEntry BtreeLevel -Bucket -BufFile -Buffer -BufferAccessStrategy -BufferAccessStrategyType -BufferCacheNumaContext -BufferCacheNumaRec -BufferCacheOsPagesContext -BufferCacheOsPagesRec -BufferCachePagesContext -BufferCachePagesRec -BufferDesc -BufferDescPadded -BufferHeapTupleTableSlot +BTScanInsert +BTScanInsertData +BTScanKeyPreproc +BTScanOpaque +BTScanOpaqueData +BTScanPos +BTScanPosData +BTScanPosItem +BTShared +BTSortArrayContext +BTSpool +BTStack +BTStackData +BTVacInfo +BTVacState +BTVacuumPosting +BTVacuumPostingData +BTWriteState +Bucket +BUF_MEM +Buffer +BufferAccessStrategy +BufferAccessStrategyData +BufferAccessStrategyType +BufferCacheNumaContext +BufferCacheNumaRec +BufferCachePagesContext +BufferCachePagesRec +BufferDesc +BufferDescPadded +BufferHeapTupleTableSlot BufferLookupEnt BufferManagerRelation BufferStrategyControl BufferTag BufferUsage +BufFile +buftag BuildAccumulator +BuiltinCryptoOptions BuiltinScript +BuiltinTrancheIds BulkInsertState BulkInsertStateData BulkWriteBuffer BulkWriteState BumpBlock BumpContext -CACHESIGN +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 @@ -394,32 +567,60 @@ 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 +CatCache +catcacheheader +CatCacheHeader +CatCInProgress +catclist +CatCList +catctup +CatCTup +cb_cleanup_dir +cb_options +cb_tablespace +cb_tablespace_mapping +CCFastEqualFN +CCHashFN +CEOUC_WAIT_MODE +CFuncHashTabEntry 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 CheckPoint -CheckPointStmt -CheckpointStatsData +CHECKPOINT CheckpointerRequest CheckpointerShmemStruct +CheckpointStatsData +CheckPointStmt +child_process_kind +CHKVAL +chr Chromosome +CIRCLE +City CkptSortItem CkptTsStatus ClientAuthentication_hook_type @@ -437,23 +638,31 @@ ClusterInfo ClusterParams ClusterStmt CmdType +CMPDAffix +cmpEntriesArg CoalesceExpr +codes_t CoerceParamHook CoerceToDomain CoerceToDomainValue CoerceViaIO +CoercionCodes CoercionContext CoercionForm +CoercionMethod CoercionPathType CollAliasData -CollInfo -CollParam CollateClause CollateExpr CollateStrength +collation_cache_entry +collation_cache_hash CollectedATSubcmd CollectedCommand CollectedCommandType +CollInfo +color +colormaprange ColorTrgm ColorTrgmInfo ColumnCompareData @@ -478,9 +687,11 @@ CommitTimestampShared CommonEntry CommonTableExpr CompactAttribute +compare_context CompareScalarsContext CompareType CompiledExprState +Complex CompositeIOData CompositeTypeStmt CompoundAffixFlag @@ -488,61 +699,90 @@ CompressFileHandle CompressionLocation CompressorState ComputeXidHorizonsResult +ConditionalStack +ConditionalStackData ConditionVariable ConditionVariableMinimallyPadded -ConditionalStack +config_generic +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 +contains ControlData ControlFileData -ConvInfo -ConvProcInfo ConversionLocation +convert_testexpr_context ConvertRowtypeExpr +ConvInfo +ConvProcInfo CookedConstraint +COP +copy_data_dest_cb +copy_data_source_cb CopyDest CopyFormatOptions CopyFromRoutine CopyFromState CopyFromStateData +CopyHeaderChoice CopyInsertMethod CopyLogVerbosityChoice 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 +cpp +create_upper_paths_hook_type CreateAmStmt CreateCastStmt CreateConversionStmt +createdb_failure_params CreateDBRelInfo +CreatedbStmt CreateDBStrategy CreateDomainStmt CreateEnumStmt @@ -573,95 +813,131 @@ CreateTableSpaceStmt CreateTransformStmt CreateTrigStmt CreateUserMappingStmt -CreatedbStmt -CredHandle +crosstab_cat_desc +crosstab_hashent +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 CustomPath +CustomPathMethods 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 -DWORD +DatabaseInfo DataDirSyncMethod DataDumperPtr DataPageDeleteStack +datapagemap +datapagemap_iterator +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 +destructor +dev_t +DH DictInt +DictISpell DictSimple DictSnowball DictSubState DictSyn DictThesaurus +digit DimensionInfo +DIR DirectoryMethodData DirectoryMethodFile DisableTimeoutParams +disassembledLeaf DiscardMode DiscardStmt DispatchOption DistanceValue +DistinctColInfo DistinctExpr -DoState -DoStmt +dlist_head +dlist_iter +dlist_mutable_iter +dlist_node +dm_letter +dm_node DocRepresentation DomainConstraintCache DomainConstraintRef DomainConstraintState DomainConstraintType DomainIOData +DoState +DoStmt +DR_copy +DR_intorel +DR_printtup +DR_sqlfunction +DR_transientrel DropBehavior +DropdbStmt DropOwnedStmt DropReplicationSlotCmd DropRoleStmt @@ -669,36 +945,64 @@ 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 +DummyAmEnum +DummyIndexOptions DumpableAcl DumpableObject DumpableObjectType DumpableObjectWithAcl +DumpComponents +DumpCtx +DumpId +DumpOptions +DumpSignalInformation DynamicFileList DynamicZoneAbbrev -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 +ean13 +eary +EC_KEY +ec_matches_callback_type +ec_member_foreign_arg +ec_member_matches_arg +ECDerivesEntry +ECDerivesKey Edge +EDGE EditableObjectType ElementsState +eLogType +emit_log_hook_type EnableTimeoutParams EndDataPtrType EndDirectModify_function @@ -709,21 +1013,30 @@ EndLOPtrType EndLOsPtrType EndOfWalRecoveryInfo EndSampleScan_function +ENGINE +enum 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 @@ -731,6 +1044,11 @@ EventTriggerData EventTriggerEvent EventTriggerInfo EventTriggerQueryState +EVP_CIPHER +EVP_CIPHER_CTX +EVP_MD +EVP_MD_CTX +EVP_PKEY ExceptionLabelMap ExceptionMap ExecAuxRowMark @@ -751,17 +1069,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 @@ -776,8 +1100,8 @@ ExplainWorkersState ExportedSnapshot Expr ExprContext -ExprContextCallbackFunction ExprContext_CB +ExprContextCallbackFunction ExprDoneCond ExprEvalOp ExprEvalOpLookup @@ -786,60 +1110,93 @@ ExprEvalStep ExprSetupInfo ExprState ExprStateEvalFunc +ExtendBufferedFlags ExtensibleNode ExtensibleNodeEntry ExtensibleNodeMethods ExtensionControlFile ExtensionInfo +ExtensionSiblingCache ExtensionVersionInfo -FDWCollateState -FD_SET -FILE -FILETIME -FPI -FSMAddress -FSMPage -FSMPageData +f_smgr +FailoverSlotFilter +FailoverSlotFilterKey FakeRelCacheEntry FakeRelCacheEntryData +fasthash_state 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 +FileCopyMethod 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 -First +fireRIRonSubLink_context +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 +float4KEY +float8 +float8key +float8KEY +floating_decimal_32 +floating_decimal_64 FlushPosition +fmAggrefPtr +fmExprContextCallbackFunction +fmgr_hook_type FmgrBuiltin FmgrHookEventType FmgrInfo +fmNodePtr +fmStringInfo ForBothCellState ForBothState ForEachState -ForFiveState -ForFourState -ForThreeState +foreign_glob_cxt +foreign_loc_cxt ForeignAsyncConfigureWait_function ForeignAsyncNotify_function ForeignAsyncRequest_function @@ -853,66 +1210,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 @@ -972,7 +1272,69 @@ Form_pg_ts_template Form_pg_type Form_pg_user_mapping FormatNode +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 FreeBlockNumberArray +freefunc FreeListData FreePageBtree FreePageBtreeHeader @@ -981,9 +1343,12 @@ FreePageBtreeLeafKey FreePageBtreeSearchResult FreePageManager FreePageSpanLeader -From FromCharDateMode FromExpr +fsec_t +FSMAddress +FSMPage +FSMPageData FullTransactionId FuncCall FuncCallContext @@ -1000,50 +1365,38 @@ 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 -GeneratePruningStepsContext -GenerationBlock -GenerationContext +GENERAL_NAME +generate_series_fctx +generate_series_numeric_fctx +generate_series_timestamp_fctx +generate_series_timestamptz_fctx +generate_subscripts_fctx +GeneratePruningStepsContext +GenerationBlock +GenerationContext GenerationPointer 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 @@ -1052,7 +1405,8 @@ GetForeignRelSize_function GetForeignRowMarkType_function GetForeignUpperPaths_function GetState -GiSTOptions +gid_t +gin_leafpage_items_state GinBtree GinBtreeData GinBtreeDataLeafInsertData @@ -1076,6 +1430,7 @@ GinPostingList GinPostingTreeScanItem GinQualCounts GinScanEntry +GinScanEntryData GinScanItem GinScanKey GinScanKeyData @@ -1088,44 +1443,99 @@ 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 +GlobalTransactionData GlobalVisHorizonKind GlobalVisState +GMReaderTupleBuffer GrantRoleOptions GrantRoleStmt GrantStmt GrantTargetType Group +GroupByColInfo GroupByOrdering GroupClause -GroupPath -GroupPathExtraData -GroupResultPath -GroupState -GroupVarInfo -GroupingExprInfo +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 +guc_stack GucAction GucBoolAssignHook GucBoolCheckHook GucContext GucEnumAssignHook GucEnumCheckHook +GUCHashEntry GucIntAssignHook GucIntCheckHook GucRealAssignHook @@ -1136,37 +1546,23 @@ GucStack GucStackState GucStringAssignHook GucStringCheckHook +GV +gzFile GzipCompressorState -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 +HASH_SEQ_STATUS +HASHACTION HashAggBatch HashAggSpill HashAllocFunc +HASHBUCKET HashBuildState HashCompareFunc HashCopyFunc +HASHCTL +HASHELEMENT +hashfunc +HASHHDR HashIndexStat HashInstrumentation HashJoin @@ -1174,7 +1570,9 @@ HashJoinState HashJoinTable HashJoinTableData HashJoinTuple +HashJoinTupleData HashMemoryChunk +HashMemoryChunkData HashMetaPage HashMetaPageData HashOptions @@ -1186,13 +1584,18 @@ HashScanOpaque HashScanOpaqueData HashScanPosData HashScanPosItem +HASHSEGMENT HashSkewBucket HashState HashValueFunc +having_collation_ctx HbaLine +hbaPort +HE HeadlineJsonState HeadlineParsedText HeadlineWordEntry +heap_page_items_state HeapCheckContext HeapCheckReadStreamData HeapPageFreeze @@ -1206,36 +1609,40 @@ HeapTupleFreeze HeapTupleHeader HeapTupleHeaderData HeapTupleTableSlot +help_handler +HEntry +HIST_ENTRY HistControl +hlCheck +HMAC_CTX +HOldEntry 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 -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 @@ -1243,12 +1650,14 @@ IncrementalSortGroupInfo IncrementalSortInfo IncrementalSortPath IncrementalSortState +IncrementVarSublevelsUp_context Index IndexAMProperty IndexAmRoutine IndexArrayKeyInfo IndexAttachInfo IndexAttrBitmapKind +IndexAttributeBitMapData IndexBuildCallback IndexBuildResult IndexBulkDeleteCallback @@ -1258,6 +1667,7 @@ IndexClauseSet IndexDeleteCounts IndexDeletePrefetchState IndexDoCheckCallback +indexed_tlist IndexElem IndexFetchHeapData IndexFetchTableData @@ -1271,6 +1681,7 @@ IndexPath IndexRuntimeKeyInfo IndexScan IndexScanDesc +IndexScanDescData IndexScanInstrumentation IndexScanState IndexStateFlagsAction @@ -1280,63 +1691,109 @@ IndexTupleData IndexUniqueCheck IndexVacuumInfo IndxInfo +inet +inet_struct +inetkey +inetKEY InferClause InferenceElem +INFIX InfoItem InhInfo -InheritableSocket -InitSampleScan_function InitializeDSMForeignScan_function InitializeWorkerForeignScan_function -InjIoErrorState +InitPrivsType +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 +InProgressEnt +InProgressIO +inquiry InsertStmt +instr_time Instrumentation +InstrumentOption +int128 +INT128 Int128AggState +int16 +int16_t +int16key +int16KEY +int2vector +int32 +int32_t +int32key +int32KEY +int64 +int64_t +int64key +int64KEY +int8 +int8_t Int8TransTypeData -IntRBTreeNode Integer IntegerSet InternalDefaultACL InternalGrant +internalPQconninfoOption Interval IntervalAggState IntoClause -InvalMessageArray +intptr_t +IntRBTreeNode +intset_internal_node +intset_leaf_node +intset_node +intvKEY InvalidationInfo InvalidationMsgsGroup +InvalMessageArray +IO +io_callback_fn +io_stat_col +IOContext +IOFuncSelector +IoMethod IoMethodOps +IOObject +IOOp IpcMemoryId IpcMemoryKey IpcMemoryState -IpcSemaphoreId -IpcSemaphoreKey +IPCompareMethod 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 @@ -1345,6 +1802,7 @@ JitProviderInit JitProviderReleaseContextCB JitProviderResetAfterErrorCB Join +join_search_hook_type JoinCostWorkspace JoinDomain JoinExpr @@ -1355,16 +1813,38 @@ 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_perfile_callback +json_manifest_perwalrange_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 @@ -1433,6 +1913,7 @@ JsonTablePlan JsonTablePlanRowSource JsonTablePlanState JsonTableSiblingJoin +JsonToIndex JsonTokenType JsonTransformStringValuesAction JsonTypeCategory @@ -1446,106 +1927,32 @@ 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 -LARGE_INTEGER +LabelProvider +LagTracker +LargeObjectDesc +Latch +LauncherLastStartTimesEntry +lclContext +lclTocEntry LDAP +LDAP_TIMEVAL LDAPMessage LDAPURLDesc -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 -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 -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 +leaf_item +leafSegmentInfo LerpFunc LexDescr LexemeEntry @@ -1553,46 +1960,69 @@ LexemeHashKey LexemeInfo LexemeKey LexizeData +libpq_gettext_func +libpq_source LibraryInfo Limit LimitOption LimitPath LimitState LimitStateCond +LINE +line_t List +list_sort_comparator ListCell ListDictionary -ListParsedLex ListenAction ListenActionKind ListenStmt -LoInfo +ListParsedLex +LLVMJitContext +LLVMJitHandle 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 -Location +locate_agg_of_level_context +locate_var_of_level_context +locate_windowfunc_context 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 +LogConnectionOption LogicalDecodeBeginCB LogicalDecodeBeginPrepareCB LogicalDecodeChangeCB @@ -1627,11 +2057,10 @@ LogicalRepCtxStruct LogicalRepMsgType LogicalRepPartMapEntry LogicalRepPreparedTxnData +LogicalRepRelation LogicalRepRelId LogicalRepRelMapEntry -LogicalRepRelation LogicalRepRollbackPreparedTxnData -LogicalRepSequenceInfo LogicalRepStreamAbortData LogicalRepTupleData LogicalRepTyp @@ -1642,37 +2071,74 @@ LogicalSlotInfo LogicalSlotInfoArr LogicalTape LogicalTapeSet -LookupSet +LogOpts +LogStmtLevel +logstreamer_param +LoInfo +LOOP +lquery +lquery_level +lquery_variant +LSEG LsnReadQueue LsnReadQueueNextFun LsnReadQueueNextStatus +ltree +ltree_gist +ltree_level LtreeGistOptions LtreeSignature +ltxtquery +LVPagePruneState +LVRelState +LVSavedErrInfo +LWLock +lwlock_stats +lwlock_stats_key +LWLockHandle +LWLockMode +LWLockPadded +LWLockWaitState +LZ4F_compressionContext_t +LZ4F_decompressionContext_t +LZ4F_decompressOptions_t +LZ4F_errorCode_t +LZ4F_preferences_t +LZ4State +mac8KEY +macaddr +macaddr_sortsupport_state +macaddr8 +macKEY MAGIC -MBuf -MCVHashContext -MCVHashEntry -MCVHashTable_hash -MCVItem -MCVList -MEMORY_BASIC_INFORMATION -MGVTBL -MINIDUMPWRITEDUMP -MINIDUMP_TYPE -MJEvalResult -MTTargetRelLookup -MVDependencies -MVDependency -MVNDistinct -MVNDistinctItem +manifest_data +manifest_file +manifest_files_hash +manifest_files_iterator +manifest_option +manifest_wal_range +manifest_writer ManyTestResource ManyTestResourceKind +map_variable_attnos_context Material MaterialPath MaterialState -MdPathStr +max_parallel_hazard_context +mb2wchar_with_len_converter +mbchar_verifier +mbcharacter_incrementer +mbdisplaylen_converter +mblen_converter +mbstr_verifier +MBuf +MCVItem +MCVList MdfdVec +MdPathStr Memoize +memoize_hash +memoize_iterator MemoizeEntry MemoizeInstrumentation MemoizeKey @@ -1696,6 +2162,7 @@ MergeAppendPath MergeAppendState MergeJoin MergeJoinClause +MergeJoinClauseData MergeJoinState MergeMatchKind MergePath @@ -1704,24 +2171,38 @@ 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 @@ -1729,69 +2210,77 @@ MultiXactMember MultiXactOffset MultiXactStateData MultiXactStatus -MultirangeIOData -MultirangeParseState -MultirangeType -NDBOX -NLSVERSIONINFOEX -NODE -NTSTATUS -NUMCacheEntry -NUMDesc -NUMProc -NV +MVDependencies +MVDependency +MVNDistinct +MVNDistinctItem +mxact +mXactCacheEnt +mxtruncinfo +mynulltype +mytype Name -NameData -NameHashEntry NamedArgExpr -NamedDSAState -NamedDSHState -NamedDSMState +nameData +NameData +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 +NodeInterfaceTuple +nodeitem NodeTag +NodeTuple NonEmptyRange -NoneCompressorState +normal_rand_fctx +Note: Notification +NotificationHash NotificationList NotifyStmt -NotnullHashEntry +nsphash_hash Nsrt NtDllRoutine -NtFlushBuffersFileEx_t +ntile_context +NullableDatum NullIfExpr +nullingrel_info +NullingRelsMatch NullTest NullTestType -NullableDatum -NullingRelsMatch +NUMCacheEntry +NUMDesc +numeric Numeric NumericAggState +NumericData 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 @@ -1799,271 +2288,93 @@ ObjectAccessPostCreate ObjectAccessType ObjectAddress ObjectAddressAndFlags +ObjectAddresses ObjectAddressExtra ObjectAddressStack -ObjectAddresses +ObjectClass ObjectPropertyType ObjectType ObjectWithArgs +off_t Offset OffsetNumber OffsetVarNodes_context Oid +oidKEY OidOptions +oidvector OkeysState +OldSnapshotControlData +OldSnapshotTimeMapping OldToNewMapping OldToNewMappingData +OM_uint32 +on_dsm_detach_callback +on_exit_nicely_callback OnCommitAction OnCommitItem OnConflictAction OnConflictClause OnConflictExpr OnConflictSetState +OP +OpBtreeInterpretation +opclasscacheent 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 OuterJoinClauseInfo +output_type OutputPluginCallbacks OutputPluginOptions OutputPluginOutputType +OutputPluginParam +OutputPluginParamKey +overexplain_options +OverrideSearchPath +OverrideStackEntry 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 ParallelApplyWorkerShared ParallelBitmapHeapState ParallelBlockTableScanDesc +ParallelBlockTableScanDescData ParallelBlockTableScanWorker ParallelBlockTableScanWorkerData ParallelCompletionPtr @@ -2074,6 +2385,8 @@ ParallelHashJoinBatch ParallelHashJoinBatchAccessor ParallelHashJoinState ParallelIndexScanDesc +ParallelIndexScanDescData +ParallelReadyList ParallelSlot ParallelSlotArray ParallelSlotResultHandler @@ -2091,27 +2404,31 @@ ParamExternData ParamFetchHook ParamKind ParamListInfo +ParamListInfoData ParamPathInfo ParamRef ParamsErrorCbData ParentMapEntry +parse_error_callback_arg ParseCallbackState +ParsedLex +ParsedScript +ParsedText +ParsedWord ParseExprKind ParseLoc ParseNamespaceColumn ParseNamespaceItem ParseParamRefHook -ParseState -ParsedLex -ParsedScript -ParsedText -ParsedWord +parser_context ParserSetupHook ParserState +ParseState PartClauseInfo PartClauseMatchStatus PartClauseTarget PartialFileSetState +partition_method_t PartitionBoundInfo PartitionBoundInfoData PartitionBoundSpec @@ -2119,11 +2436,16 @@ PartitionCmd PartitionDesc PartitionDescData PartitionDirectory +PartitionDirectoryData PartitionDirectoryEntry PartitionDispatch +PartitionDispatchData +PartitionedRelPruneInfo +PartitionedRelPruningData PartitionElem PartitionHashBound PartitionKey +PartitionKeyData PartitionListValue PartitionMap PartitionPruneCombineOp @@ -2138,100 +2460,240 @@ PartitionRangeBound PartitionRangeDatum PartitionRangeDatumKind PartitionScheme +PartitionSchemeData PartitionSpec PartitionStrategy PartitionTupleRouting -PartitionedRelPruneInfo -PartitionedRelPruningData PartitionwiseAggregateType PasswordType Path +PATH PathClauseUsage PathCostComparison PathHashStack PathKey PathKeysComparison PathTarget -PatternInfo -PatternInfoArray Pattern_Prefix_Status Pattern_Type +PatternInfo +PatternInfoArray +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 -Permutation -PermutationStep -PermutationStepBlocker -PermutationStepBlockerType -PgAioBackend -PgAioCtl -PgAioHandle -PgAioHandleCallbackComplete -PgAioHandleCallbackID -PgAioHandleCallbackReport -PgAioHandleCallbackStage -PgAioHandleCallbacks -PgAioHandleCallbacksEntry -PgAioHandleFlags -PgAioHandleState -PgAioOp -PgAioOpData -PgAioResult -PgAioResultStatus -PgAioReturn -PgAioTargetData -PgAioTargetID -PgAioTargetInfo -PgAioUringCaps -PgAioUringContext -PgAioWaitRef -PgAioWorkerControl -PgAioWorkerSlot -PgAioWorkerSubmissionQueue -PgArchData -PgBackendGSSStatus -PgBackendSSLStatus -PgBackendStatus -PgBenchExpr -PgBenchExprLink -PgBenchExprList -PgBenchExprType -PgBenchFunction -PgBenchValue -PgBenchValueType -PgChecksumMode -PgFdwAnalyzeState -PgFdwConnState -PgFdwDirectModifyState -PgFdwModifyState -PgFdwOption -PgFdwPathExtraData -PgFdwRelationInfo -PgFdwSamplingMethod -PgFdwScanState -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 +PERL_SI +PerlInterpreter +PerLockTagEntry +PFN +Pg_abi_values +pg_atomic_flag +pg_atomic_uint32 +pg_atomic_uint64 +pg_attribute_aligned +pg_attribute_aligned(8) +pg_be_sasl_mech +pg_cancel +pg_cancel_conn +pg_case_map +pg_category_range +pg_checksum_context +pg_checksum_raw_context +pg_checksum_type +pg_compress_algorithm +pg_compress_specification +pg_conn +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_struct +pg_locale_t +PG_Lock_Status +Pg_magic_struct +pg_mb_radix_tree +pg_on_exit_callback +pg_prng_state +pg_pthread_barrier +pg_re_flags +pg_regex_t +pg_regmatch_t +pg_regoff_t +pg_result +pg_saslprep_rc +pg_sha256_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_wc_probefunc +pg_wchar +pg_wchar_tbl +PgAioBackend +PgAioCtl +PgAioHandle +PgAioHandleCallbackComplete +PgAioHandleCallbackID +PgAioHandleCallbackReport +PgAioHandleCallbacks +PgAioHandleCallbacksEntry +PgAioHandleCallbackStage +PgAioHandleFlags +PgAioHandleState +PgAioOp +PgAioOpData +PgAioResult +PgAioResultStatus +PgAioReturn +PgAioTargetData +PgAioTargetID +PgAioTargetInfo +PgAioUringCaps +PgAioUringContext +PgAioWaitRef +PgAioWorkerControl +PgAioWorkerSlot +PgAioWorkerSubmissionQueue +PGAlignedBlock +PGAlignedXLogBlock +PgArchData +PGAsyncStatusType +PGauthData +PgBackendGSSStatus +PgBackendSSLStatus +PgBackendStatus +PgBenchExpr +PgBenchExprLink +PgBenchExprList +PgBenchExprType +PgBenchFunction +PgBenchValue +PgBenchValueType +PGCALL2 +PGcancel +PGcancelConn +PGChecksummablePage +PgChecksumMode +PGcmdQueueEntry +PGconn +PGContextVisibility +PGCRYPTO_SHA_t +pgDataValue +PGdataValue +PGEvent +PGEventConnDestroy +PGEventConnReset +PGEventId +PGEventProc +PGEventRegister +PGEventResultCopy +PGEventResultCreate +PGEventResultDestroy +PgFdwAnalyzeState +PgFdwConnState +PgFdwDirectModifyState +PgFdwModifyState +PgFdwOption +PgFdwPathExtraData +PgFdwRelationInfo +PgFdwSamplingMethod +PgFdwScanState +PGFileType +PGFInfoFunction +PGFunction +PgIfAddrCallback +PGIOAlignedBlock +PGLoadBalanceType +pgLobjfuncs +PGlobjfuncs +PGLZ_HistEntry +PGLZ_Strategy +pgMessageField +PGMessageField +PGModuleMagicFunction +PGNoticeHooks +pgNotify +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 +PGresAttDesc +pgresAttValue +PGresAttValue +pgresParamDesc +PGresParamDesc +PGresult +pgresult_data +PGresult_data +PGRUsage +PGSemaphore +PGSemaphoreData +PGShmemHeader +pgsocket +pgsql_thing_t +pgssEntry +pgssGlobalStats +pgssHashKey +pgssSharedState +pgssStoreKind +pgssVersion PgStat_ArchiverStats PgStat_Backend PgStat_BackendPending @@ -2240,6 +2702,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 @@ -2247,13 +2711,17 @@ PgStat_FunctionCallUsage PgStat_FunctionCounts PgStat_HashKey PgStat_IO +PgStat_Kind PgStat_KindInfo PgStat_LocalState +pgstat_page PgStat_PendingDroppedStatsItem PgStat_PendingIO -PgStat_SLRUStats +PgStat_PendingWalStats PgStat_ShmemControl +PgStat_SLRUStats PgStat_Snapshot +pgstat_snapshot_hash PgStat_SnapshotEntry PgStat_StatDBEntry PgStat_StatFuncEntry @@ -2268,66 +2736,252 @@ 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 PipeProtoChunk PipeProtoHeader +pivot_field PlaceHolderInfo PlaceHolderVar +PLAINTREE Plan PlanDirectModify_function PlanForeignModify_function PlanInvalItem -PlanRowMark -PlanState PlannedStmt -PlannedStmtOrigin +planner_hook_type PlannerGlobal PlannerInfo PlannerParamItem -Point -Pointer -PolicyInfo -Pool -PopulateArrayContext -PopulateArrayState -PopulateRecordCache -PopulateRecordsetState -Port -Portal -PortalHashEnt -PortalStatus -PortalStrategy -PostParseColumnRefHook -PostRewriteHook -PostgresPollingStatusType -PostingItem -PreParseColumnRefHook -PredClass -PredIterInfo -PredIterInfoData -PredXactList -PredicateLockData -PredicateLockTargetType -PrefetchBufferResult -PrepParallelRestorePtrType -PrepareStmt -PreparedStatement -PresortedKeyData -PrewarmType -PrintExtraTocPtrType -PrintTocDataPtrType +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 +PopulateArrayState +PopulateRecordCache +PopulateRecordsetState +Port +Portal +PortalData +portalhashent +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 +PredClass +PREDICATELOCK +PredicateLockData +PREDICATELOCKTAG +PREDICATELOCKTARGET +PREDICATELOCKTARGETTAG +PredicateLockTargetType +PredIterInfo +PredIterInfoData +PredXactList +PredXactListData +PrefetchBufferResult +PreparedStatement +PrepareStmt +PreParseColumnRefHook +PrepParallelRestorePtrType +PresortedKeyData +PrewarmType +PrintExtraTocPtrType 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_sublinks_context +ProcessingMode +ProcessUtility_hook_type +ProcessUtilityContext ProcLangInfo +proclist_head +proclist_mutable_iter +proclist_node +PROCLOCK +PROCLOCKTAG ProcNumber ProcSignalBarrierType ProcSignalHeader @@ -2335,63 +2989,97 @@ ProcSignalReason ProcSignalSlot ProcState ProcWaitStatus -ProcessUtilityContext -ProcessUtility_hook_type -ProcessingMode ProgressCommandType +ProgressTuple +ProjectionInfo +ProjectionPath ProjectSet ProjectSetPath ProjectSetState -ProjectionInfo -ProjectionPath PromptInterruptContext +promptStatus_t 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 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_Alias +px_cipher +PX_Cipher +px_combo +PX_Combo +px_digest +px_hmac +PX_HMAC +PX_MD +Py_ssize_t PyCFunction +PyMappingMethods PyMethodDef PyModuleDef PyObject -PyTypeObject +PySequenceMethods 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 @@ -2404,32 +3092,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 @@ -2439,15 +3118,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 @@ -2472,52 +3157,79 @@ RecursionContext RecursiveUnion RecursiveUnionPath RecursiveUnionState +reduce_outer_joins_partial_state +reduce_outer_joins_pass1_state +reduce_outer_joins_pass2_state RefetchForeignRow_function RefreshMatViewStmt -RegProcedure +regex_arc_t +regexp +regexp_matches_ctx Regis RegisNode +registered_buffer RegisteredBgWorker +regproc +RegProcedure ReindexErrorInfo ReindexIndexInfo ReindexObjectType ReindexParams ReindexStmt ReindexType -RelAggInfo +ReInitializeDSMForeignScan_function +RelabelType +Relation +RelationData +RelationInfo +RelationPtr +RelationSyncEntry +RelcacheCallbackFunction +ReleaseMatchCB RelFileLocator RelFileLocatorBackend RelFileNumber +RelfilenumberMapEntry +RelfilenumberMapKey +relidcacheent 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 @@ -2541,15 +3253,17 @@ ReorderBufferStreamPrepareCB ReorderBufferStreamStartCB ReorderBufferStreamStopCB ReorderBufferStreamTruncateCB -ReorderBufferTXN -ReorderBufferTXNByIdEnt ReorderBufferToastEnt +ReorderBufferTupleBuf ReorderBufferTupleCidEnt ReorderBufferTupleCidKey +ReorderBufferTXN +ReorderBufferTXNByIdEnt ReorderBufferUpdateProgressTxnCB ReorderTuple -RepOriginId ReparameterizeForeignPathByChild_function +replace_rte_variables_callback +replace_rte_variables_context ReplaceVarsFromTargetList_context ReplaceVarsNoMatchOption ReplaceWrapOption @@ -2564,112 +3278,111 @@ ReplicationSlotPersistentData ReplicationState ReplicationStateCtl ReplicationStateOnDisk -ResTarget +RepOriginId +report_error_fn +RepSetSeqTuple +RepSetTableTuple +RepSetTuple +ReScanForeignScan_function ReservoirState ReservoirStateData +ResourceArray ResourceElem ResourceOwner +ResourceOwnerData ResourceOwnerDesc ResourceReleaseCallback ResourceReleaseCallbackItem ResourceReleasePhase ResourceReleasePriority +ResTarget RestoreOptions RestorePass RestrictInfo Result ResultRelInfo ResultState -ResultType -RetainDeadTuplesData -RetainDeadTuplesPhase -ReturnSetInfo -ReturnStmt ReturningClause ReturningExpr ReturningOption ReturningOptionKind +ReturnSetInfo +ReturnStmt RevmapContents RevokeRoleGrantAction +rewind_source +rewrite_event RewriteMappingDataEntry RewriteMappingFile RewriteRule RewriteState +RewriteStateData +rf_context +rfile +RI_CompareHashEntry +RI_CompareKey +RI_ConstraintInfo +RI_QueryHashEntry +RI_QueryKey +rix +RIX +rm_detail_t RmgrData RmgrDescData RmgrId +RmgrIds +role_auth_extra +rolename_hash RoleNameEntry RoleNameItem RoleSpec RoleSpecType RoleStmtType RollupData +row_security_policy_hook_type RowCompareExpr +RowCompareType RowExpr RowIdentityVarInfo RowMarkClause RowMarkType RowSecurityDesc RowSecurityPolicy -RtlGetLastNtStatus_t -RtlNtStatusToDosError_t +rsv_callback +RT_CHILD_PTR +rt_iter +RT_ITER +RT_NODE +RT_NODE_16 +RT_NODE_256 +RT_NODE_4 +RT_NODE_48 +rt_node_class_test_elem +RT_NODE_ITER +rt_radix_tree +RT_RADIX_TREE +RT_RADIX_TREE_CONTROL +RT_SIZE_CLASS +RT_SIZE_CLASS_ELEM +RTEKind +RTEPermissionInfo RuleInfo RuleLock RuleStmt -RunMode RunningTransactions RunningTransactionsData -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 -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 +RVROption +RWConflict +RWConflictData +RWConflictPoolHeader +RWConflictPoolHeaderData SampleScan SampleScanGetSampleSize_function SampleScanState +saophash_hash +SASLStatus +save_buffer +save_locale_t SavedTransactionCharacteristics ScalarArrayOpExpr ScalarArrayOpExprHashEntry @@ -2683,46 +3396,61 @@ ScanKey ScanKeyData ScanKeywordHashFunc ScanKeywordList +ScannerCallbackState +ScanOptions 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 -SemTPadded +sem_t SemiAntiJoinFactors +SemTPadded +sepgsql_context_info_t SeqScan SeqScanState +SeqStateTuple SeqTable SeqTableData SeqType +sequence_magic SequenceItem SerCommitSeqNo SerialControl +SerialControlData SerialIOData +SERIALIZABLEXACT SerializableXactHandle -SerializeDestReceiver -SerializeMetrics +SERIALIZABLEXID +SERIALIZABLEXIDTAG 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 @@ -2730,19 +3458,23 @@ SetExprState SetFunctionReturnMode SetOp SetOpCmd +SetOperation +SetOperationStmt SetOpPath SetOpState SetOpStatePerGroup SetOpStatePerGroupData SetOpStatePerInput SetOpStrategy -SetOperation -SetOperationStmt SetQuantifier SetToDefault -SetVarReturningType_context SetupWorkerPtrType -ShDependObjectInfo +SetVarReturningType_context +SH_ITERATOR +SH_STATUS +SH_TYPE +shared_ts_iter +shared_ts_radix_tree SharedAggInfo SharedBitmapHeapInstrumentation SharedBitmapState @@ -2755,32 +3487,47 @@ 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 +sig_atomic_t +sigjmp_buf +signal_worker_item +signedbitmapword SignTSVector +sigset_t SimpleActionList SimpleActionListCell SimpleEcontextStackEntry @@ -2792,13 +3539,22 @@ 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 @@ -2811,6 +3567,9 @@ SlruShared SlruSharedData SlruWriteAll SlruWriteAllData +SMgrRelation +SMgrRelationData +SMgrSortArray SnapBuild SnapBuildOnDisk SnapBuildState @@ -2818,11 +3577,15 @@ Snapshot SnapshotData SnapshotType SockAddr +socket_set +socklen_t Sort SortBy SortByDir SortByNulls SortCoordinate +SortCoordinateData +SortedPoint SortGroupClause SortItem SortPath @@ -2832,17 +3595,27 @@ SortSupport SortSupportData SortTuple SortTupleComparator -SortedPoint +SpecialJoinInfo +SPELL +spell_struct +spgBulkDeleteState +spgChooseIn +spgChooseOut +spgChooseResultType +spgConfigIn +spgConfigOut +spgInnerConsistentIn +spgInnerConsistentOut SpGistBuildState SpGistCache SpGistDeadTuple SpGistDeadTupleData SpGistInnerTuple SpGistInnerTupleData -SpGistLUPCache SpGistLastUsedPage SpGistLeafTuple SpGistLeafTupleData +SpGistLUPCache SpGistMetaPageData SpGistNodeTuple SpGistNodeTupleData @@ -2854,23 +3627,117 @@ SpGistScanOpaqueData SpGistSearchItem SpGistState SpGistTypeDesc -SpecialJoinInfo -SpinDelayStatus -SplitInterval -SplitLR -SplitPageLayout -SplitPoint -SplitTextOutputData -SplitVar -StackElem -StartDataPtrType -StartLOPtrType -StartLOsPtrType -StartReplicationCmd -StartupStatusEnum -StatEntry -StatExtEntry +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 +SplitedPageLayout +SplitInterval +SplitLR +SplitPageLayout +SplitPoint +SplitTextOutputData +SplitVar +SPNode +SPNodeData +spock_copyState +Spock_Stat_PendingSubEntry +Spock_Stat_StatSubEntry +Spock_Stat_Subscription +SpockApplyFunctions +SpockApplyGroupData +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 +SPPageDesc +sql_error_callback_arg +sqlda_compat +sqlda_struct +SQLDropObject +SQLFunctionCache +SQLFunctionCachePtr +SQLFunctionHashEntry +SQLFunctionParseInfo +SQLFunctionParseInfoPtr +sqlparseInfo +sqlparseState +SQLValueFunction +SQLValueFunctionOp +sqlvar_compat +sqlvar_struct +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 +StartupStatusEnum StateFileChunk +StatEntry +StatExtEntry StatisticExtInfo StatsBuildData StatsData @@ -2879,124 +3746,80 @@ StatsExtInfo StdAnalyzeData StdRdOptIndexCleanup StdRdOptions +stemmer_module Step +stmtCacheEntry StopList +storeInfo +storeRes_func StrategyNumber +stream_stop_callback StreamCtl StreamStopReason String StringInfo StringInfoData StripnullState +STRLEN +struct 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 +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 SupportRequestWFuncMonotonic +SV +symbol Syn +SyncingTablesState SyncOps SyncRepConfigData SyncRepStandbyData SyncRequestHandler SyncRequestType SyncStandbySlotsConfigData -SyncingRelationsState +SyscacheCallbackFunction SysFKRelationship SysScanDesc -SyscacheCallbackFunction -SysloggerStartupData +SysScanDescData 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 @@ -3009,19 +3832,31 @@ TableFuncScanState TableFuncType TableInfo TableLikeClause +TableLikeOption 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 @@ -3032,17 +3867,26 @@ 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 TestDecodingData TestDecodingTxnData -TestSpec +TestDSMRegistryStruct TestValueType +text TextFreq TextPositionState TheLexeme TheSubstitute +TIDBitmap TidExpr TidExprType TidHashKey @@ -3056,41 +3900,69 @@ TidScanState TidStore TidStoreIter TidStoreIterResult +time_t TimeADT +timeKEY TimeLineHistoryCmd TimeLineHistoryEntry TimeLineID TimeOffset -TimeStamp -TimeTzADT -TimeZoneAbbrevTable +timeout_handler_proc +timeout_params TimeoutId TimeoutType +timerCA Timestamp TimestampTz +TimeTzADT +timeval +TimeZoneAbbrevTable +tlist_vinfo +TM_FailureData +TM_IndexDelete +TM_IndexDeleteOp +TM_IndexStatus +TM_Result TmFromChar TmToChar +toast_compress_header ToastAttrInfo ToastCompressionId -ToastTupleContext ToastedAttribute +ToastTupleContext TocEntry TokenAuxData +tokenize_error_callback_arg TokenizedAuthLine +TParser +TParserCharTest +TParserPosition +TParserSpecial +TParserState +TParserStateAction +TParserStateActionItem +TQueueDestReceiver +TrackFunctionsLevel TrackItem -TransApplyAction -TransInvalidationInfo -TransState TransactionId TransactionState TransactionStateData TransactionStmt TransactionStmtKind TransamVariablesData +TransApplyAction +transferMode TransformInfo TransformJsonStringValuesState +TransInvalidationInfo TransitionCaptureState -TrgmArc +TransState +tree_mutator_callback +tree_walker_callback +trgm +TRGM +trgm_mb_char +TrgmArc TrgmArcInfo TrgmBound TrgmColor @@ -3112,21 +3984,55 @@ 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 +TSQueryParserStateData +TSQuerySign +TSReadPointer +TState +TStatus +TSTemplateInfo +TSTernaryValue +TSTokenTypeItem +TSTokenTypeStorage +TStoreState +TSVector +TSVectorBuildState +TSVectorData +TSVectorParseState +TSVectorParseStateData +TSVectorStat +TU_UpdateIndexes TupleConstr TupleConversionMap TupleDesc +TupleDescData +tuplehash_hash +tuplehash_iterator TupleHashEntry TupleHashEntryData TupleHashIterator TupleHashTable +TupleHashTableData TupleQueueReader -TupleTableSlot -TupleTableSlotOps TuplesortClusterArg TuplesortDatumArg TuplesortIndexArg @@ -3138,6 +4044,11 @@ TuplesortPublic TuplesortSpaceType Tuplesortstate Tuplestorestate +TupleTableSlot +TupleTableSlotOps +TupOutputState +TupSortStatus +TupStoreStatus TwoPhaseCallback TwoPhaseFileHeader TwoPhaseLockRecord @@ -3149,36 +4060,58 @@ TwoPhasePredicateXactRecord TwoPhaseRecordOnDisk TwoPhaseRmgrId TwoPhaseStateData +TXNEntryFile +TYPCATEGORY Type TypeCacheEntry TypeCacheEnumData TypeCast TypeCat +typedef TypeFuncClass TypeInfo TypeName TzAbbrevCache +tzEntry +u_char +u_int U32 U8 +ua_page_items +ua_page_stats UChar UCharIterator +uchr UColAttributeValue UCollator UConverter UErrorCode -UINT -ULARGE_INTEGER -ULONG -ULONG_PTR -UV -UVersionInfo +uid_t +uint128 +uint16 +uint16_t +uint32 +uint32_t +uint64 +uint64_t +uint8 +uint8_t +uintptr_t +unicode_linestyle UnicodeNormalizationForm UnicodeNormalizationQC +unicodeStyleBorderFormat +unicodeStyleColumnFormat +unicodeStyleFormat +unicodeStyleRowFormat Unique UniquePath +UniquePathMethod UniqueRelInfo UniqueState +unit_conversion UnlistenStmt +unlogged_relation_entry UnresolvedTup UnresolvedTupData UpdateContext @@ -3191,46 +4124,72 @@ UpgradeTaskSlotState UpgradeTaskStep UploadManifestCmd UpperRelationKind +UpperUniquePath UserAuth UserContext UserMapping UserOpts +utf_local_conversion_func +uuid_rc_t +uuid_sortsupport_state +uuid_t +uuidKEY +UV +UVersionInfo +va_list VacAttrStats VacAttrStatsP +VacDeadItems VacDeadItemsInfo VacErrPhase +VacObjFilter VacOptValue +vacuumingOptions VacuumParams VacuumRelation VacuumStmt -ValidIOData +validate_string_relopt ValidateIndexState ValidatorModuleResult ValidatorModuleState ValidatorShutdownCB ValidatorStartupCB ValidatorValidateCB +ValidIOData ValuesScan ValuesScanState Var +varatt_expanded +varatt_external +varatt_indirect +varattrib_1b +varattrib_1b_e +varattrib_4b VarBit VarChar -VarParamState -VarReturningType -VarString -VarStringSortSupport Variable VariableAssignHook +VariableCache +VariableCacheData +Variables VariableSetKind VariableSetStmt VariableShowStmt VariableSpace VariableStatData VariableSubstituteHook -Variables +varlena +VarParamState +VarReturningType +VarString +VarStringSortSupport +vartag_external +vbits Vector32 Vector8 +verifier_context VersionedQuery +vfd Vfd ViewCheckOption ViewOptCheckOption @@ -3241,24 +4200,6 @@ 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 @@ -3270,24 +4211,45 @@ 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 +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 @@ -3299,7 +4261,11 @@ WalTimeSample WalUsage WalWriteMethod WalWriteMethodOps -Walfile +wchar_t +wchar2mb_with_len_converter +WCOKind +WFW_WaitOption +WIDGET WindowAgg WindowAggPath WindowAggState @@ -3316,6 +4282,8 @@ WindowObjectData WindowStatePerAgg WindowStatePerAggData WindowStatePerFunc +WindowStatePerFuncData +wint_t WithCheckOption WithClause WordBoundaryNext @@ -3324,14 +4292,19 @@ WordEntryIN WordEntryPos WordEntryPosVector WordEntryPosVector1 -WorkTableScan -WorkTableScanState +worker_state WorkerInfo WorkerInfoData WorkerInstrumentation WorkerJobDumpPtrType WorkerJobRestorePtrType +Workflow Working_State +WORKSTATE +worktable +WorkTableScan +WorkTableScanState +WritebackContext WriteBufPtrType WriteBytePtrType WriteDataCallback @@ -3340,48 +4313,14 @@ WriteExtraTocPtrType WriteFunc WriteManifestState WriteTarState -WritebackContext +ws_file_info +ws_options 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 @@ -3390,1305 +4329,179 @@ 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 -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 -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 -varattrib_1b -varattrib_1b_e -varattrib_4b -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_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_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_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 -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 -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 +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_set +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 +XLogCtlData +XLogCtlInsert +XLogDumpConfig +XLogDumpPrivate +XLogLongPageHeader +XLogLongPageHeaderData +XLogPageHeader +XLogPageHeaderData +XLogPageReadCB +XLogPageReadPrivate +XLogPageReadResult +XLogPrefetcher +XLogPrefetcherFilter +XLogPrefetchStats +XLogReaderRoutine +XLogReaderState +XLogRecData +XLogRecord +XLogRecordBlockCompressHeader +XLogRecordBlockHeader +XLogRecordBlockImageHeader +XLogRecordBuffer +XLogRecordDataHeaderLong +XLogRecordDataHeaderShort +XLogRecoveryCtlData +XLogRecPtr +XLogRecStats +XLogRedoAction +XLogSegNo +XLogSource +XLogStats +XLogwrtResult +XLogwrtRqst +XLTW_Oper +xmlBuffer +xmlBufferPtr +xmlChar +xmlDocPtr +xmlError +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_BUFFER_STATE +yy_parser +yy_size_t +YYLTYPE +yyscan_t +YYSTYPE +z_stream +z_streamp +ZSTD_CCtx +ZSTD_cParameter +ZSTD_CStream +ZSTD_DCtx +ZSTD_DStream +ZSTD_inBuffer +ZSTD_outBuffer +ZstdCompressorState