use crate::ast::{Column, IntoOrderDefinition, Over};
#[derive(Debug, Default, Clone, PartialEq)]
pub struct RowNumber<'a> {
pub(crate) over: Over<'a>,
}
impl<'a> RowNumber<'a> {
pub fn order_by<T>(mut self, value: T) -> Self
where
T: IntoOrderDefinition<'a>,
{
self.over.ordering.append(value.into_order_definition());
self
}
pub fn partition_by<T>(mut self, partition: T) -> Self
where
T: Into<Column<'a>>,
{
self.over.partitioning.push(partition.into());
self
}
}
pub fn row_number<'a>() -> RowNumber<'a> {
RowNumber::default()
}