use std::sync::Arc;
use super::ScalarValue;
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub struct ColumnRef {
pub name: Arc<str>,
}
impl ColumnRef {
#[must_use]
pub fn new<N>(name: N) -> Self
where
N: Into<Arc<str>>,
{
Self { name: name.into() }
}
}
#[derive(Clone, Debug, PartialEq)]
pub enum Operand {
Column(ColumnRef),
Literal(ScalarValue),
}
impl From<ColumnRef> for Operand {
fn from(value: ColumnRef) -> Self {
Self::Column(value)
}
}
impl From<ScalarValue> for Operand {
fn from(value: ScalarValue) -> Self {
Self::Literal(value)
}
}