uqa_sql/ast/foreign_wrappers.rs
1//
2// Unified Query Algebra
3//
4// Copyright (c) 2023-2026 Cognica, Inc.
5//
6
7//! Written foreign-wrapper declarations, before catalog lookup and validation.
8
9use serde::{Deserialize, Serialize};
10
11#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
12pub struct CreateForeignWrapper {
13 pub name: String,
14 /// Preserve order and repeated clauses for execution-time `PostgreSQL` diagnostics.
15 pub functions: Vec<ForeignWrapperFunctionOption>,
16 pub options: Vec<(String, String)>,
17}
18
19#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
20pub enum ForeignWrapperFunctionOption {
21 Handler(Option<Vec<String>>),
22 Validator(Option<Vec<String>>),
23}