use diesel::backend::*;
use diesel::sql_types::TypeMetadata;
use super::connection::bind_collector::OracleBindCollector;
use super::connection::OracleValue;
use super::query_builder::OciQueryBuilder;
use super::types::OciTypeMetadata;
#[derive(Debug, Hash, PartialEq, Eq, Default)]
pub struct Oracle;
impl Backend for Oracle {
type QueryBuilder = OciQueryBuilder;
type BindCollector<'a> = OracleBindCollector<'a>;
type RawValue<'a> = OracleValue<'a>;
}
impl TypeMetadata for Oracle {
type TypeMetadata = OciTypeMetadata;
type MetadataLookup = ();
}
impl TrustedBackend for Oracle {}
impl DieselReserveSpecialization for Oracle {}
impl SqlDialect for Oracle {
type ReturningClause = OracleReturningClause;
type OnConflictClause = sql_dialect::on_conflict_clause::DoesNotSupportOnConflictClause;
type InsertWithDefaultKeyword = sql_dialect::default_keyword_for_insert::IsoSqlDefaultKeyword;
type BatchInsertSupport = OracleStyleBatchInsert;
type DefaultValueClauseForInsert = sql_dialect::default_value_clause::AnsiDefaultValueClause;
type EmptyFromClauseSyntax = OracleDualForEmptySelectClause;
type ExistsSyntax = OracleExistsSyntax;
type ConcatClause = sql_dialect::concat_clause::ConcatWithPipesClause;
type ArrayComparison = sql_dialect::array_comparison::AnsiSqlArrayComparison;
type SelectStatementSyntax = sql_dialect::select_statement_syntax::AnsiSqlSelectStatement;
type AliasSyntax = OracleAliasSyntax;
type WindowFrameClauseGroupSupport =
sql_dialect::window_frame_clause_group_support::NoGroupWindowFrameUnit;
type WindowFrameExclusionSupport =
sql_dialect::window_frame_exclusion_support::NoFrameFrameExclusionSupport;
type AggregateFunctionExpressions =
sql_dialect::aggregate_function_expressions::NoAggregateFunctionExpressions;
type BuiltInWindowFunctionRequireOrder =
sql_dialect::built_in_window_function_require_order::NoOrderRequired;
}
pub struct OracleStyleBatchInsert;
pub struct OracleReturningClause;
pub struct OracleDualForEmptySelectClause;
pub struct OracleExistsSyntax;
pub struct OracleAliasSyntax;