Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 27 additions & 24 deletions include/spock.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,40 +42,40 @@ extern char *spock_temp_directory;
extern bool spock_use_spi;
extern bool spock_batch_inserts;
extern char *spock_extra_connection_options;
extern bool spock_ch_stats;
extern bool spock_deny_ddl;
extern bool spock_enable_ddl_replication;
extern bool spock_include_ddl_repset;
extern bool allow_ddl_from_functions;
extern bool spock_ch_stats;
extern bool spock_deny_ddl;
extern bool spock_enable_ddl_replication;
extern bool spock_include_ddl_repset;
extern bool allow_ddl_from_functions;
extern int restart_delay_default;
extern int restart_delay_on_exception;
extern int spock_replay_queue_size; /* Deprecated - no longer used */
extern int spock_replay_queue_size; /* Deprecated - no longer used */
extern bool check_all_uc_indexes;
extern char *shorten_hash(const char *str, int maxlen);

extern List *textarray_to_list(ArrayType *textarray);
extern bool parsePGArray(const char *atext, char ***itemarray, int *nitems);

extern Oid get_spock_table_oid(const char *table);
extern Oid get_spock_table_oid(const char *table);

extern void spock_execute_sql_command(char *cmdstr, char *role,
bool isTopLevel);
bool isTopLevel);

extern PGconn *spock_connect(const char *connstring, const char *connname,
const char *suffix);
const char *suffix);
extern PGconn *spock_connect_replica(const char *connstring,
const char *connname,
const char *suffix);
extern void spock_identify_system(PGconn *streamConn, uint64* sysid,
TimeLineID *timeline, XLogRecPtr *xlogpos,
Name *dbname);
const char *connname,
const char *suffix);
extern void spock_identify_system(PGconn *streamConn, uint64 *sysid,
TimeLineID *timeline, XLogRecPtr *xlogpos,
Name *dbname);
extern void spock_start_replication(PGconn *streamConn,
const char *slot_name,
XLogRecPtr start_pos,
const char *forward_origins,
const char *replication_sets,
const char *replicate_only_table,
bool force_text_transfer);
const char *slot_name,
XLogRecPtr start_pos,
const char *forward_origins,
const char *replication_sets,
const char *replicate_only_table,
bool force_text_transfer);

extern void spock_manage_extension(void);

Expand All @@ -93,8 +93,8 @@ extern void spock_auto_replicate_ddl(const char *query, List *replication_sets,
Oid roleoid, Node *stmt);

/* spock_readonly.c */
void spock_roExecutorStart(QueryDesc *queryDesc, int eflags);
void spock_ropost_parse_analyze(ParseState *pstate, Query *query, JumbleState *jstate);
void spock_roExecutorStart(QueryDesc *queryDesc, int eflags);
void spock_ropost_parse_analyze(ParseState *pstate, Query *query, JumbleState *jstate);

#include "utils/memdebug.h"

Expand All @@ -116,10 +116,13 @@ void spock_ropost_parse_analyze(ParseState *pstate, Query *query, JumbleState *j
* the worker type, etc, prefixed by SPOCK:, in the Valgrind logs. We
* need to stub it out if we aren't using valgrind.
*/
pg_attribute_printf(1, 2) pg_attribute_unused() static inline void VALGRIND_PRINTF(const char *format, ...) {}
pg_attribute_printf(1, 2) pg_attribute_unused() static inline void
VALGRIND_PRINTF(const char *format,...)
{
}

#endif

extern void spock_init_failover_slot(void);

#endif /* SPOCK_H */
#endif /* SPOCK_H */
6 changes: 3 additions & 3 deletions include/spock_apply.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,15 @@ typedef void (*spock_apply_delete_fn) (SpockRelation *rel,

typedef bool (*spock_apply_can_mi_fn) (SpockRelation *rel);
typedef void (*spock_apply_mi_add_tuple_fn) (SpockRelation *rel,
SpockTupleData *tup);
SpockTupleData *tup);
typedef void (*spock_apply_mi_finish_fn) (SpockRelation *rel);

/* my_exception_log_index belongs here, and not in the exception handler
* since it's specific to each apply worker.
*/
extern int my_exception_log_index;
extern int my_exception_log_index;

extern void wait_for_previous_transaction(void);
extern void awake_transaction_waiters(void);

#endif /* SPOCK_APPLY_H */
#endif /* SPOCK_APPLY_H */
18 changes: 9 additions & 9 deletions include/spock_apply_heap.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,16 @@ extern void spock_apply_heap_begin(void);
extern void spock_apply_heap_commit(void);

extern void spock_apply_heap_insert(SpockRelation *rel,
SpockTupleData *newtup);
SpockTupleData *newtup);
extern void spock_apply_heap_update(SpockRelation *rel,
SpockTupleData *oldtup,
SpockTupleData *newtup);
SpockTupleData *oldtup,
SpockTupleData *newtup);
extern void spock_apply_heap_delete(SpockRelation *rel,
SpockTupleData *oldtup);
SpockTupleData *oldtup);

