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
126
127
128
129
130
131
132
133
134
#![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 atomics;
pub mod bgworkers;
pub mod lwlock;
pub mod memcxt;
pub mod misc;
pub mod namespace;
pub mod nodes;
pub mod pgbox;
pub mod rel;
pub mod shmem;
pub mod spi;
pub mod stringinfo;
pub mod trigger_support;
pub mod tupdesc;
pub mod varlena;
pub mod wrappers;
pub mod xid;
pub use atomics::*;
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 lwlock::*;
pub use memcxt::*;
pub use namespace::*;
pub use nodes::{is_a, PgNode, PgNodeFactory};
pub use pgbox::*;
pub use rel::*;
pub use shmem::*;
pub use spi::*;
pub use stringinfo::*;
pub use trigger_support::*;
pub use tupdesc::*;
pub use varlena::*;
pub use wrappers::*;
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();
}