mirror of
https://github.com/aljazceru/turso.git
synced 2026-01-05 01:04:22 +01:00
parser: replace KEYWORDS with matching
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
|
||||
use criterion::{criterion_group, criterion_main, Criterion};
|
||||
use fallible_iterator::FallibleIterator;
|
||||
use turso_sqlite3_parser::lexer::sql::Parser;
|
||||
use turso_sqlite3_parser::{dialect::keyword_token, lexer::sql::Parser};
|
||||
|
||||
fn basic_queries(c: &mut Criterion) {
|
||||
let mut group = c.benchmark_group("sqlparser-rs parsing benchmark");
|
||||
@@ -42,6 +42,152 @@ fn basic_queries(c: &mut Criterion) {
|
||||
assert!(parser.next().unwrap().unwrap().readonly())
|
||||
});
|
||||
});
|
||||
|
||||
static VALUES: [&[u8]; 136] = [
|
||||
b"ABORT",
|
||||
b"ACTION",
|
||||
b"ADD",
|
||||
b"AFTER",
|
||||
b"ALL",
|
||||
b"ALTER",
|
||||
b"ANALYZE",
|
||||
b"AND",
|
||||
b"AS",
|
||||
b"ASC",
|
||||
b"ATTACH",
|
||||
b"AUTOINCREMENT",
|
||||
b"BEFORE",
|
||||
b"BEGIN",
|
||||
b"BETWEEN",
|
||||
b"BY",
|
||||
b"CASCADE",
|
||||
b"CASE",
|
||||
b"CAST",
|
||||
b"CHECK",
|
||||
b"COLLATE",
|
||||
b"COLUMN",
|
||||
b"COMMIT",
|
||||
b"CONFLICT",
|
||||
b"CONSTRAINT",
|
||||
b"CREATE",
|
||||
b"CROSS",
|
||||
b"CURRENT",
|
||||
b"CURRENT_DATE",
|
||||
b"CURRENT_TIME",
|
||||
b"CURRENT_TIMESTAMP",
|
||||
b"DATABASE",
|
||||
b"DEFAULT",
|
||||
b"DEFERRABLE",
|
||||
b"DEFERRED",
|
||||
b"DELETE",
|
||||
b"DESC",
|
||||
b"DETACH",
|
||||
b"DISTINCT",
|
||||
b"DO",
|
||||
b"DROP",
|
||||
b"EACH",
|
||||
b"ELSE",
|
||||
b"END",
|
||||
b"ESCAPE",
|
||||
b"EXCEPT",
|
||||
b"EXCLUSIVE",
|
||||
b"EXISTS",
|
||||
b"EXPLAIN",
|
||||
b"FAIL",
|
||||
b"FILTER",
|
||||
b"FOLLOWING",
|
||||
b"FOR",
|
||||
b"FOREIGN",
|
||||
b"FROM",
|
||||
b"FULL",
|
||||
b"GLOB",
|
||||
b"GROUP",
|
||||
b"HAVING",
|
||||
b"IF",
|
||||
b"IGNORE",
|
||||
b"IMMEDIATE",
|
||||
b"IN",
|
||||
b"INDEX",
|
||||
b"INDEXED",
|
||||
b"INITIALLY",
|
||||
b"INNER",
|
||||
b"INSERT",
|
||||
b"INSTEAD",
|
||||
b"INTERSECT",
|
||||
b"INTO",
|
||||
b"IS",
|
||||
b"ISNULL",
|
||||
b"JOIN",
|
||||
b"KEY",
|
||||
b"LEFT",
|
||||
b"LIKE",
|
||||
b"LIMIT",
|
||||
b"MATCH",
|
||||
b"NATURAL",
|
||||
b"NO",
|
||||
b"NOT",
|
||||
b"NOTHING",
|
||||
b"NOTNULL",
|
||||
b"NULL",
|
||||
b"OF",
|
||||
b"OFFSET",
|
||||
b"ON",
|
||||
b"OR",
|
||||
b"ORDER",
|
||||
b"OUTER",
|
||||
b"OVER",
|
||||
b"PARTITION",
|
||||
b"PLAN",
|
||||
b"PRAGMA",
|
||||
b"PRECEDING",
|
||||
b"PRIMARY",
|
||||
b"QUERY",
|
||||
b"RAISE",
|
||||
b"RANGE",
|
||||
b"RECURSIVE",
|
||||
b"REFERENCES",
|
||||
b"REGEXP",
|
||||
b"REINDEX",
|
||||
b"RELEASE",
|
||||
b"RENAME",
|
||||
b"REPLACE",
|
||||
b"RESTRICT",
|
||||
b"RIGHT",
|
||||
b"ROLLBACK",
|
||||
b"ROW",
|
||||
b"ROWS",
|
||||
b"SAVEPOINT",
|
||||
b"SELECT",
|
||||
b"SET",
|
||||
b"TABLE",
|
||||
b"TEMP",
|
||||
b"TEMPORARY",
|
||||
b"THEN",
|
||||
b"TO",
|
||||
b"TRANSACTION",
|
||||
b"TRIGGER",
|
||||
b"UNBOUNDED",
|
||||
b"UNION",
|
||||
b"UNIQUE",
|
||||
b"UPDATE",
|
||||
b"USING",
|
||||
b"VACUUM",
|
||||
b"VALUES",
|
||||
b"VIEW",
|
||||
b"VIRTUAL",
|
||||
b"WHEN",
|
||||
b"WHERE",
|
||||
b"WINDOW",
|
||||
b"WITH",
|
||||
b"WITHOUT",
|
||||
];
|
||||
group.bench_with_input("keyword_token", &VALUES, |b, &s| {
|
||||
b.iter(|| {
|
||||
for value in &s {
|
||||
assert!(keyword_token(value).is_some())
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
criterion_group!(benches, basic_queries);
|
||||
|
||||
Reference in New Issue
Block a user