@@ -92,6 +92,20 @@ fn criterion_benchmark(c: &mut Criterion) {
9292 } )
9393 } ) ;
9494
95+ c. bench_function ( "window order by and range offsets, aggregate functions" , |b| {
96+ b. iter ( || {
97+ query (
98+ ctx. clone ( ) ,
99+ & rt,
100+ "SELECT \
101+ MAX(f64) OVER (ORDER BY u64_narrow RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
102+ MIN(f32) OVER (ORDER BY u64_narrow DESC RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
103+ SUM(u64_narrow) OVER (ORDER BY u64_narrow ASC RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING) \
104+ FROM t",
105+ )
106+ } )
107+ } ) ;
108+
95109 c. bench_function ( "window order by, built-in functions" , |b| {
96110 b. iter ( || {
97111 query (
@@ -182,6 +196,23 @@ fn criterion_benchmark(c: &mut Criterion) {
182196 } ,
183197 ) ;
184198
199+ c. bench_function (
200+ "window partition and order by and range offsets, u64_wide, aggregate functions" ,
201+ |b| {
202+ b. iter ( || {
203+ query (
204+ ctx. clone ( ) ,
205+ & rt,
206+ "SELECT \
207+ MAX(f64) OVER (PARTITION BY u64_wide ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
208+ MIN(f32) OVER (PARTITION BY u64_wide ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
209+ SUM(u64_narrow) OVER (PARTITION BY u64_wide ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING) \
210+ FROM t",
211+ )
212+ } )
213+ } ,
214+ ) ;
215+
185216 c. bench_function (
186217 "window partition and order by, u64_narrow, aggregate functions" ,
187218 |b| {
@@ -199,6 +230,23 @@ fn criterion_benchmark(c: &mut Criterion) {
199230 } ,
200231 ) ;
201232
233+ c. bench_function (
234+ "window partition and order by and range offsets, u64_narrow, aggregate functions" ,
235+ |b| {
236+ b. iter ( || {
237+ query (
238+ ctx. clone ( ) ,
239+ & rt,
240+ "SELECT \
241+ MAX(f64) OVER (PARTITION BY u64_narrow ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
242+ MIN(f32) OVER (PARTITION BY u64_narrow ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
243+ SUM(u64_narrow) OVER (PARTITION BY u64_narrow ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING) \
244+ FROM t",
245+ )
246+ } )
247+ } ,
248+ ) ;
249+
202250 c. bench_function (
203251 "window partition and order by, u64_wide, built-in functions" ,
204252 |b| {
@@ -232,6 +280,23 @@ fn criterion_benchmark(c: &mut Criterion) {
232280 } )
233281 } ,
234282 ) ;
283+
284+ c. bench_function (
285+ "window partition and order by and range offsets, u64_wide, aggregate functions" ,
286+ |b| {
287+ b. iter ( || {
288+ query (
289+ ctx. clone ( ) ,
290+ & rt,
291+ "SELECT \
292+ MAX(f64) OVER (PARTITION BY u64_wide ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
293+ MIN(f32) OVER (PARTITION BY u64_wide ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
294+ SUM(u64_narrow) OVER (PARTITION BY u64_wide ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING) \
295+ FROM t",
296+ )
297+ } )
298+ } ,
299+ ) ;
235300}
236301
237302criterion_group ! ( benches, criterion_benchmark) ;
0 commit comments