@ -11,20 +11,22 @@ extern void _PG_init(void);
/* Linkage to functions in plpython module */
typedef char * ( * PLyObject_AsString_t ) ( PyObject * plrv ) ;
static PLyObject_AsString_t PLyObject_AsString_p ;
# if PY_MAJOR_VERSION >= 3
typedef PyObject * ( * PLyUnicode_FromStringAndSize_t ) ( const char * s , Py_ssize_t size ) ;
static PLyUnicode_FromStringAndSize_t PLyUnicode_FromStringAndSize_p ;
# endif
/* Linkage to functions in hstore module */
typedef HStore * ( * hstoreUpgrade_t ) ( Datum orig ) ;
typedef int ( * hstoreUniquePairs_t ) ( Pairs * a , int32 l , int32 * buflen ) ;
typedef HStore * ( * hstorePairs_t ) ( Pairs * pairs , int32 pcount , int32 buflen ) ;
typedef size_t ( * hstoreCheckKeyLen_t ) ( size_t len ) ;
typedef size_t ( * hstoreCheckValLen_t ) ( size_t len ) ;
static hstoreUpgrade_t hstoreUpgrade_p ;
typedef int ( * hstoreUniquePairs_t ) ( Pairs * a , int32 l , int32 * buflen ) ;
static hstoreUniquePairs_t hstoreUniquePairs_p ;
typedef HStore * ( * hstorePairs_t ) ( Pairs * pairs , int32 pcount , int32 buflen ) ;
static hstorePairs_t hstorePairs_p ;
typedef size_t ( * hstoreCheckKeyLen_t ) ( size_t len ) ;
static hstoreCheckKeyLen_t hstoreCheckKeyLen_p ;
typedef size_t ( * hstoreCheckValLen_t ) ( size_t len ) ;
static hstoreCheckValLen_t hstoreCheckValLen_p ;
@ -34,29 +36,34 @@ static hstoreCheckValLen_t hstoreCheckValLen_p;
void
_PG_init ( void )
{
/* These a sserts verify that typedefs above match original declarations */
/* A sserts verify that typedefs above match original declarations */
AssertVariableIsOfType ( & PLyObject_AsString , PLyObject_AsString_t ) ;
AssertVariableIsOfType ( & hstoreUpgrade , hstoreUpgrade_t ) ;
AssertVariableIsOfType ( & hstoreUniquePairs , hstoreUniquePairs_t ) ;
AssertVariableIsOfType ( & hstorePairs , hstorePairs_t ) ;
AssertVariableIsOfType ( & hstoreCheckKeyLen , hstoreCheckKeyLen_t ) ;
AssertVariableIsOfType ( & hstoreCheckValLen , hstoreCheckValLen_t ) ;
PLyObject_AsString_p = ( PLyObject_AsString_t )
load_external_function ( " $libdir/ " PLPYTHON_LIBNAME , " PLyObject_AsString " ,
true , NULL ) ;
# if PY_MAJOR_VERSION >= 3
AssertVariableIsOfType ( & PLyUnicode_FromStringAndSize , PLyUnicode_FromStringAndSize_t ) ;
PLyUnicode_FromStringAndSize_p = ( PLyUnicode_FromStringAndSize_t )
load_external_function ( " $libdir/ " PLPYTHON_LIBNAME , " PLyUnicode_FromStringAndSize " ,
true , NULL ) ;
# endif
AssertVariableIsOfType ( & hstoreUpgrade , hstoreUpgrade_t ) ;
hstoreUpgrade_p = ( hstoreUpgrade_t )
load_external_function ( " $libdir/hstore " , " hstoreUpgrade " ,
true , NULL ) ;
AssertVariableIsOfType ( & hstoreUniquePairs , hstoreUniquePairs_t ) ;
hstoreUniquePairs_p = ( hstoreUniquePairs_t )
load_external_function ( " $libdir/hstore " , " hstoreUniquePairs " ,
true , NULL ) ;
AssertVariableIsOfType ( & hstorePairs , hstorePairs_t ) ;
hstorePairs_p = ( hstorePairs_t )
load_external_function ( " $libdir/hstore " , " hstorePairs " ,
true , NULL ) ;
AssertVariableIsOfType ( & hstoreCheckKeyLen , hstoreCheckKeyLen_t ) ;
hstoreCheckKeyLen_p = ( hstoreCheckKeyLen_t )
load_external_function ( " $libdir/hstore " , " hstoreCheckKeyLen " ,
true , NULL ) ;
AssertVariableIsOfType ( & hstoreCheckValLen , hstoreCheckValLen_t ) ;
hstoreCheckValLen_p = ( hstoreCheckValLen_t )
load_external_function ( " $libdir/hstore " , " hstoreCheckValLen " ,
true , NULL ) ;
@ -65,6 +72,7 @@ _PG_init(void)
/* These defines must be after the module init function */
# define PLyObject_AsString PLyObject_AsString_p
# define PLyUnicode_FromStringAndSize PLyUnicode_FromStringAndSize_p
# define hstoreUpgrade hstoreUpgrade_p
# define hstoreUniquePairs hstoreUniquePairs_p
# define hstorePairs hstorePairs_p