1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#![allow(clippy::missing_safety_doc)]
#![allow(clippy::cast_ptr_alignment)]
extern crate pgx_macros;
extern crate num_traits;
#[macro_use]
extern crate bitflags;
pub use pgx_macros::*;
pub mod callbacks;
pub mod datum;
pub mod enum_helper;
pub mod fcinfo;
pub mod guc;
pub mod hooks;
pub mod htup;
pub mod inoutfuncs;
pub mod itemptr;
pub mod list;
#[macro_use]
pub mod log;
pub mod bgworkers;
pub mod memcxt;
pub mod namespace;
pub mod nodes;
pub mod pgbox;
pub mod rel;
pub mod spi;
pub mod stringinfo;
pub mod trigger_support;
pub mod tupdesc;
pub mod varlena;
pub mod xid;
pub use callbacks::*;
pub use datum::*;
pub use enum_helper::*;
pub use fcinfo::*;
pub use guc::*;
pub use hooks::*;
pub use htup::*;
pub use inoutfuncs::*;
pub use itemptr::*;
pub use list::*;
pub use log::*;
pub use memcxt::*;
pub use namespace::*;
pub use nodes::{is_a, PgNode, PgNodeFactory};
pub use pgbox::*;
pub use rel::*;
pub use spi::*;
pub use stringinfo::*;
pub use trigger_support::*;
pub use tupdesc::*;
pub use varlena::*;
pub use xid::*;
pub use pgx_pg_sys as pg_sys;
pub use pgx_pg_sys::submodules::*;
#[macro_export]
macro_rules! pg_module_magic {
() => {
#[no_mangle]
#[allow(non_snake_case)]
#[allow(unused)]
#[link_name = "Pg_magic_func"]
pub extern "C" fn Pg_magic_func() -> &'static pgx::pg_sys::Pg_magic_struct {
use pgx;
use std::mem::size_of;
use std::os::raw::c_int;
const MY_MAGIC: pgx::pg_sys::Pg_magic_struct = pgx::pg_sys::Pg_magic_struct {
len: size_of::<pgx::pg_sys::Pg_magic_struct>() as c_int,
version: pgx::pg_sys::PG_VERSION_NUM as std::os::raw::c_int / 100,
funcmaxargs: pgx::pg_sys::FUNC_MAX_ARGS as c_int,
indexmaxkeys: pgx::pg_sys::INDEX_MAX_KEYS as c_int,
namedatalen: pgx::pg_sys::NAMEDATALEN as c_int,
float4byval: pgx::pg_sys::USE_FLOAT4_BYVAL as c_int,
float8byval: pgx::pg_sys::USE_FLOAT8_BYVAL as c_int,
};
pgx::initialize();
&MY_MAGIC
}
};
}
#[allow(unused)]
pub fn initialize() {
register_pg_guard_panic_handler();
}