Use PG_MODULE_MAGIC_EXT in our installable shared libraries.

It seems potentially useful to label our shared libraries with version
information, now that a facility exists for retrieving that.  This
patch labels them with the PG_VERSION string.  There was some
discussion about using semantic versioning conventions, but that
doesn't seem terribly helpful for modules with no SQL-level presence;
and for those that do have SQL objects, we typically expect them
to support multiple revisions of the SQL definitions, so it'd still
not be very helpful.

I did not label any of src/test/modules/.  It seems unnecessary since
we don't install those, and besides there ought to be someplace that
still provides test coverage for the original PG_MODULE_MAGIC macro.

Author: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/dd4d1b59-d0fe-49d5-b28f-1e463b68fa32@gmail.com
pull/208/head
Tom Lane 1 year ago
parent 9324c8c580
commit 55527368bd
  1. 5
      contrib/amcheck/verify_nbtree.c
  2. 5
      contrib/auth_delay/auth_delay.c
  3. 5
      contrib/basebackup_to_shell/basebackup_to_shell.c
  4. 5
      contrib/basic_archive/basic_archive.c
  5. 5
      contrib/bloom/blinsert.c
  6. 5
      contrib/bool_plperl/bool_plperl.c
  7. 5
      contrib/btree_gin/btree_gin.c
  8. 5
      contrib/btree_gist/btree_gist.c
  9. 5
      contrib/citext/citext.c
  10. 5
      contrib/cube/cube.c
  11. 5
      contrib/dblink/dblink.c
  12. 5
      contrib/dict_int/dict_int.c
  13. 5
      contrib/dict_xsyn/dict_xsyn.c
  14. 5
      contrib/earthdistance/earthdistance.c
  15. 5
      contrib/file_fdw/file_fdw.c
  16. 5
      contrib/fuzzystrmatch/fuzzystrmatch.c
  17. 5
      contrib/hstore/hstore_io.c
  18. 5
      contrib/hstore_plperl/hstore_plperl.c
  19. 5
      contrib/hstore_plpython/hstore_plpython.c
  20. 5
      contrib/intarray/_int_op.c
  21. 5
      contrib/isn/isn.c
  22. 5
      contrib/jsonb_plperl/jsonb_plperl.c
  23. 5
      contrib/jsonb_plpython/jsonb_plpython.c
  24. 5
      contrib/lo/lo.c
  25. 5
      contrib/ltree/ltree_op.c
  26. 5
      contrib/ltree_plpython/ltree_plpython.c
  27. 5
      contrib/pageinspect/rawpage.c
  28. 5
      contrib/passwordcheck/passwordcheck.c
  29. 5
      contrib/pg_buffercache/pg_buffercache_pages.c
  30. 5
      contrib/pg_freespacemap/pg_freespacemap.c
  31. 5
      contrib/pg_logicalinspect/pg_logicalinspect.c
  32. 5
      contrib/pg_prewarm/pg_prewarm.c
  33. 5
      contrib/pg_stat_statements/pg_stat_statements.c
  34. 5
      contrib/pg_surgery/heap_surgery.c
  35. 5
      contrib/pg_trgm/trgm_op.c
  36. 5
      contrib/pg_visibility/pg_visibility.c
  37. 5
      contrib/pg_walinspect/pg_walinspect.c
  38. 5
      contrib/pgcrypto/pgcrypto.c
  39. 5
      contrib/pgrowlocks/pgrowlocks.c
  40. 5
      contrib/pgstattuple/pgstattuple.c
  41. 5
      contrib/postgres_fdw/postgres_fdw.c
  42. 5
      contrib/seg/seg.c
  43. 5
      contrib/sepgsql/hooks.c
  44. 5
      contrib/spi/autoinc.c
  45. 5
      contrib/spi/insert_username.c
  46. 5
      contrib/spi/moddatetime.c
  47. 5
      contrib/spi/refint.c
  48. 5
      contrib/sslinfo/sslinfo.c
  49. 5
      contrib/tablefunc/tablefunc.c
  50. 5
      contrib/tcn/tcn.c
  51. 5
      contrib/test_decoding/test_decoding.c
  52. 5
      contrib/tsm_system_rows/tsm_system_rows.c
  53. 5
      contrib/tsm_system_time/tsm_system_time.c
  54. 5
      contrib/unaccent/unaccent.c
  55. 5
      contrib/uuid-ossp/uuid-ossp.c
  56. 5
      contrib/xml2/xpath.c
  57. 5
      src/backend/jit/llvm/llvmjit.c
  58. 5
      src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
  59. 5
      src/backend/replication/pgoutput/pgoutput.c
  60. 5
      src/backend/snowball/dict_snowball.c
  61. 5
      src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c
  62. 5
      src/backend/utils/mb/conversion_procs/euc2004_sjis2004/euc2004_sjis2004.c
  63. 5
      src/backend/utils/mb/conversion_procs/euc_cn_and_mic/euc_cn_and_mic.c
  64. 5
      src/backend/utils/mb/conversion_procs/euc_jp_and_sjis/euc_jp_and_sjis.c
  65. 5
      src/backend/utils/mb/conversion_procs/euc_kr_and_mic/euc_kr_and_mic.c
  66. 5
      src/backend/utils/mb/conversion_procs/euc_tw_and_big5/euc_tw_and_big5.c
  67. 5
      src/backend/utils/mb/conversion_procs/latin2_and_win1250/latin2_and_win1250.c
  68. 5
      src/backend/utils/mb/conversion_procs/latin_and_mic/latin_and_mic.c
  69. 5
      src/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.c
  70. 5
      src/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.c
  71. 5
      src/backend/utils/mb/conversion_procs/utf8_and_euc2004/utf8_and_euc2004.c
  72. 5
      src/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.c
  73. 5
      src/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.c
  74. 5
      src/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.c
  75. 5
      src/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.c
  76. 5
      src/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.c
  77. 5
      src/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.c
  78. 5
      src/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c
  79. 5
      src/backend/utils/mb/conversion_procs/utf8_and_iso8859_1/utf8_and_iso8859_1.c
  80. 5
      src/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.c
  81. 5
      src/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.c
  82. 5
      src/backend/utils/mb/conversion_procs/utf8_and_sjis2004/utf8_and_sjis2004.c
  83. 5
      src/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.c
  84. 5
      src/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c
  85. 5
      src/pl/plperl/plperl.c
  86. 5
      src/pl/plpgsql/src/pl_handler.c
  87. 5
      src/pl/plpython/plpy_main.c
  88. 5
      src/pl/tcl/pltcl.c
  89. 5
      src/test/regress/regress.c

