diff --git a/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs b/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs index ac255039da7be..e3fd768e907cb 100644 --- a/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs +++ b/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs @@ -884,7 +884,7 @@ impl CubeScanWrapperNode { vec![], vec![], vec![], - // TODO + vec![], from_alias.clone().unwrap_or("".to_string()), None, None, @@ -3579,7 +3579,7 @@ impl WrappedSelectNode { aggregate, patch_measures, filter, - window: _, + window, order, } = columns; @@ -3597,7 +3597,7 @@ impl WrappedSelectNode { group_by.into_iter().map(|(m, _)| m).collect(), group_descs, aggregate.into_iter().map(|(m, _)| m).collect(), - // TODO + window.into_iter().map(|(m, _)| m).collect(), from_alias.unwrap_or("".to_string()), if !filter.is_empty() { Some(filter.iter().map(|(f, _)| f.expr.to_string()).join(" AND ")) diff --git a/rust/cubesql/cubesql/src/transport/service.rs b/rust/cubesql/cubesql/src/transport/service.rs index e79e8a3f14f76..8b5a9dabdf20f 100644 --- a/rust/cubesql/cubesql/src/transport/service.rs +++ b/rust/cubesql/cubesql/src/transport/service.rs @@ -402,6 +402,7 @@ impl SqlTemplates { group_by: Vec, group_descs: Vec>, aggregate: Vec, + window: Vec, alias: String, filter: Option, _having: Option, @@ -412,11 +413,13 @@ impl SqlTemplates { ) -> Result { let group_by = self.to_template_columns(group_by)?; let aggregate = self.to_template_columns(aggregate)?; + let window = self.to_template_columns(window)?; let projection = self.to_template_columns(projection)?; let order_by = self.to_template_columns(order_by)?; let select_concat = group_by .iter() .chain(aggregate.iter()) + .chain(window.iter()) .chain(projection.iter()) .cloned() .collect::>(); @@ -437,6 +440,7 @@ impl SqlTemplates { select_concat => select_concat, group_by => group_by_expr, aggregate => aggregate, + window => window, projection => projection, order_by => order_by, filter => filter,