bool spock_apply_heap_can_mi(SpockRelation *rel);
void spock_apply_heap_mi_add_tuple(SpockRelation *rel,
SpockTupleData *tup);
void spock_apply_heap_mi_finish(SpockRelation *rel);
bool spock_apply_heap_can_mi(SpockRelation *rel);
void spock_apply_heap_mi_add_tuple(SpockRelation *rel,
SpockTupleData *tup);
void spock_apply_heap_mi_finish(SpockRelation *rel);

#endif /* SPOCK_APPLY_HEAP_H */
#endif /* SPOCK_APPLY_HEAP_H */
59 changes: 30 additions & 29 deletions include/spock_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ extern void AfterTriggerBeginQuery(void);
#if PG_VERSION_NUM >= 160000
#include "utils/usercontext.h"

#else /* The following only required for versions prior to PG16 */
#else /* The following only required for versions
* prior to PG16 */
/*
* When temporarily changing to run as a different user, this structure
* holds the details needed to restore the original state.
Expand All @@ -39,47 +40,47 @@ extern void SPKSwitchToUntrustedUser(Oid userid, UserContext *context);
extern void SPKRestoreUserContext(UserContext *context);

extern bool SPKExecBRDeleteTriggers(EState *estate,
EPQState *epqstate,
ResultRelInfo *relinfo,
ItemPointer tupleid,
HeapTuple fdw_trigtuple);
EPQState *epqstate,
ResultRelInfo *relinfo,
ItemPointer tupleid,
HeapTuple fdw_trigtuple);
extern void SPKExecARDeleteTriggers(EState *estate,
ResultRelInfo *relinfo,
ItemPointer tupleid,
HeapTuple fdw_trigtuple);
ResultRelInfo *relinfo,
ItemPointer tupleid,
HeapTuple fdw_trigtuple);

extern bool SPKExecBRUpdateTriggers(EState *estate,
EPQState *epqstate,
ResultRelInfo *relinfo,
ItemPointer tupleid,
HeapTuple fdw_trigtuple,
TupleTableSlot *slot);
EPQState *epqstate,
ResultRelInfo *relinfo,
ItemPointer tupleid,
HeapTuple fdw_trigtuple,
TupleTableSlot *slot);
extern void SPKExecARUpdateTriggers(EState *estate,
ResultRelInfo *relinfo,
ItemPointer tupleid,
HeapTuple fdw_trigtuple,
TupleTableSlot *slot,
List *recheckIndexes);
ResultRelInfo *relinfo,
ItemPointer tupleid,
HeapTuple fdw_trigtuple,
TupleTableSlot *slot,
List *recheckIndexes);

extern bool SPKExecBRInsertTriggers(EState *estate,
ResultRelInfo *relinfo,
TupleTableSlot *slot);
ResultRelInfo *relinfo,
TupleTableSlot *slot);
extern void SPKExecARInsertTriggers(EState *estate,
ResultRelInfo *relinfo,
TupleTableSlot *slot,
List *recheckIndexes);
ResultRelInfo *relinfo,
TupleTableSlot *slot,
List *recheckIndexes);

extern bool IsIndexUsableForInsertConflict(Relation idxrel);
extern bool SpockRelationFindReplTupleByIndex(EState *estate,
Relation rel,
Relation idxrel,
LockTupleMode lockmode,
TupleTableSlot *searchslot,
TupleTableSlot *outslot);
Relation rel,
Relation idxrel,
LockTupleMode lockmode,
TupleTableSlot *searchslot,
TupleTableSlot *outslot);

extern void read_buf(int fd, void *buf, size_t nbytes, const char *filename);
extern void write_buf(int fd, const void *buf, size_t nbytes, const char *filename);
extern TimestampTz str_to_timestamptz(const char *s);
extern XLogRecPtr str_to_lsn(const char *s);

#endif /* SPOCK_COMMON_H */
#endif /* SPOCK_COMMON_H */
60 changes: 30 additions & 30 deletions include/spock_conflict.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ typedef enum
SPOCK_RESOLVE_FIRST_UPDATE_WINS
} SpockResolveOption;

extern int spock_conflict_resolver;
extern int spock_conflict_log_level;
extern bool spock_save_resolutions;
extern int spock_conflict_resolver;
extern int spock_conflict_log_level;
extern bool spock_save_resolutions;

