use crate::prelude::{BoxedSql, ColumnType, Entity, EntityColumn, VirtualColumn};
pub trait CountColumn<U: Entity> {
fn count_column(&self, distinct: bool) -> VirtualColumn<i64, U>;
}
impl<T: ColumnType, U: Entity> CountColumn<U> for EntityColumn<T, U> {
fn count_column(&self, distinct: bool) -> VirtualColumn<i64, U> {
let sql = self.get_sql();
VirtualColumn::new(BoxedSql::new(
format!("COUNT({}{})", if distinct { "DISTINCT " } else { "" }, sql.sql),
sql.values,
))
}
}