@ -42,7 +42,10 @@
#include "utils/snapmgr.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "amcheck",
.version = PG_VERSION
);
/*
* A B-Tree cannot possibly have this many levels, since there must be one

@ -16,7 +16,10 @@
#include "libpq/auth.h"
#include "utils/guc.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "auth_delay",
.version = PG_VERSION
);
/* GUC Variables */
static int auth_delay_milliseconds = 0;

@ -18,7 +18,10 @@
#include "utils/acl.h"
#include "utils/guc.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "basebackup_to_shell",
.version = PG_VERSION
);
typedef struct bbsink_shell
{

@ -37,7 +37,10 @@
#include "storage/fd.h"
#include "utils/guc.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "basic_archive",
.version = PG_VERSION
);
static char *archive_directory = NULL;

@ -22,7 +22,10 @@
#include "utils/memutils.h"
#include "utils/rel.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "bloom",
.version = PG_VERSION
);
/*
* State of bloom index build. We accumulate one page data here before

@ -4,7 +4,10 @@
#include "plperl.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "bool_plperl",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(bool_to_plperl);

@ -14,7 +14,10 @@
#include "utils/timestamp.h"
#include "utils/uuid.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "btree_gin",
.version = PG_VERSION
);
typedef struct QueryInfo
{

@ -7,7 +7,10 @@
#include "access/stratnum.h"
#include "utils/builtins.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "btree_gist",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(gbt_decompress);
PG_FUNCTION_INFO_V1(gbtreekey_in);

@ -10,7 +10,10 @@
#include "utils/varlena.h"
#include "varatt.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "citext",
.version = PG_VERSION
);
/*
* ====================

@ -17,7 +17,10 @@
#include "utils/array.h"
#include "utils/float.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "cube",
.version = PG_VERSION
);
/*
* Taken from the intarray contrib header

@ -65,7 +65,10 @@
#include "utils/varlena.h"
#include "utils/wait_event.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "dblink",
.version = PG_VERSION
);
typedef struct remoteConn
{

@ -15,7 +15,10 @@
#include "commands/defrem.h"
#include "tsearch/ts_public.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "dict_int",
.version = PG_VERSION
);
typedef struct
{

@ -20,7 +20,10 @@
#include "tsearch/ts_public.h"
#include "utils/formatting.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "dict_xsyn",
.version = PG_VERSION
);
typedef struct
{

@ -11,7 +11,10 @@
#define M_PI 3.14159265358979323846
#endif
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "earthdistance",
.version = PG_VERSION
);
/* Earth's radius is in statute miles. */
static const double EARTH_RADIUS = 3958.747716;