typedef enum SpockConflictType
{
Expand All @@ -63,36 +63,36 @@ extern bool try_resolve_conflict(Relation rel, HeapTuple localtuple,


extern void spock_report_conflict(SpockConflictType conflict_type,
SpockRelation *rel,
HeapTuple localtuple,
SpockTupleData *oldkey,
HeapTuple remotetuple,
HeapTuple applytuple,
SpockConflictResolution resolution,
TransactionId local_tuple_xid,
bool found_local_origin,
RepOriginId local_tuple_origin,
TimestampTz local_tuple_timestamp,
Oid conflict_idx_id);
SpockRelation *rel,
HeapTuple localtuple,
SpockTupleData *oldkey,
HeapTuple remotetuple,
HeapTuple applytuple,
SpockConflictResolution resolution,
TransactionId local_tuple_xid,
bool found_local_origin,
RepOriginId local_tuple_origin,
TimestampTz local_tuple_timestamp,
Oid conflict_idx_id);

extern void spock_conflict_log_table(SpockConflictType conflict_type,
SpockRelation *rel,
HeapTuple localtuple,
SpockTupleData *oldkey,
HeapTuple remotetuple,
HeapTuple applytuple,
SpockConflictResolution resolution,
TransactionId local_tuple_xid,
bool found_local_origin,
RepOriginId local_tuple_origin,
TimestampTz local_tuple_timestamp,
Oid conflict_idx_id);
extern Oid get_conflict_log_table_oid(void);
extern Oid get_conflict_log_seq(void);
SpockRelation *rel,
HeapTuple localtuple,
SpockTupleData *oldkey,
HeapTuple remotetuple,
HeapTuple applytuple,
SpockConflictResolution resolution,
TransactionId local_tuple_xid,
bool found_local_origin,
RepOriginId local_tuple_origin,
TimestampTz local_tuple_timestamp,
Oid conflict_idx_id);
extern Oid get_conflict_log_table_oid(void);
extern Oid get_conflict_log_seq(void);
extern bool spock_conflict_resolver_check_hook(int *newval, void **extra,
GucSource source);
GucSource source);

extern void tuple_to_stringinfo(StringInfo s, TupleDesc tupdesc,
HeapTuple tuple);
HeapTuple tuple);

#endif /* SPOCK_CONGLICT_H */
#endif /* SPOCK_CONGLICT_H */
22 changes: 11 additions & 11 deletions include/spock_dependency.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,23 +13,23 @@
#define SPOCK_DEPENDENCY_H

extern void spock_recordDependencyOn(const ObjectAddress *depender,
const ObjectAddress *referenced,
DependencyType behavior);
const ObjectAddress *referenced,
DependencyType behavior);

extern void spock_recordMultipleDependencies(const ObjectAddress *depender,
const ObjectAddress *referenced,
int nreferenced,
DependencyType behavior);
const ObjectAddress *referenced,
int nreferenced,
DependencyType behavior);

extern void spock_recordDependencyOnSingleRelExpr(const ObjectAddress *depender,
Node *expr, Oid relId,
DependencyType behavior,
DependencyType self_behavior);
Node *expr, Oid relId,
DependencyType behavior,
DependencyType self_behavior);

extern void spock_tryDropDependencies(const ObjectAddress *object,
DropBehavior behavior);
DropBehavior behavior);

extern void spock_checkDependency(const ObjectAddress *object,
DropBehavior behavior);
DropBehavior behavior);

#endif /* SPOCK_DEPENDENCY_H */
#endif /* SPOCK_DEPENDENCY_H */
10 changes: 5 additions & 5 deletions include/spock_exception_handler.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,10 @@ typedef enum SpockExceptionLogging
LOG_ALL
} SpockExceptionLogging;

extern SpockExceptionLog *exception_log_ptr;
extern int exception_behaviour;
extern int exception_logging;
extern int exception_command_counter;
extern SpockExceptionLog *exception_log_ptr;
extern int exception_behaviour;
extern int exception_logging;
extern int exception_command_counter;

extern void add_entry_to_exception_log(Oid remote_origin,
TimestampTz remote_commit_ts,
Expand All @@ -97,4 +97,4 @@ extern void spock_disable_subscription(SpockSubscription *sub,
XLogRecPtr lsn,
TimestampTz ts);

#endif /* SPOCK_EXCEPTION_HANDLER_H */
#endif /* SPOCK_EXCEPTION_HANDLER_H */
2 changes: 1 addition & 1 deletion include/spock_executor.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ extern void spock_ExecutorStart(QueryDesc *queryDesc, int eflags);

extern void spock_executor_init(void);

#endif /* SPOCK_EXECUTOR_H */
#endif /* SPOCK_EXECUTOR_H */
6 changes: 3 additions & 3 deletions include/spock_fe.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
#ifndef SPOCK_FE_H
#define SPOCK_FE_H

extern int find_other_exec_version(const char *argv0, const char *target,
uint32 *version, char *retpath);
extern int find_other_exec_version(const char *argv0, const char *target,
uint32 *version, char *retpath);

extern char *spk_get_connstr(char *connstr, char *dbname, char *options, char **errmsg);

#endif /* SPOCK_FE_H */
#endif /* SPOCK_FE_H */
Loading