@@ -97,6 +97,20 @@ fn criterion_benchmark(c: &mut Criterion) {
9797 } )
9898 } ) ;
9999
100+ c. bench_function ( "window order by and range offsets, aggregate functions" , |b| {
101+ b. iter ( || {
102+ query (
103+ ctx. clone ( ) ,
104+ & rt,
105+ "SELECT \
106+ MAX(f64) OVER (ORDER BY u64_narrow RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
107+ MIN(f32) OVER (ORDER BY u64_narrow DESC RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
108+ SUM(u64_narrow) OVER (ORDER BY u64_narrow ASC RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING) \
109+ FROM t",
110+ )
111+ } )
112+ } ) ;
113+
100114 c. bench_function ( "window order by, built-in functions" , |b| {
101115 b. iter ( || {
102116 query (
@@ -187,6 +201,23 @@ fn criterion_benchmark(c: &mut Criterion) {
187201 } ,
188202 ) ;
189203
204+ c. bench_function (
205+ "window partition and order by and range offsets, u64_wide, aggregate functions" ,
206+ |b| {
207+ b. iter ( || {
208+ query (
209+ ctx. clone ( ) ,
210+ & rt,
211+ "SELECT \
212+ MAX(f64) OVER (PARTITION BY u64_wide ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
213+ MIN(f32) OVER (PARTITION BY u64_wide ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
214+ SUM(u64_narrow) OVER (PARTITION BY u64_wide ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING) \
215+ FROM t",
216+ )
217+ } )
218+ } ,
219+ ) ;
220+
190221 c. bench_function (
191222 "window partition and order by, u64_narrow, aggregate functions" ,
192223 |b| {
@@ -204,6 +235,23 @@ fn criterion_benchmark(c: &mut Criterion) {
204235 } ,
205236 ) ;
206237
238+ c. bench_function (
239+ "window partition and order by and range offsets, u64_narrow, aggregate functions" ,
240+ |b| {
241+ b. iter ( || {
242+ query (
243+ ctx. clone ( ) ,
244+ & rt,
245+ "SELECT \
246+ MAX(f64) OVER (PARTITION BY u64_narrow ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
247+ MIN(f32) OVER (PARTITION BY u64_narrow ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
248+ SUM(u64_narrow) OVER (PARTITION BY u64_narrow ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING) \
249+ FROM t",
250+ )
251+ } )
252+ } ,
253+ ) ;
254+
207255 c. bench_function (
208256 "window partition and order by, u64_wide, built-in functions" ,
209257 |b| {
@@ -237,6 +285,23 @@ fn criterion_benchmark(c: &mut Criterion) {
237285 } )
238286 } ,
239287 ) ;
288+
289+ c. bench_function (
290+ "window partition and order by and range offsets, u64_wide, aggregate functions" ,
291+ |b| {
292+ b. iter ( || {
293+ query (
294+ ctx. clone ( ) ,
295+ & rt,
296+ "SELECT \
297+ MAX(f64) OVER (PARTITION BY u64_wide ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
298+ MIN(f32) OVER (PARTITION BY u64_wide ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING), \
299+ SUM(u64_narrow) OVER (PARTITION BY u64_wide ORDER by f64 RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING) \
300+ FROM t",
301+ )
302+ } )
303+ } ,
304+ ) ;
240305}
241306
242307criterion_group ! ( benches, criterion_benchmark) ;
0 commit comments