@ -42,7 +42,10 @@
#include "utils/sampling.h"
#include "utils/varlena.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "file_fdw",
.version = PG_VERSION
);
/*
* Describes the valid options for objects that use this wrapper.

@ -44,7 +44,10 @@
#include "utils/varlena.h"
#include "varatt.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "fuzzystrmatch",
.version = PG_VERSION
);
/*
* Soundex

@ -21,7 +21,10 @@
#include "utils/memutils.h"
#include "utils/typcache.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "hstore",
.version = PG_VERSION
);
/* old names for C functions */
HSTORE_POLLUTE(hstore_from_text, tconvert);

@ -4,7 +4,10 @@
#include "hstore/hstore.h"
#include "plperl.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "hstore_plperl",
.version = PG_VERSION
);
/* Linkage to functions in hstore module */
typedef HStore *(*hstoreUpgrade_t) (Datum orig);

@ -5,7 +5,10 @@
#include "plpy_typeio.h"
#include "plpython.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "hstore_plpython",
.version = PG_VERSION
);
/* Linkage to functions in plpython module */
typedef char *(*PLyObject_AsString_t) (PyObject *plrv);

@ -5,7 +5,10 @@
#include "_int.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "intarray",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(_int_different);
PG_FUNCTION_INFO_V1(_int_same);

@ -23,7 +23,10 @@
#include "isn.h"
#include "utils/guc.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "isn",
.version = PG_VERSION
);
#ifdef USE_ASSERT_CHECKING
#define ISN_DEBUG 1

@ -7,7 +7,10 @@
#include "utils/fmgrprotos.h"
#include "utils/jsonb.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "jsonb_plperl",
.version = PG_VERSION
);
static SV *Jsonb_to_SV(JsonbContainer *jsonb);
static JsonbValue *SV_to_JsonbValue(SV *obj, JsonbParseState **ps, bool is_elem);

@ -7,7 +7,10 @@
#include "utils/jsonb.h"
#include "utils/numeric.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "jsonb_plpython",
.version = PG_VERSION
);
/* for PLyObject_AsString in plpy_typeio.c */
typedef char *(*PLyObject_AsString_t) (PyObject *plrv);

@ -12,7 +12,10 @@
#include "utils/fmgrprotos.h"
#include "utils/rel.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "lo",
.version = PG_VERSION
);
/*

@ -13,7 +13,10 @@
#include "utils/selfuncs.h"
#include "varatt.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "ltree",
.version = PG_VERSION
);
/* compare functions */
PG_FUNCTION_INFO_V1(ltree_cmp);

@ -4,7 +4,10 @@
#include "ltree/ltree.h"
#include "plpython.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "ltree_plpython",
.version = PG_VERSION
);
/* Linkage to functions in plpython module */
typedef PyObject *(*PLyUnicode_FromStringAndSize_t) (const char *s, Py_ssize_t size);

@ -29,7 +29,10 @@
#include "utils/rel.h"
#include "utils/varlena.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pageinspect",
.version = PG_VERSION
);
static bytea *get_raw_page_internal(text *relname, ForkNumber forknum,
BlockNumber blkno);

@ -25,7 +25,10 @@
#include "fmgr.h"
#include "libpq/crypt.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "passwordcheck",
.version = PG_VERSION
);
/* Saved hook value */
static check_password_hook_type prev_check_password_hook = NULL;

@ -20,7 +20,10 @@
#define NUM_BUFFERCACHE_SUMMARY_ELEM 5
#define NUM_BUFFERCACHE_USAGE_COUNTS_ELEM 4
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pg_buffercache",
.version = PG_VERSION
);
/*
* Record structure holding the to be exposed cache data.

@ -12,7 +12,10 @@
#include "fmgr.h"
#include "storage/freespace.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pg_freespacemap",
.version = PG_VERSION
);
/*
* Returns the amount of free space on a given page, according to the

@ -18,7 +18,10 @@
#include "utils/builtins.h"
#include "utils/pg_lsn.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pg_logicalinspect",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(pg_get_logical_snapshot_meta);
PG_FUNCTION_INFO_V1(pg_get_logical_snapshot_info);

@ -26,7 +26,10 @@
#include "utils/lsyscache.h"
#include "utils/rel.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pg_prewarm",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(pg_prewarm);

@ -71,7 +71,10 @@
#include "utils/memutils.h"
#include "utils/timestamp.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pg_stat_statements",
.version = PG_VERSION
);
/* Location of permanent stats file (valid when database is shut down) */
#define PGSS_DUMP_FILE PGSTAT_STAT_PERMANENT_DIRECTORY "/pg_stat_statements.stat"

