mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-07-07 17:04:59 +00:00
Add #[recursive]
(#1522)
Co-authored-by: Ifeanyi Ubah <ify1992@yahoo.com>
This commit is contained in:
parent
c973df35d6
commit
84e82e6e2e
8 changed files with 93 additions and 2 deletions
|
@ -42,6 +42,46 @@ fn basic_queries(c: &mut Criterion) {
|
|||
group.bench_function("sqlparser::with_select", |b| {
|
||||
b.iter(|| Parser::parse_sql(&dialect, with_query).unwrap());
|
||||
});
|
||||
|
||||
let large_statement = {
|
||||
let expressions = (0..1000)
|
||||
.map(|n| format!("FN_{}(COL_{})", n, n))
|
||||
.collect::<Vec<_>>()
|
||||
.join(", ");
|
||||
let tables = (0..1000)
|
||||
.map(|n| format!("TABLE_{}", n))
|
||||
.collect::<Vec<_>>()
|
||||
.join(" JOIN ");
|
||||
let where_condition = (0..1000)
|
||||
.map(|n| format!("COL_{} = {}", n, n))
|
||||
.collect::<Vec<_>>()
|
||||
.join(" OR ");
|
||||
let order_condition = (0..1000)
|
||||
.map(|n| format!("COL_{} DESC", n))
|
||||
.collect::<Vec<_>>()
|
||||
.join(", ");
|
||||
|
||||
format!(
|
||||
"SELECT {} FROM {} WHERE {} ORDER BY {}",
|
||||
expressions, tables, where_condition, order_condition
|
||||
)
|
||||
};
|
||||
|
||||
group.bench_function("parse_large_statement", |b| {
|
||||
b.iter(|| Parser::parse_sql(&dialect, criterion::black_box(large_statement.as_str())));
|
||||
});
|
||||
|
||||
let large_statement = Parser::parse_sql(&dialect, large_statement.as_str())
|
||||
.unwrap()
|
||||
.pop()
|
||||
.unwrap();
|
||||
|
||||
group.bench_function("format_large_statement", |b| {
|
||||
b.iter(|| {
|
||||
let formatted_query = large_statement.to_string();
|
||||
assert_eq!(formatted_query, large_statement);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
criterion_group!(benches, basic_queries);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue