grafbase_sql_ast/ast/function/
row_number.rs1use crate::ast::{Column, IntoOrderDefinition, Over};
2
3#[derive(Debug, Default, Clone, PartialEq)]
4pub struct RowNumber<'a> {
7 pub(crate) over: Over<'a>,
8}
9
10impl<'a> RowNumber<'a> {
11 pub fn order_by<T>(mut self, value: T) -> Self
13 where
14 T: IntoOrderDefinition<'a>,
15 {
16 self.over.ordering.append(value.into_order_definition());
17 self
18 }
19
20 pub fn partition_by<T>(mut self, partition: T) -> Self
22 where
23 T: Into<Column<'a>>,
24 {
25 self.over.partitioning.push(partition.into());
26 self
27 }
28}
29
30pub fn row_number<'a>() -> RowNumber<'a> {
32 RowNumber::default()
33}