@ -23,7 +23,10 @@
#include "utils/array.h"
#include "utils/rel.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pg_surgery",
.version = PG_VERSION
);
/* Options to forcefully change the state of a heap tuple. */
typedef enum HeapTupleForceOption

@ -18,7 +18,10 @@
#include "utils/memutils.h"
#include "utils/pg_crc.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pg_trgm",
.version = PG_VERSION
);
/* GUC variables */
double similarity_threshold = 0.3f;

@ -25,7 +25,10 @@
#include "storage/smgr.h"
#include "utils/rel.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pg_visibility",
.version = PG_VERSION
);
typedef struct vbits
{

@ -29,7 +29,10 @@
* give a thought about doing the same in pg_waldump tool as well.
*/
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pg_walinspect",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(pg_get_wal_block_info);
PG_FUNCTION_INFO_V1(pg_get_wal_record_info);

@ -41,7 +41,10 @@
#include "utils/guc.h"
#include "varatt.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pgcrypto",
.version = PG_VERSION
);
/* private stuff */

@ -42,7 +42,10 @@
#include "utils/snapmgr.h"
#include "utils/varlena.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pgrowlocks",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(pgrowlocks);

@ -38,7 +38,10 @@
#include "storage/lmgr.h"
#include "utils/varlena.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pgstattuple",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(pgstattuple);
PG_FUNCTION_INFO_V1(pgstattuple_v1_5);

@ -49,7 +49,10 @@
#include "utils/sampling.h"
#include "utils/selfuncs.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "postgres_fdw",
.version = PG_VERSION
);
/* Default CPU cost to start up a foreign query. */
#define DEFAULT_FDW_STARTUP_COST 100.0

@ -28,7 +28,10 @@
#define GIST_QUERY_DEBUG
*/
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "seg",
.version = PG_VERSION
);
/*
* Auxiliary data structure for picksplit method.

@ -25,7 +25,10 @@
#include "utils/guc.h"
#include "utils/queryenvironment.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "sepgsql",
.version = PG_VERSION
);
/*
* Declarations

@ -11,7 +11,10 @@
#include "utils/builtins.h"
#include "utils/rel.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "autoinc",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(autoinc);

@ -14,7 +14,10 @@
#include "utils/builtins.h"
#include "utils/rel.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "insert_username",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(insert_username);

@ -22,7 +22,10 @@ OH, me, I'm Terry Mackintosh <terry@terrym.com>
#include "utils/fmgrprotos.h"
#include "utils/rel.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "moddatetime",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(moddatetime);

@ -15,7 +15,10 @@
#include "utils/memutils.h"
#include "utils/rel.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "refint",
.version = PG_VERSION
);
typedef struct
{

@ -19,7 +19,10 @@
#include "miscadmin.h"
#include "utils/builtins.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "sslinfo",
.version = PG_VERSION
);
static Datum X509_NAME_field_to_text(X509_NAME *name, text *fieldName);
static Datum ASN1_STRING_to_text(ASN1_STRING *str);

@ -44,7 +44,10 @@
#include "miscadmin.h"
#include "utils/builtins.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "tablefunc",
.version = PG_VERSION
);
static HTAB *load_categories_hash(char *cats_sql, MemoryContext per_query_ctx);
static Tuplestorestate *get_crosstab_tuplestore(char *sql,

@ -23,7 +23,10 @@
#include "utils/rel.h"
#include "utils/syscache.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "tcn",
.version = PG_VERSION
);
/*
* Copy from s (for source) to r (for result), wrapping with q (quote)

@ -22,7 +22,10 @@
#include "utils/memutils.h"
#include "utils/rel.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "test_decoding",
.version = PG_VERSION
);
typedef struct
{

@ -34,7 +34,10 @@
#include "optimizer/optimizer.h"
#include "utils/sampling.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "tsm_system_rows",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(tsm_system_rows_handler);

@ -33,7 +33,10 @@
#include "utils/sampling.h"
#include "utils/spccache.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "tsm_system_time",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(tsm_system_time_handler);

@ -23,7 +23,10 @@
#include "utils/lsyscache.h"
#include "utils/syscache.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "unaccent",
.version = PG_VERSION
);
/*
* An unaccent dictionary uses a trie to find a string to replace. Each node

@ -102,7 +102,10 @@ do { \
#endif /* !HAVE_UUID_OSSP */
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "uuid-ossp",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(uuid_nil);
PG_FUNCTION_INFO_V1(uuid_ns_dns);

