From 49b52bcd5ec96c2c496212e4a9cd11b023dad0a9 Mon Sep 17 00:00:00 2001 From: Yuta MASANO Date: Mon, 26 May 2025 09:41:06 +0900 Subject: [PATCH] Fix Windows linkage errors by adding PGDLLEXPORT to function declarations (#139) The following functions in pg_ivm.h are now explicitly marked with PGDLLEXPORT: - IVM_immediate_before - IVM_immediate_maintenance - ivm_visible_in_prestate This change resolves linkage mismatches between function declarations in the header and their definitions using PG_FUNCTION_INFO_V1 in the implementation file, which caused build failures on Windows environments. --- pg_ivm.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pg_ivm.h b/pg_ivm.h index 88d7003..6215383 100644 --- a/pg_ivm.h +++ b/pg_ivm.h @@ -52,10 +52,10 @@ extern ObjectAddress ExecRefreshImmv(const RangeVar *relation, bool skipData, extern ObjectAddress RefreshImmvByOid(Oid matviewOid, bool is_create, bool skipData, const char *queryString, QueryCompletion *qc); extern bool ImmvIncrementalMaintenanceIsEnabled(void); -extern Datum IVM_immediate_before(PG_FUNCTION_ARGS); -extern Datum IVM_immediate_maintenance(PG_FUNCTION_ARGS); +extern PGDLLEXPORT Datum IVM_immediate_before(PG_FUNCTION_ARGS); +extern PGDLLEXPORT Datum IVM_immediate_maintenance(PG_FUNCTION_ARGS); extern Query* rewrite_query_for_exists_subquery(Query *query); -extern Datum ivm_visible_in_prestate(PG_FUNCTION_ARGS); +extern PGDLLEXPORT Datum ivm_visible_in_prestate(PG_FUNCTION_ARGS); extern void AtAbort_IVM(SubTransactionId subtxid); extern void AtPreCommit_IVM(void); extern char *getColumnNameStartWith(RangeTblEntry *rte, char *str, int *attnum);