use crate::optimizer::cost_based::ndv::DEFAULT_JOIN_SELECTIVITY;
use linkrs_core::types::ContextualExpression;
#[derive(Debug, Clone)]
pub struct JoinCondition {
pub left_table: String,
pub right_table: String,
pub selectivity: f64,
pub expression: Option<ContextualExpression>,
}
impl JoinCondition {
pub fn new(left_table: String, right_table: String) -> Self {
Self {
left_table,
right_table,
selectivity: DEFAULT_JOIN_SELECTIVITY,
expression: None,
}
}
pub fn with_selectivity(mut self, selectivity: f64) -> Self {
self.selectivity = selectivity.clamp(0.0, 1.0);
self
}
pub fn with_expression(mut self, expression: ContextualExpression) -> Self {
self.expression = Some(expression);
self
}
}