Skip to main content

pgrx_pg_sys/submodules/
sql_translatable.rs

1//LICENSE Portions Copyright 2019-2021 ZomboDB, LLC.
2//LICENSE
3//LICENSE Portions Copyright 2021-2023 Technology Concepts & Design, Inc.
4//LICENSE
5//LICENSE Portions Copyright 2023-2023 PgCentral Foundation, Inc. <contact@pgcentral.org>
6//LICENSE
7//LICENSE All rights reserved.
8//LICENSE
9//LICENSE Use of this source code is governed by the MIT license that can be found in the LICENSE file.
10use crate::{
11    BOX, CIRCLE, Datum, FdwRoutine, FunctionCallInfoBaseData, IndexAmRoutine, ItemPointerData,
12    LINE, LSEG, PlannerInfo, Point, TableAmRoutine,
13};
14use pgrx_sql_entity_graph::metadata::{
15    ArgumentError, ReturnsError, ReturnsRef, SqlMappingRef, SqlTranslatable, TypeOrigin,
16};
17
18unsafe impl SqlTranslatable for FunctionCallInfoBaseData {
19    const TYPE_IDENT: &'static str =
20        pgrx_sql_entity_graph::pgrx_resolved_type!(FunctionCallInfoBaseData);
21    const TYPE_ORIGIN: TypeOrigin = TypeOrigin::External;
22    const ARGUMENT_SQL: Result<SqlMappingRef, ArgumentError> = Ok(SqlMappingRef::Skip);
23    const RETURN_SQL: Result<ReturnsRef, ReturnsError> = Ok(ReturnsRef::One(SqlMappingRef::Skip));
24}
25
26unsafe impl SqlTranslatable for PlannerInfo {
27    const TYPE_IDENT: &'static str = pgrx_sql_entity_graph::pgrx_resolved_type!(PlannerInfo);
28    const TYPE_ORIGIN: TypeOrigin = TypeOrigin::External;
29    const ARGUMENT_SQL: Result<SqlMappingRef, ArgumentError> =
30        Ok(SqlMappingRef::literal("internal"));
31    const RETURN_SQL: Result<ReturnsRef, ReturnsError> =
32        Ok(ReturnsRef::One(SqlMappingRef::literal("internal")));
33}
34
35unsafe impl SqlTranslatable for IndexAmRoutine {
36    const TYPE_IDENT: &'static str = pgrx_sql_entity_graph::pgrx_resolved_type!(IndexAmRoutine);
37    const TYPE_ORIGIN: TypeOrigin = TypeOrigin::External;
38    const ARGUMENT_SQL: Result<SqlMappingRef, ArgumentError> =
39        Ok(SqlMappingRef::literal("internal"));
40    const RETURN_SQL: Result<ReturnsRef, ReturnsError> =
41        Ok(ReturnsRef::One(SqlMappingRef::literal("internal")));
42}
43
44unsafe impl SqlTranslatable for TableAmRoutine {
45    const TYPE_IDENT: &'static str = pgrx_sql_entity_graph::pgrx_resolved_type!(TableAmRoutine);
46    const TYPE_ORIGIN: TypeOrigin = TypeOrigin::External;
47    const ARGUMENT_SQL: Result<SqlMappingRef, ArgumentError> =
48        Ok(SqlMappingRef::literal("internal"));
49    const RETURN_SQL: Result<ReturnsRef, ReturnsError> =
50        Ok(ReturnsRef::One(SqlMappingRef::literal("internal")));
51}
52
53unsafe impl SqlTranslatable for FdwRoutine {
54    const TYPE_IDENT: &'static str = pgrx_sql_entity_graph::pgrx_resolved_type!(FdwRoutine);
55    const TYPE_ORIGIN: TypeOrigin = TypeOrigin::External;
56    const ARGUMENT_SQL: Result<SqlMappingRef, ArgumentError> =
57        Ok(SqlMappingRef::literal("fdw_handler"));
58    const RETURN_SQL: Result<ReturnsRef, ReturnsError> =
59        Ok(ReturnsRef::One(SqlMappingRef::literal("fdw_handler")));
60}
61
62unsafe impl SqlTranslatable for BOX {
63    const TYPE_IDENT: &'static str = pgrx_sql_entity_graph::pgrx_resolved_type!(BOX);
64    const TYPE_ORIGIN: TypeOrigin = TypeOrigin::External;
65    const ARGUMENT_SQL: Result<SqlMappingRef, ArgumentError> = Ok(SqlMappingRef::literal("box"));
66    const RETURN_SQL: Result<ReturnsRef, ReturnsError> =
67        Ok(ReturnsRef::One(SqlMappingRef::literal("box")));
68}
69
70unsafe impl SqlTranslatable for CIRCLE {
71    const TYPE_IDENT: &'static str = pgrx_sql_entity_graph::pgrx_resolved_type!(CIRCLE);
72    const TYPE_ORIGIN: TypeOrigin = TypeOrigin::External;
73    const ARGUMENT_SQL: Result<SqlMappingRef, ArgumentError> = Ok(SqlMappingRef::literal("circle"));
74    const RETURN_SQL: Result<ReturnsRef, ReturnsError> =
75        Ok(ReturnsRef::One(SqlMappingRef::literal("circle")));
76}
77
78unsafe impl SqlTranslatable for LINE {
79    const TYPE_IDENT: &'static str = pgrx_sql_entity_graph::pgrx_resolved_type!(LINE);
80    const TYPE_ORIGIN: TypeOrigin = TypeOrigin::External;
81    const ARGUMENT_SQL: Result<SqlMappingRef, ArgumentError> = Ok(SqlMappingRef::literal("line"));
82    const RETURN_SQL: Result<ReturnsRef, ReturnsError> =
83        Ok(ReturnsRef::One(SqlMappingRef::literal("line")));
84}
85
86unsafe impl SqlTranslatable for LSEG {
87    const TYPE_IDENT: &'static str = pgrx_sql_entity_graph::pgrx_resolved_type!(LSEG);
88    const TYPE_ORIGIN: TypeOrigin = TypeOrigin::External;
89    const ARGUMENT_SQL: Result<SqlMappingRef, ArgumentError> = Ok(SqlMappingRef::literal("lseg"));
90    const RETURN_SQL: Result<ReturnsRef, ReturnsError> =
91        Ok(ReturnsRef::One(SqlMappingRef::literal("lseg")));
92}
93
94unsafe impl SqlTranslatable for Point {
95    const TYPE_IDENT: &'static str = pgrx_sql_entity_graph::pgrx_resolved_type!(Point);
96    const TYPE_ORIGIN: TypeOrigin = TypeOrigin::External;
97    const ARGUMENT_SQL: Result<SqlMappingRef, ArgumentError> = Ok(SqlMappingRef::literal("point"));
98    const RETURN_SQL: Result<ReturnsRef, ReturnsError> =
99        Ok(ReturnsRef::One(SqlMappingRef::literal("point")));
100}
101
102unsafe impl SqlTranslatable for ItemPointerData {
103    const TYPE_IDENT: &'static str = pgrx_sql_entity_graph::pgrx_resolved_type!(ItemPointerData);
104    const TYPE_ORIGIN: TypeOrigin = TypeOrigin::External;
105    const ARGUMENT_SQL: Result<SqlMappingRef, ArgumentError> = Ok(SqlMappingRef::literal("tid"));
106    const RETURN_SQL: Result<ReturnsRef, ReturnsError> =
107        Ok(ReturnsRef::One(SqlMappingRef::literal("tid")));
108}
109
110unsafe impl SqlTranslatable for Datum {
111    const TYPE_IDENT: &'static str = pgrx_sql_entity_graph::pgrx_resolved_type!(Datum);
112    const TYPE_ORIGIN: TypeOrigin = TypeOrigin::External;
113    const ARGUMENT_SQL: Result<SqlMappingRef, ArgumentError> = Err(ArgumentError::Datum);
114    const RETURN_SQL: Result<ReturnsRef, ReturnsError> = Err(ReturnsError::Datum);
115}