pub unsafe trait SqlTranslatable {
    // Required methods
    fn argument_sql() -> Result<SqlMapping, ArgumentError>;
    fn return_sql() -> Result<Returns, ReturnsError>;

    // Provided methods
    fn type_name() -> &'static str { ... }
    fn variadic() -> bool { ... }
    fn optional() -> bool { ... }
    fn entity() -> FunctionMetadataTypeEntity { ... }
}
Expand description

A value which can be represented in SQL

Safety

By implementing this, you assert you are not lying to either Postgres or Rust in doing so. This trait asserts a safe translation exists between values of this type from Rust to SQL, or from SQL into Rust. If you are mistaken about how this works, either the Postgres C API or the Rust handling in PGRX may emit undefined behavior.

It cannot be made private or sealed due to details of the structure of the PGRX framework. Nonetheless, if you are not confident the translation is valid: do not implement this trait.

Required Methods§

Provided Methods§

Implementations on Foreign Types§

source§

impl<E> SqlTranslatable for Result<(), E>where E: Any + Display,

source§

impl SqlTranslatable for &CStr

source§

impl SqlTranslatable for i64

source§

impl<T> SqlTranslatable for *mut Twhere T: SqlTranslatable,

source§

impl SqlTranslatable for char

source§

impl<T> SqlTranslatable for Vec<T>where T: SqlTranslatable,

source§

impl<T> SqlTranslatable for Option<T>where T: SqlTranslatable,

source§

impl SqlTranslatable for u32

source§

impl SqlTranslatable for i32

source§

impl<T, E> SqlTranslatable for Result<T, E>where T: SqlTranslatable, E: Any + Display,

source§

impl<'a> SqlTranslatable for &'a str

source§

impl SqlTranslatable for String

source§

impl SqlTranslatable for i16

source§

impl SqlTranslatable for CStr

source§

impl SqlTranslatable for bool

source§

impl SqlTranslatable for f64

source§

impl SqlTranslatable for u8

source§

impl SqlTranslatable for i8

source§

impl<'a> SqlTranslatable for &'a [u8]

source§

impl SqlTranslatable for f32

source§

impl<T> SqlTranslatable for &Twhere T: SqlTranslatable,

source§

impl SqlTranslatable for CString

Implementors§