@ -22,7 +22,10 @@
#include <libxml/xmlerror.h>
#include <libxml/parserInternals.h>
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "xml2",
.version = PG_VERSION
);
/* exported for use by xslt_proc.c */

@ -138,7 +138,10 @@ ResourceOwnerForgetJIT(ResourceOwner owner, LLVMJitContext *handle)
ResourceOwnerForget(owner, PointerGetDatum(handle), &jit_resowner_desc);
}
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "llvmjit",
.version = PG_VERSION
);
/*

@ -36,7 +36,10 @@
#include "utils/pg_lsn.h"
#include "utils/tuplestore.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "libpqwalreceiver",
.version = PG_VERSION
);
struct WalReceiverConn
{

@ -36,7 +36,10 @@
#include "utils/syscache.h"
#include "utils/varlena.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pgoutput",
.version = PG_VERSION
);
static void pgoutput_startup(LogicalDecodingContext *ctx,
OutputPluginOptions *opt, bool is_init);

@ -77,7 +77,10 @@
#include "snowball/libstemmer/stem_UTF_8_turkish.h"
#include "snowball/libstemmer/stem_UTF_8_yiddish.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "dict_snowball",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(dsnowball_init);

@ -15,7 +15,10 @@
#include "fmgr.h"
#include "mb/pg_wchar.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "cyrillic_and_mic",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(koi8r_to_mic);
PG_FUNCTION_INFO_V1(mic_to_koi8r);

@ -14,7 +14,10 @@
#include "fmgr.h"
#include "mb/pg_wchar.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "euc2004_sjis2004",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(euc_jis_2004_to_shift_jis_2004);
PG_FUNCTION_INFO_V1(shift_jis_2004_to_euc_jis_2004);

@ -15,7 +15,10 @@
#include "fmgr.h"
#include "mb/pg_wchar.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "euc_cn_and_mic",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(euc_cn_to_mic);
PG_FUNCTION_INFO_V1(mic_to_euc_cn);

@ -27,7 +27,10 @@
*/
#include "sjis.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "euc_jp_and_sjis",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(euc_jp_to_sjis);
PG_FUNCTION_INFO_V1(sjis_to_euc_jp);

@ -15,7 +15,10 @@
#include "fmgr.h"
#include "mb/pg_wchar.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "euc_kr_and_mic",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(euc_kr_to_mic);
PG_FUNCTION_INFO_V1(mic_to_euc_kr);

@ -15,7 +15,10 @@
#include "fmgr.h"
#include "mb/pg_wchar.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "euc_tw_and_big5",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(euc_tw_to_big5);
PG_FUNCTION_INFO_V1(big5_to_euc_tw);

@ -15,7 +15,10 @@
#include "fmgr.h"
#include "mb/pg_wchar.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "latin2_and_win1250",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(latin2_to_mic);
PG_FUNCTION_INFO_V1(mic_to_latin2);

@ -15,7 +15,10 @@
#include "fmgr.h"
#include "mb/pg_wchar.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "latin_and_mic",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(latin1_to_mic);
PG_FUNCTION_INFO_V1(mic_to_latin1);

@ -17,7 +17,10 @@
#include "../../Unicode/big5_to_utf8.map"
#include "../../Unicode/utf8_to_big5.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_big5",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(big5_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_big5);

@ -19,7 +19,10 @@
#include "../../Unicode/utf8_to_koi8u.map"
#include "../../Unicode/koi8u_to_utf8.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_cyrillic",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(utf8_to_koi8r);
PG_FUNCTION_INFO_V1(koi8r_to_utf8);

@ -17,7 +17,10 @@
#include "../../Unicode/euc_jis_2004_to_utf8.map"
#include "../../Unicode/utf8_to_euc_jis_2004.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_euc2004",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(euc_jis_2004_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_euc_jis_2004);

