diff --git a/src/backend/utils/misc/Makefile b/src/backend/utils/misc/Makefile index d9f59785b9..b103ff671c 100644 --- a/src/backend/utils/misc/Makefile +++ b/src/backend/utils/misc/Makefile @@ -22,6 +22,7 @@ OBJS = \ guc_tables.o \ help_config.o \ injection_point.o \ + percona.o \ pg_config.o \ pg_controldata.o \ pg_rusage.o \ diff --git a/src/backend/utils/misc/meson.build b/src/backend/utils/misc/meson.build index 6669502205..5acaecb30a 100644 --- a/src/backend/utils/misc/meson.build +++ b/src/backend/utils/misc/meson.build @@ -7,6 +7,7 @@ backend_sources += files( 'guc_tables.c', 'help_config.c', 'injection_point.c', + 'percona.c', 'pg_config.c', 'pg_controldata.c', 'pg_rusage.c', diff --git a/src/backend/utils/misc/percona.c b/src/backend/utils/misc/percona.c new file mode 100644 index 0000000000..7d65209bc6 --- /dev/null +++ b/src/backend/utils/misc/percona.c @@ -0,0 +1,15 @@ +/*------------------------------------------------------------------------- + * + * percona.c + * Percona specific functions + * + * IDENTIFICATION + * src/backend/utils/misc/percona.c + * + *------------------------------------------------------------------------- + */ + +#include "postgres.h" +#include "utils/percona.h" + +const int percona_api_version = PERCONA_API_VERSION; diff --git a/src/include/pg_config_manual.h b/src/include/pg_config_manual.h index f941ee2faf..78353b03d7 100644 --- a/src/include/pg_config_manual.h +++ b/src/include/pg_config_manual.h @@ -383,3 +383,5 @@ * Enable tracing of syncscan operations (see also the trace_syncscan GUC var). */ /* #define TRACE_SYNCSCAN */ + +#define PERCONA_API_VERSION 1 diff --git a/src/include/utils/percona.h b/src/include/utils/percona.h new file mode 100644 index 0000000000..6082a8700f --- /dev/null +++ b/src/include/utils/percona.h @@ -0,0 +1,28 @@ +/*------------------------------------------------------------------------- + * + * percona.h + * Percona specific functions + * + * IDENTIFICATION + * src/include/utils/percona.h + * + *------------------------------------------------------------------------- + */ + +#ifndef PERCONA__H__ +#define PERCONA__H__ + +extern const PGDLLIMPORT int percona_api_version; + +static inline bool check_percona_api_version(void) +{ + if (PERCONA_API_VERSION != percona_api_version) + { + elog(FATAL, "Percona API version mismatch, the extension was built againts a different PostgreSQL version!"); + return false; + } + + return true; +} + +#endif // PERCONA__H__ \ No newline at end of file