use crate::drivers::postgresql::raw_sql::PostgresSqlTransactionMode;
pub use athena_gateway::{
GATEWAY_DEFERRED_KIND_DELETE, GATEWAY_DEFERRED_KIND_FETCH, GATEWAY_DEFERRED_KIND_INSERT,
GATEWAY_DEFERRED_KIND_QUERY, GATEWAY_DEFERRED_KIND_RPC, GATEWAY_DEFERRED_KIND_UPDATE,
GatewayApiRequest, GatewayApiRequestPayload, GatewayDeferredRequest, GatewayDeleteRequest,
GatewayDeleteResourceIdPlan, GatewayFetchRequest, GatewayInsertRequest, GatewayOperationKind,
GatewayRequestCondition, GatewayRowsMeta, GatewayRowsResponse, GatewayRpcFilter,
GatewayRpcFilterOperator, GatewayRpcOrder, GatewayRpcRequest, GatewaySqlExecutionMode,
GatewaySqlExecutionRequest, GatewaySqlRequest, GatewayUpdateRequest, extract_update_payload,
normalize_delete_resource_id_column_name, normalize_delete_resource_id_lookup_table,
normalize_gateway_schema_name, parse_columns_from_body, parse_conditions_from_body,
plan_delete_resource_id_resolution, qualify_gateway_table_name, schema_name_from_body,
};
pub fn gateway_sql_execution_mode_to_transaction_mode(
value: GatewaySqlExecutionMode,
) -> PostgresSqlTransactionMode {
match value {
GatewaySqlExecutionMode::SingleTransaction => PostgresSqlTransactionMode::SingleTransaction,
GatewaySqlExecutionMode::PerStatement => PostgresSqlTransactionMode::PerStatement,
}
}
pub fn postgres_sql_transaction_mode_to_gateway_execution_mode(
value: PostgresSqlTransactionMode,
) -> GatewaySqlExecutionMode {
match value {
PostgresSqlTransactionMode::SingleTransaction => GatewaySqlExecutionMode::SingleTransaction,
PostgresSqlTransactionMode::PerStatement => GatewaySqlExecutionMode::PerStatement,
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn gateway_sql_execution_mode_maps_to_driver_mode() {
assert_eq!(
gateway_sql_execution_mode_to_transaction_mode(GatewaySqlExecutionMode::PerStatement),
PostgresSqlTransactionMode::PerStatement
);
}
}