@ -17,7 +17,10 @@
#include "../../Unicode/euc_cn_to_utf8.map"
#include "../../Unicode/utf8_to_euc_cn.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_euc_cn",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(euc_cn_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_euc_cn);

@ -17,7 +17,10 @@
#include "../../Unicode/euc_jp_to_utf8.map"
#include "../../Unicode/utf8_to_euc_jp.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_euc_jp",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(euc_jp_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_euc_jp);

@ -17,7 +17,10 @@
#include "../../Unicode/euc_kr_to_utf8.map"
#include "../../Unicode/utf8_to_euc_kr.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_euc_kr",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(euc_kr_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_euc_kr);

@ -17,7 +17,10 @@
#include "../../Unicode/euc_tw_to_utf8.map"
#include "../../Unicode/utf8_to_euc_tw.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_euc_tw",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(euc_tw_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_euc_tw);

@ -17,7 +17,10 @@
#include "../../Unicode/gb18030_to_utf8.map"
#include "../../Unicode/utf8_to_gb18030.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_gb18030",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(gb18030_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_gb18030);

@ -17,7 +17,10 @@
#include "../../Unicode/gbk_to_utf8.map"
#include "../../Unicode/utf8_to_gbk.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_gbk",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(gbk_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_gbk);

@ -41,7 +41,10 @@
#include "../../Unicode/utf8_to_iso8859_9.map"
#include "../../Unicode/iso8859_16_to_utf8.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_iso8859",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(iso8859_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_iso8859);

@ -15,7 +15,10 @@
#include "fmgr.h"
#include "mb/pg_wchar.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_iso8859_1",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(iso8859_1_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_iso8859_1);

@ -17,7 +17,10 @@
#include "../../Unicode/johab_to_utf8.map"
#include "../../Unicode/utf8_to_johab.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_johab",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(johab_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_johab);

@ -17,7 +17,10 @@
#include "../../Unicode/sjis_to_utf8.map"
#include "../../Unicode/utf8_to_sjis.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_sjis",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(sjis_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_sjis);

@ -17,7 +17,10 @@
#include "../../Unicode/shift_jis_2004_to_utf8.map"
#include "../../Unicode/utf8_to_shift_jis_2004.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_sjis2004",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(shift_jis_2004_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_shift_jis_2004);

@ -17,7 +17,10 @@
#include "../../Unicode/uhc_to_utf8.map"
#include "../../Unicode/utf8_to_uhc.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_uhc",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(uhc_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_uhc);

@ -37,7 +37,10 @@
#include "../../Unicode/win874_to_utf8.map"
#include "../../Unicode/win1258_to_utf8.map"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "utf8_and_win",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(win_to_utf8);
PG_FUNCTION_INFO_V1(utf8_to_win);

@ -52,7 +52,10 @@ EXTERN_C void boot_DynaLoader(pTHX_ CV *cv);
EXTERN_C void boot_PostgreSQL__InServer__Util(pTHX_ CV *cv);
EXTERN_C void boot_PostgreSQL__InServer__SPI(pTHX_ CV *cv);
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "plperl",
.version = PG_VERSION
);
/**********************************************************************
* Information associated with a Perl interpreter. We have one interpreter

@ -31,7 +31,10 @@ static bool plpgsql_extra_checks_check_hook(char **newvalue, void **extra, GucSo
static void plpgsql_extra_warnings_assign_hook(const char *newvalue, void *extra);
static void plpgsql_extra_errors_assign_hook(const char *newvalue, void *extra);
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "plpgsql",
.version = PG_VERSION
);
/* Custom GUC variable */
static const struct config_enum_entry variable_conflict_options[] = {

@ -28,7 +28,10 @@
* exported functions
*/
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "plpython",
.version = PG_VERSION
);
PG_FUNCTION_INFO_V1(plpython3_validator);
PG_FUNCTION_INFO_V1(plpython3_call_handler);

@ -39,7 +39,10 @@
#include "utils/typcache.h"
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "pltcl",
.version = PG_VERSION
);
#define HAVE_TCL_VERSION(maj,min) \
((TCL_MAJOR_VERSION > maj) || \

@ -79,7 +79,10 @@
static void regress_lseg_construct(LSEG *lseg, Point *pt1, Point *pt2);
PG_MODULE_MAGIC;
PG_MODULE_MAGIC_EXT(
.name = "regress",
.version = PG_VERSION
);
/* return the point where two paths intersect, or NULL if no intersection. */

Loading…
Cancel
Save