pg_repack/lib/pgut/pgut-be.h
2017-04-10 11:44:17 +01:00

56 lines
1.3 KiB
C

/*-------------------------------------------------------------------------
*
* pgut-be.h
*
* Copyright (c) 2009-2011, NIPPON TELEGRAPH AND TELEPHONE CORPORATION
* Portions Copyright (c) 2012-2015, The Reorg Development Team
*
*-------------------------------------------------------------------------
*/
#ifndef PGUT_BE_H
#define PGUT_BE_H
#include "fmgr.h"
#include "utils/tuplestore.h"
#ifndef WIN32
#define PGUT_EXPORT
#else
#define PGUT_EXPORT __declspec(dllexport)
/*
* PG_MODULE_MAGIC and PG_FUNCTION_INFO_V1 macros seems to be broken.
* It uses PGDLLIMPORT, but those objects are not imported from postgres
* and exported from the user module. So, it should be always dllexported.
*/
#undef PG_MODULE_MAGIC
#define PG_MODULE_MAGIC \
extern PGUT_EXPORT const Pg_magic_struct *PG_MAGIC_FUNCTION_NAME(void); \
const Pg_magic_struct * \
PG_MAGIC_FUNCTION_NAME(void) \
{ \
static const Pg_magic_struct Pg_magic_data = PG_MODULE_MAGIC_DATA; \
return &Pg_magic_data; \
} \
extern int no_such_variable
#undef PG_FUNCTION_INFO_V1
#define PG_FUNCTION_INFO_V1(funcname) \
extern PGUT_EXPORT const Pg_finfo_record * CppConcat(pg_finfo_,funcname)(void); \
const Pg_finfo_record * \
CppConcat(pg_finfo_,funcname) (void) \
{ \
static const Pg_finfo_record my_finfo = { 1 }; \
return &my_finfo; \
} \
extern int no_such_variable
#endif
#endif /* PGUT_BE_H */