Rename limbo_sqlite3_parser crate to turso_sqlite3_parser

This commit is contained in:
Pekka Enberg 2025-06-29 12:34:46 +03:00
parent 796b03b048
commit 725c3e4ddc
63 changed files with 162 additions and 162 deletions

48
Cargo.lock generated
View file

@ -1837,7 +1837,6 @@ dependencies = [
"dirs 6.0.0", "dirs 6.0.0",
"env_logger 0.10.2", "env_logger 0.10.2",
"hex", "hex",
"limbo_sqlite3_parser",
"log", "log",
"notify", "notify",
"rand 0.8.5", "rand 0.8.5",
@ -1850,6 +1849,7 @@ dependencies = [
"tracing", "tracing",
"tracing-subscriber", "tracing-subscriber",
"turso_core", "turso_core",
"turso_sqlite3_parser",
] ]
[[package]] [[package]]
@ -1865,27 +1865,6 @@ dependencies = [
"turso_core", "turso_core",
] ]
[[package]]
name = "limbo_sqlite3_parser"
version = "0.1.0-pre.2"
dependencies = [
"bitflags 2.9.0",
"cc",
"env_logger 0.11.7",
"fallible-iterator",
"indexmap 2.8.0",
"log",
"memchr",
"miette",
"phf",
"phf_codegen",
"phf_shared",
"serde",
"strum",
"strum_macros",
"uncased",
]
[[package]] [[package]]
name = "limbo_sqlite_test_ext" name = "limbo_sqlite_test_ext"
version = "0.1.0-pre.2" version = "0.1.0-pre.2"
@ -3228,7 +3207,7 @@ version = "0.1.0"
dependencies = [ dependencies = [
"criterion", "criterion",
"fallible-iterator", "fallible-iterator",
"limbo_sqlite3_parser", "turso_sqlite3_parser",
] ]
[[package]] [[package]]
@ -3747,7 +3726,6 @@ dependencies = [
"limbo_percentile", "limbo_percentile",
"limbo_regexp", "limbo_regexp",
"limbo_series", "limbo_series",
"limbo_sqlite3_parser",
"limbo_time", "limbo_time",
"limbo_uuid", "limbo_uuid",
"lru", "lru",
@ -3777,6 +3755,7 @@ dependencies = [
"tracing", "tracing",
"turso_ext", "turso_ext",
"turso_macros", "turso_macros",
"turso_sqlite3_parser",
"uncased", "uncased",
] ]
@ -3819,6 +3798,27 @@ dependencies = [
"turso_core", "turso_core",
] ]
[[package]]
name = "turso_sqlite3_parser"
version = "0.1.0-pre.2"
dependencies = [
"bitflags 2.9.0",
"cc",
"env_logger 0.11.7",
"fallible-iterator",
"indexmap 2.8.0",
"log",
"memchr",
"miette",
"phf",
"phf_codegen",
"phf_shared",
"serde",
"strum",
"strum_macros",
"uncased",
]
[[package]] [[package]]
name = "uncased" name = "uncased"
version = "0.9.10" version = "0.9.10"

View file

@ -50,7 +50,7 @@ turso_macros = { path = "macros", version = "0.1.0-pre.2" }
limbo_percentile = { path = "extensions/percentile", version = "0.1.0-pre.2" } limbo_percentile = { path = "extensions/percentile", version = "0.1.0-pre.2" }
limbo_regexp = { path = "extensions/regexp", version = "0.1.0-pre.2" } limbo_regexp = { path = "extensions/regexp", version = "0.1.0-pre.2" }
limbo_series = { path = "extensions/series", version = "0.1.0-pre.2" } limbo_series = { path = "extensions/series", version = "0.1.0-pre.2" }
limbo_sqlite3_parser = { path = "vendored/sqlite3-parser", version = "0.1.0-pre.2" } turso_sqlite3_parser = { path = "vendored/sqlite3-parser", version = "0.1.0-pre.2" }
limbo_time = { path = "extensions/time", version = "0.1.0-pre.2" } limbo_time = { path = "extensions/time", version = "0.1.0-pre.2" }
limbo_uuid = { path = "extensions/uuid", version = "0.1.0-pre.2" } limbo_uuid = { path = "extensions/uuid", version = "0.1.0-pre.2" }
strum = { version = "0.26", features = ["derive"] } strum = { version = "0.26", features = ["derive"] }

View file

@ -52,7 +52,7 @@ cfg_block = "0.1.1"
fallible-iterator = "0.3.0" fallible-iterator = "0.3.0"
hex = "0.4.3" hex = "0.4.3"
libc = { version = "0.2.172", optional = true } libc = { version = "0.2.172", optional = true }
limbo_sqlite3_parser = { workspace = true } turso_sqlite3_parser = { workspace = true }
thiserror = "1.0.61" thiserror = "1.0.61"
getrandom = { version = "0.2.15" } getrandom = { version = "0.2.15" }
regex = "1.11.1" regex = "1.11.1"

View file

@ -14,7 +14,7 @@ pub enum LimboError {
ParseError(String), ParseError(String),
#[error(transparent)] #[error(transparent)]
#[diagnostic(transparent)] #[diagnostic(transparent)]
LexerError(#[from] limbo_sqlite3_parser::lexer::sql::Error), LexerError(#[from] turso_sqlite3_parser::lexer::sql::Error),
#[error("Conversion error: {0}")] #[error("Conversion error: {0}")]
ConversionError(String), ConversionError(String),
#[error("Env variable error: {0}")] #[error("Env variable error: {0}")]

View file

@ -50,7 +50,6 @@ pub use io::{
Buffer, Completion, CompletionType, File, MemoryIO, OpenFlags, PlatformIO, SyscallIO, Buffer, Completion, CompletionType, File, MemoryIO, OpenFlags, PlatformIO, SyscallIO,
WriteCompletion, IO, WriteCompletion, IO,
}; };
use limbo_sqlite3_parser::{ast, ast::Cmd, lexer::sql::Parser};
use parking_lot::RwLock; use parking_lot::RwLock;
use schema::Schema; use schema::Schema;
use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::atomic::{AtomicUsize, Ordering};
@ -80,6 +79,7 @@ pub use storage::{
}; };
use tracing::{instrument, Level}; use tracing::{instrument, Level};
use translate::select::prepare_select_plan; use translate::select::prepare_select_plan;
use turso_sqlite3_parser::{ast, ast::Cmd, lexer::sql::Parser};
pub use types::RefValue; pub use types::RefValue;
pub use types::Value; pub use types::Value;
use util::parse_schema_rows; use util::parse_schema_rows;

View file

@ -1,8 +1,8 @@
use crate::{Connection, LimboError, Statement, StepResult, Value}; use crate::{Connection, LimboError, Statement, StepResult, Value};
use bitflags::bitflags; use bitflags::bitflags;
use limbo_sqlite3_parser::ast::PragmaName;
use std::str::FromStr; use std::str::FromStr;
use std::sync::Arc; use std::sync::Arc;
use turso_sqlite3_parser::ast::PragmaName;
bitflags! { bitflags! {
// Flag names match those used in SQLite: // Flag names match those used in SQLite:

View file

@ -4,15 +4,15 @@ use crate::{util::normalize_ident, Result};
use crate::{LimboError, VirtualTable}; use crate::{LimboError, VirtualTable};
use core::fmt; use core::fmt;
use fallible_iterator::FallibleIterator; use fallible_iterator::FallibleIterator;
use limbo_sqlite3_parser::ast::{self, ColumnDefinition, Expr, Literal, SortOrder, TableOptions};
use limbo_sqlite3_parser::{
ast::{Cmd, CreateTableBody, QualifiedName, ResultColumn, Stmt},
lexer::sql::Parser,
};
use std::collections::{BTreeSet, HashMap}; use std::collections::{BTreeSet, HashMap};
use std::rc::Rc; use std::rc::Rc;
use std::sync::Arc; use std::sync::Arc;
use tracing::trace; use tracing::trace;
use turso_sqlite3_parser::ast::{self, ColumnDefinition, Expr, Literal, SortOrder, TableOptions};
use turso_sqlite3_parser::{
ast::{Cmd, CreateTableBody, QualifiedName, ResultColumn, Stmt},
lexer::sql::Parser,
};
const SCHEMA_TABLE_NAME: &str = "sqlite_schema"; const SCHEMA_TABLE_NAME: &str = "sqlite_schema";
const SCHEMA_TABLE_NAME_ALT: &str = "sqlite_master"; const SCHEMA_TABLE_NAME_ALT: &str = "sqlite_master";
@ -389,7 +389,7 @@ fn create_table(
is_strict = options.contains(TableOptions::STRICT); is_strict = options.contains(TableOptions::STRICT);
if let Some(constraints) = constraints { if let Some(constraints) = constraints {
for c in constraints { for c in constraints {
if let limbo_sqlite3_parser::ast::TableConstraint::PrimaryKey { if let turso_sqlite3_parser::ast::TableConstraint::PrimaryKey {
columns, .. columns, ..
} = c.constraint } = c.constraint
{ {
@ -406,7 +406,7 @@ fn create_table(
primary_key_columns primary_key_columns
.push((col_name, column.order.unwrap_or(SortOrder::Asc))); .push((col_name, column.order.unwrap_or(SortOrder::Asc)));
} }
} else if let limbo_sqlite3_parser::ast::TableConstraint::Unique { } else if let turso_sqlite3_parser::ast::TableConstraint::Unique {
columns, columns,
conflict_clause, conflict_clause,
} = c.constraint } = c.constraint
@ -490,7 +490,7 @@ fn create_table(
let mut collation = None; let mut collation = None;
for c_def in &col_def.constraints { for c_def in &col_def.constraints {
match &c_def.constraint { match &c_def.constraint {
limbo_sqlite3_parser::ast::ColumnConstraint::PrimaryKey { turso_sqlite3_parser::ast::ColumnConstraint::PrimaryKey {
order: o, order: o,
.. ..
} => { } => {
@ -499,20 +499,20 @@ fn create_table(
order = *o; order = *o;
} }
} }
limbo_sqlite3_parser::ast::ColumnConstraint::NotNull { .. } => { turso_sqlite3_parser::ast::ColumnConstraint::NotNull { .. } => {
notnull = true; notnull = true;
} }
limbo_sqlite3_parser::ast::ColumnConstraint::Default(expr) => { turso_sqlite3_parser::ast::ColumnConstraint::Default(expr) => {
default = Some(expr.clone()) default = Some(expr.clone())
} }
// TODO: for now we don't check Resolve type of unique // TODO: for now we don't check Resolve type of unique
limbo_sqlite3_parser::ast::ColumnConstraint::Unique(on_conflict) => { turso_sqlite3_parser::ast::ColumnConstraint::Unique(on_conflict) => {
if on_conflict.is_some() { if on_conflict.is_some() {
unimplemented!("ON CONFLICT not implemented"); unimplemented!("ON CONFLICT not implemented");
} }
unique = true; unique = true;
} }
limbo_sqlite3_parser::ast::ColumnConstraint::Collate { collation_name } => { turso_sqlite3_parser::ast::ColumnConstraint::Collate { collation_name } => {
collation = Some(CollationSeq::new(collation_name.0.as_str())?); collation = Some(CollationSeq::new(collation_name.0.as_str())?);
} }
// Collate // Collate

View file

@ -1,4 +1,4 @@
use limbo_sqlite3_parser::ast; use turso_sqlite3_parser::ast;
use crate::{ use crate::{
function::AggFunc, function::AggFunc,

View file

@ -1,5 +1,5 @@
use fallible_iterator::FallibleIterator as _; use fallible_iterator::FallibleIterator as _;
use limbo_sqlite3_parser::{ast, lexer::sql::Parser}; use turso_sqlite3_parser::{ast, lexer::sql::Parser};
use crate::{ use crate::{
function::{AlterTableFunc, Func}, function::{AlterTableFunc, Func},

View file

@ -5,9 +5,9 @@ use crate::vdbe::builder::{CursorType, ProgramBuilder};
use crate::vdbe::insn::Insn; use crate::vdbe::insn::Insn;
use crate::vdbe::BranchOffset; use crate::vdbe::BranchOffset;
use crate::SymbolTable; use crate::SymbolTable;
use limbo_sqlite3_parser::ast::{CompoundOperator, SortOrder};
use std::sync::Arc; use std::sync::Arc;
use tracing::instrument; use tracing::instrument;
use turso_sqlite3_parser::ast::{CompoundOperator, SortOrder};
use tracing::Level; use tracing::Level;

View file

@ -5,7 +5,7 @@ use crate::translate::plan::{DeletePlan, Operation, Plan};
use crate::translate::planner::{parse_limit, parse_where}; use crate::translate::planner::{parse_limit, parse_where};
use crate::vdbe::builder::{ProgramBuilder, ProgramBuilderOpts, QueryMode, TableRefIdCounter}; use crate::vdbe::builder::{ProgramBuilder, ProgramBuilderOpts, QueryMode, TableRefIdCounter};
use crate::{schema::Schema, Result, SymbolTable}; use crate::{schema::Schema, Result, SymbolTable};
use limbo_sqlite3_parser::ast::{Expr, Limit, QualifiedName}; use turso_sqlite3_parser::ast::{Expr, Limit, QualifiedName};
use super::plan::{ColumnUsedMask, IterationDirection, JoinedTable, TableReferences}; use super::plan::{ColumnUsedMask, IterationDirection, JoinedTable, TableReferences};

View file

@ -1,7 +1,7 @@
use core::fmt; use core::fmt;
use std::fmt::{Display, Formatter}; use std::fmt::{Display, Formatter};
use limbo_sqlite3_parser::{ use turso_sqlite3_parser::{
ast::{SortOrder, TableInternalId}, ast::{SortOrder, TableInternalId},
to_sql_string::{ToSqlContext, ToSqlString}, to_sql_string::{ToSqlContext, ToSqlString},
}; };
@ -315,7 +315,7 @@ impl ToSqlString for Plan {
} }
impl ToSqlString for JoinedTable { impl ToSqlString for JoinedTable {
fn to_sql_string<C: limbo_sqlite3_parser::to_sql_string::ToSqlContext>( fn to_sql_string<C: turso_sqlite3_parser::to_sql_string::ToSqlContext>(
&self, &self,
_context: &C, _context: &C,
) -> String { ) -> String {
@ -349,7 +349,7 @@ impl ToSqlString for JoinedTable {
// TODO: currently cannot print the original CTE as it is optimized into a subquery // TODO: currently cannot print the original CTE as it is optimized into a subquery
impl ToSqlString for SelectPlan { impl ToSqlString for SelectPlan {
fn to_sql_string<C: limbo_sqlite3_parser::to_sql_string::ToSqlContext>( fn to_sql_string<C: turso_sqlite3_parser::to_sql_string::ToSqlContext>(
&self, &self,
context: &C, context: &C,
) -> String { ) -> String {

View file

@ -3,8 +3,8 @@
use std::rc::Rc; use std::rc::Rc;
use limbo_sqlite3_parser::ast::{self, Expr};
use tracing::{instrument, Level}; use tracing::{instrument, Level};
use turso_sqlite3_parser::ast::{self, Expr};
use super::aggregation::emit_ungrouped_aggregation; use super::aggregation::emit_ungrouped_aggregation;
use super::expr::translate_expr; use super::expr::translate_expr;

View file

@ -1,5 +1,5 @@
use limbo_sqlite3_parser::ast::{self, Expr, UnaryOperator};
use tracing::{instrument, Level}; use tracing::{instrument, Level};
use turso_sqlite3_parser::ast::{self, Expr, UnaryOperator};
use super::emitter::Resolver; use super::emitter::Resolver;
use super::optimizer::Optimizable; use super::optimizer::Optimizable;

View file

@ -1,6 +1,6 @@
use std::rc::Rc; use std::rc::Rc;
use limbo_sqlite3_parser::ast; use turso_sqlite3_parser::ast;
use crate::translate::expr::{walk_expr, WalkControl}; use crate::translate::expr::{walk_expr, WalkControl};
use crate::translate::plan::ResultSetColumn; use crate::translate::plan::ResultSetColumn;

View file

@ -10,7 +10,7 @@ use crate::{
insn::{IdxInsertFlags, Insn, RegisterOrLiteral}, insn::{IdxInsertFlags, Insn, RegisterOrLiteral},
}, },
}; };
use limbo_sqlite3_parser::ast::{self, Expr, Id, SortOrder, SortedColumn}; use turso_sqlite3_parser::ast::{self, Expr, Id, SortOrder, SortedColumn};
use super::schema::{emit_schema_entry, SchemaEntryType, SQLITE_TABLEID}; use super::schema::{emit_schema_entry, SchemaEntryType, SQLITE_TABLEID};

View file

@ -1,6 +1,6 @@
use std::rc::Rc; use std::rc::Rc;
use limbo_sqlite3_parser::ast::{ use turso_sqlite3_parser::ast::{
DistinctNames, Expr, InsertBody, OneSelect, QualifiedName, ResolveType, ResultColumn, With, DistinctNames, Expr, InsertBody, OneSelect, QualifiedName, ResolveType, ResultColumn, With,
}; };

View file

@ -1,5 +1,5 @@
use limbo_sqlite3_parser::ast::{self, SortOrder};
use turso_ext::VTabKind; use turso_ext::VTabKind;
use turso_sqlite3_parser::ast::{self, SortOrder};
use std::sync::Arc; use std::sync::Arc;

View file

@ -43,7 +43,6 @@ use crate::{bail_parse_error, Connection, Result, SymbolTable};
use alter::translate_alter_table; use alter::translate_alter_table;
use index::{translate_create_index, translate_drop_index}; use index::{translate_create_index, translate_drop_index};
use insert::translate_insert; use insert::translate_insert;
use limbo_sqlite3_parser::ast::{self, Delete, Insert};
use rollback::translate_rollback; use rollback::translate_rollback;
use schema::{translate_create_table, translate_create_virtual_table, translate_drop_table}; use schema::{translate_create_table, translate_create_virtual_table, translate_drop_table};
use select::translate_select; use select::translate_select;
@ -51,6 +50,7 @@ use std::rc::Rc;
use std::sync::Arc; use std::sync::Arc;
use tracing::{instrument, Level}; use tracing::{instrument, Level};
use transaction::{translate_tx_begin, translate_tx_commit}; use transaction::{translate_tx_begin, translate_tx_commit};
use turso_sqlite3_parser::ast::{self, Delete, Insert};
use update::translate_update; use update::translate_update;
#[instrument(skip_all, level = Level::TRACE)] #[instrument(skip_all, level = Level::TRACE)]

View file

@ -1,6 +1,6 @@
use std::sync::Arc; use std::sync::Arc;
use limbo_sqlite3_parser::ast::SortOrder; use turso_sqlite3_parser::ast::SortOrder;
use crate::{ use crate::{
schema::Index, schema::Index,

View file

@ -9,7 +9,7 @@ use crate::{
}, },
Result, Result,
}; };
use limbo_sqlite3_parser::ast::{self, SortOrder, TableInternalId}; use turso_sqlite3_parser::ast::{self, SortOrder, TableInternalId};
use super::cost::ESTIMATED_HARDCODED_ROWS_PER_TABLE; use super::cost::ESTIMATED_HARDCODED_ROWS_PER_TABLE;

View file

@ -1,6 +1,6 @@
use std::{cell::RefCell, collections::HashMap}; use std::{cell::RefCell, collections::HashMap};
use limbo_sqlite3_parser::ast::TableInternalId; use turso_sqlite3_parser::ast::TableInternalId;
use crate::{ use crate::{
translate::{ translate::{
@ -492,7 +492,7 @@ fn generate_join_bitmasks(table_number_max_exclusive: usize, how_many: usize) ->
mod tests { mod tests {
use std::{cell::Cell, rc::Rc, sync::Arc}; use std::{cell::Cell, rc::Rc, sync::Arc};
use limbo_sqlite3_parser::ast::{self, Expr, Operator, SortOrder, TableInternalId}; use turso_sqlite3_parser::ast::{self, Expr, Operator, SortOrder, TableInternalId};
use super::*; use super::*;
use crate::{ use crate::{

View file

@ -1,6 +1,6 @@
use std::cell::Cell; use std::cell::Cell;
use limbo_sqlite3_parser::ast::{Expr, Operator}; use turso_sqlite3_parser::ast::{Expr, Operator};
use crate::{ use crate::{
translate::{expr::unwrap_parens_owned, plan::WhereTerm}, translate::{expr::unwrap_parens_owned, plan::WhereTerm},
@ -191,7 +191,7 @@ fn rebuild_or_expr_from_list(mut operands: Vec<Expr>) -> Expr {
mod tests { mod tests {
use super::*; use super::*;
use crate::translate::plan::WhereTerm; use crate::translate::plan::WhereTerm;
use limbo_sqlite3_parser::ast::{self, Expr, Literal, Operator, TableInternalId}; use turso_sqlite3_parser::ast::{self, Expr, Literal, Operator, TableInternalId};
#[test] #[test]
fn test_lift_common_subexpressions() -> Result<()> { fn test_lift_common_subexpressions() -> Result<()> {

View file

@ -6,11 +6,11 @@ use constraints::{
use cost::Cost; use cost::Cost;
use join::{compute_best_join_order, BestJoinOrderResult}; use join::{compute_best_join_order, BestJoinOrderResult};
use lift_common_subexpressions::lift_common_subexpressions_from_binary_or_terms; use lift_common_subexpressions::lift_common_subexpressions_from_binary_or_terms;
use limbo_sqlite3_parser::{ use order::{compute_order_target, plan_satisfies_order_target, EliminatesSortBy};
use turso_sqlite3_parser::{
ast::{self, Expr, SortOrder}, ast::{self, Expr, SortOrder},
to_sql_string::ToSqlString as _, to_sql_string::ToSqlString as _,
}; };
use order::{compute_order_target, plan_satisfies_order_target, EliminatesSortBy};
use crate::{ use crate::{
parameters::PARAM_PREFIX, parameters::PARAM_PREFIX,

View file

@ -1,6 +1,6 @@
use std::cell::RefCell; use std::cell::RefCell;
use limbo_sqlite3_parser::ast::{self, SortOrder, TableInternalId}; use turso_sqlite3_parser::ast::{self, SortOrder, TableInternalId};
use crate::{ use crate::{
translate::plan::{GroupBy, IterationDirection, JoinedTable}, translate::plan::{GroupBy, IterationDirection, JoinedTable},

View file

@ -1,6 +1,6 @@
use std::rc::Rc; use std::rc::Rc;
use limbo_sqlite3_parser::ast::{self, SortOrder}; use turso_sqlite3_parser::ast::{self, SortOrder};
use crate::{ use crate::{
schema::{Column, PseudoTable}, schema::{Column, PseudoTable},

View file

@ -1,6 +1,6 @@
use limbo_sqlite3_parser::ast::{self, SortOrder};
use std::{cell::Cell, cmp::Ordering, rc::Rc, sync::Arc}; use std::{cell::Cell, cmp::Ordering, rc::Rc, sync::Arc};
use turso_ext::{ConstraintInfo, ConstraintOp}; use turso_ext::{ConstraintInfo, ConstraintOp};
use turso_sqlite3_parser::ast::{self, SortOrder};
use crate::{ use crate::{
function::AggFunc, function::AggFunc,
@ -14,7 +14,7 @@ use crate::{
}; };
use crate::{schema::Type, types::SeekOp, util::can_pushdown_predicate}; use crate::{schema::Type, types::SeekOp, util::can_pushdown_predicate};
use limbo_sqlite3_parser::ast::TableInternalId; use turso_sqlite3_parser::ast::TableInternalId;
use super::{emitter::OperationMode, planner::determine_where_to_eval_term}; use super::{emitter::OperationMode, planner::determine_where_to_eval_term};
@ -479,15 +479,15 @@ impl SelectPlan {
return false; return false;
} }
let count = limbo_sqlite3_parser::ast::Expr::FunctionCall { let count = turso_sqlite3_parser::ast::Expr::FunctionCall {
name: limbo_sqlite3_parser::ast::Id("count".to_string()), name: turso_sqlite3_parser::ast::Id("count".to_string()),
distinctness: None, distinctness: None,
args: None, args: None,
order_by: None, order_by: None,
filter_over: None, filter_over: None,
}; };
let count_star = limbo_sqlite3_parser::ast::Expr::FunctionCallStar { let count_star = turso_sqlite3_parser::ast::Expr::FunctionCallStar {
name: limbo_sqlite3_parser::ast::Id("count".to_string()), name: turso_sqlite3_parser::ast::Id("count".to_string()),
filter_over: None, filter_over: None,
}; };
let result_col_expr = &self.result_columns.first().unwrap().expr; let result_col_expr = &self.result_columns.first().unwrap().expr;

View file

@ -19,7 +19,7 @@ use crate::{
vdbe::{builder::TableRefIdCounter, BranchOffset}, vdbe::{builder::TableRefIdCounter, BranchOffset},
Result, Result,
}; };
use limbo_sqlite3_parser::ast::{ use turso_sqlite3_parser::ast::{
self, Expr, FromClause, JoinType, Limit, Materialized, TableInternalId, UnaryOperator, With, self, Expr, FromClause, JoinType, Limit, Materialized, TableInternalId, UnaryOperator, With,
}; };

View file

@ -1,10 +1,10 @@
//! VDBE bytecode generation for pragma statements. //! VDBE bytecode generation for pragma statements.
//! More info: https://www.sqlite.org/pragma.html. //! More info: https://www.sqlite.org/pragma.html.
use limbo_sqlite3_parser::ast::PragmaName;
use limbo_sqlite3_parser::ast::{self, Expr};
use std::rc::Rc; use std::rc::Rc;
use std::sync::Arc; use std::sync::Arc;
use turso_sqlite3_parser::ast::PragmaName;
use turso_sqlite3_parser::ast::{self, Expr};
use crate::schema::Schema; use crate::schema::Schema;
use crate::storage::pager::AutoVacuumMode; use crate::storage::pager::AutoVacuumMode;

View file

@ -1,4 +1,4 @@
use limbo_sqlite3_parser::ast::Name; use turso_sqlite3_parser::ast::Name;
use crate::{ use crate::{
schema::Schema, schema::Schema,

View file

@ -20,8 +20,8 @@ use crate::LimboError;
use crate::SymbolTable; use crate::SymbolTable;
use crate::{bail_parse_error, Result}; use crate::{bail_parse_error, Result};
use limbo_sqlite3_parser::ast::{fmt::ToTokens, CreateVirtualTable};
use turso_ext::VTabKind; use turso_ext::VTabKind;
use turso_sqlite3_parser::ast::{fmt::ToTokens, CreateVirtualTable};
pub fn translate_create_table( pub fn translate_create_table(
query_mode: QueryMode, query_mode: QueryMode,
@ -341,7 +341,7 @@ fn check_automatic_pk_index_required(
let col_names = unique_columns let col_names = unique_columns
.iter() .iter()
.map(|column| match &column.expr { .map(|column| match &column.expr {
limbo_sqlite3_parser::ast::Expr::Id(id) => { turso_sqlite3_parser::ast::Expr::Id(id) => {
if !columns.iter().any(|(k, _)| k.0 == id.0) { if !columns.iter().any(|(k, _)| k.0 == id.0) {
bail_parse_error!("No such column: {}", id.0); bail_parse_error!("No such column: {}", id.0);
} }

View file

@ -16,8 +16,8 @@ use crate::vdbe::builder::{ProgramBuilderOpts, QueryMode, TableRefIdCounter};
use crate::vdbe::insn::Insn; use crate::vdbe::insn::Insn;
use crate::SymbolTable; use crate::SymbolTable;
use crate::{schema::Schema, vdbe::builder::ProgramBuilder, Result}; use crate::{schema::Schema, vdbe::builder::ProgramBuilder, Result};
use limbo_sqlite3_parser::ast::{self, CompoundSelect, SortOrder}; use turso_sqlite3_parser::ast::{self, CompoundSelect, SortOrder};
use limbo_sqlite3_parser::ast::{ResultColumn, SelectInner}; use turso_sqlite3_parser::ast::{ResultColumn, SelectInner};
pub struct TranslateSelectResult { pub struct TranslateSelectResult {
pub program: ProgramBuilder, pub program: ProgramBuilder,

View file

@ -1,7 +1,7 @@
use crate::translate::{ProgramBuilder, ProgramBuilderOpts}; use crate::translate::{ProgramBuilder, ProgramBuilderOpts};
use crate::vdbe::insn::Insn; use crate::vdbe::insn::Insn;
use crate::{QueryMode, Result}; use crate::{QueryMode, Result};
use limbo_sqlite3_parser::ast::{Name, TransactionType}; use turso_sqlite3_parser::ast::{Name, TransactionType};
pub fn translate_tx_begin( pub fn translate_tx_begin(
tx_type: Option<TransactionType>, tx_type: Option<TransactionType>,

View file

@ -10,7 +10,7 @@ use crate::{
vdbe::builder::{ProgramBuilder, ProgramBuilderOpts, QueryMode}, vdbe::builder::{ProgramBuilder, ProgramBuilderOpts, QueryMode},
SymbolTable, SymbolTable,
}; };
use limbo_sqlite3_parser::ast::{self, Expr, ResultColumn, SortOrder, Update}; use turso_sqlite3_parser::ast::{self, Expr, ResultColumn, SortOrder, Update};
use super::emitter::emit_program; use super::emitter::emit_program;
use super::optimizer::optimize_plan; use super::optimizer::optimize_plan;

View file

@ -1,7 +1,7 @@
use limbo_sqlite3_parser::ast::SortOrder;
#[cfg(feature = "serde")] #[cfg(feature = "serde")]
use serde::Deserialize; use serde::Deserialize;
use turso_ext::{AggCtx, FinalizeFunction, StepFunction}; use turso_ext::{AggCtx, FinalizeFunction, StepFunction};
use turso_sqlite3_parser::ast::SortOrder;
use crate::error::LimboError; use crate::error::LimboError;
use crate::ext::{ExtValue, ExtValueType}; use crate::ext::{ExtValue, ExtValueType};

View file

@ -5,10 +5,10 @@ use crate::{
types::{Value, ValueType}, types::{Value, ValueType},
LimboError, OpenFlags, Result, Statement, StepResult, SymbolTable, IO, LimboError, OpenFlags, Result, Statement, StepResult, SymbolTable, IO,
}; };
use limbo_sqlite3_parser::ast::{ use std::{rc::Rc, sync::Arc};
use turso_sqlite3_parser::ast::{
self, CreateTableBody, Expr, FunctionTail, Literal, UnaryOperator, self, CreateTableBody, Expr, FunctionTail, Literal, UnaryOperator,
}; };
use std::{rc::Rc, sync::Arc};
pub trait RoundToPrecision { pub trait RoundToPrecision {
fn round_to_precision(self, precision: i32) -> f64; fn round_to_precision(self, precision: i32) -> f64;
@ -529,7 +529,7 @@ pub fn columns_from_create_table_body(body: &ast::CreateTableBody) -> crate::Res
.constraints .constraints
.iter() .iter()
.find_map(|c| match &c.constraint { .find_map(|c| match &c.constraint {
limbo_sqlite3_parser::ast::ColumnConstraint::Default(val) => { turso_sqlite3_parser::ast::ColumnConstraint::Default(val) => {
Some(val.clone()) Some(val.clone())
} }
_ => None, _ => None,
@ -537,7 +537,7 @@ pub fn columns_from_create_table_body(body: &ast::CreateTableBody) -> crate::Res
notnull: column_def.constraints.iter().any(|c| { notnull: column_def.constraints.iter().any(|c| {
matches!( matches!(
c.constraint, c.constraint,
limbo_sqlite3_parser::ast::ColumnConstraint::NotNull { .. } turso_sqlite3_parser::ast::ColumnConstraint::NotNull { .. }
) )
}), }),
ty_str: column_def ty_str: column_def
@ -548,14 +548,14 @@ pub fn columns_from_create_table_body(body: &ast::CreateTableBody) -> crate::Res
primary_key: column_def.constraints.iter().any(|c| { primary_key: column_def.constraints.iter().any(|c| {
matches!( matches!(
c.constraint, c.constraint,
limbo_sqlite3_parser::ast::ColumnConstraint::PrimaryKey { .. } turso_sqlite3_parser::ast::ColumnConstraint::PrimaryKey { .. }
) )
}), }),
is_rowid_alias: false, is_rowid_alias: false,
unique: column_def.constraints.iter().any(|c| { unique: column_def.constraints.iter().any(|c| {
matches!( matches!(
c.constraint, c.constraint,
limbo_sqlite3_parser::ast::ColumnConstraint::Unique(..) turso_sqlite3_parser::ast::ColumnConstraint::Unique(..)
) )
}), }),
collation: column_def collation: column_def
@ -567,7 +567,7 @@ pub fn columns_from_create_table_body(body: &ast::CreateTableBody) -> crate::Res
// But in the future, when a user defines a collation sequence, creates a table with it, // But in the future, when a user defines a collation sequence, creates a table with it,
// then closes the db and opens it again. This may panic here if the collation seq is not registered // then closes the db and opens it again. This may panic here if the collation seq is not registered
// before reading the columns // before reading the columns
limbo_sqlite3_parser::ast::ColumnConstraint::Collate { turso_sqlite3_parser::ast::ColumnConstraint::Collate {
collation_name, collation_name,
} => Some(CollationSeq::new(collation_name.0.as_str()).expect( } => Some(CollationSeq::new(collation_name.0.as_str()).expect(
"collation should have been set correctly in create table", "collation should have been set correctly in create table",
@ -1063,7 +1063,7 @@ pub fn vtable_args(args: &[ast::Expr]) -> Vec<turso_ext::Value> {
#[cfg(test)] #[cfg(test)]
pub mod tests { pub mod tests {
use super::*; use super::*;
use limbo_sqlite3_parser::ast::{self, Expr, Id, Literal, Operator::*, Type}; use turso_sqlite3_parser::ast::{self, Expr, Id, Literal, Operator::*, Type};
#[test] #[test]
fn test_normalize_ident() { fn test_normalize_ident() {

View file

@ -1,7 +1,7 @@
use std::{cell::Cell, cmp::Ordering, rc::Rc, sync::Arc}; use std::{cell::Cell, cmp::Ordering, rc::Rc, sync::Arc};
use limbo_sqlite3_parser::ast::{self, TableInternalId};
use tracing::{instrument, Level}; use tracing::{instrument, Level};
use turso_sqlite3_parser::ast::{self, TableInternalId};
use crate::{ use crate::{
numeric::Numeric, numeric::Numeric,

View file

@ -61,11 +61,11 @@ use super::{
CommitState, CommitState,
}; };
use fallible_iterator::FallibleIterator; use fallible_iterator::FallibleIterator;
use limbo_sqlite3_parser::ast;
use limbo_sqlite3_parser::ast::fmt::ToTokens;
use limbo_sqlite3_parser::lexer::sql::Parser;
use parking_lot::RwLock; use parking_lot::RwLock;
use rand::thread_rng; use rand::thread_rng;
use turso_sqlite3_parser::ast;
use turso_sqlite3_parser::ast::fmt::ToTokens;
use turso_sqlite3_parser::lexer::sql::Parser;
use super::{ use super::{
likeop::{construct_like_escape_arg, exec_glob, exec_like_with_escape}, likeop::{construct_like_escape_arg, exec_glob, exec_like_with_escape},

View file

@ -1,4 +1,4 @@
use limbo_sqlite3_parser::ast::SortOrder; use turso_sqlite3_parser::ast::SortOrder;
use crate::vdbe::{builder::CursorType, insn::RegisterOrLiteral}; use crate::vdbe::{builder::CursorType, insn::RegisterOrLiteral};

View file

@ -11,8 +11,8 @@ use crate::{
translate::collate::CollationSeq, translate::collate::CollationSeq,
Value, Value,
}; };
use limbo_sqlite3_parser::ast::SortOrder;
use turso_macros::Description; use turso_macros::Description;
use turso_sqlite3_parser::ast::SortOrder;
/// Flags provided to comparison instructions (e.g. Eq, Ne) which determine behavior related to NULL values. /// Flags provided to comparison instructions (e.g. Eq, Ne) which determine behavior related to NULL values.
#[derive(Clone, Copy, Debug, Default)] #[derive(Clone, Copy, Debug, Default)]

View file

@ -1,4 +1,4 @@
use limbo_sqlite3_parser::ast::SortOrder; use turso_sqlite3_parser::ast::SortOrder;
use crate::{ use crate::{
translate::collate::CollationSeq, translate::collate::CollationSeq,

View file

@ -3,12 +3,12 @@ use crate::schema::Column;
use crate::util::{columns_from_create_table_body, vtable_args}; use crate::util::{columns_from_create_table_body, vtable_args};
use crate::{Connection, LimboError, SymbolTable, Value}; use crate::{Connection, LimboError, SymbolTable, Value};
use fallible_iterator::FallibleIterator; use fallible_iterator::FallibleIterator;
use limbo_sqlite3_parser::{ast, lexer::sql::Parser};
use std::cell::RefCell; use std::cell::RefCell;
use std::ffi::c_void; use std::ffi::c_void;
use std::rc::Rc; use std::rc::Rc;
use std::sync::Arc; use std::sync::Arc;
use turso_ext::{ConstraintInfo, IndexInfo, OrderByInfo, ResultCode, VTabKind, VTabModuleImpl}; use turso_ext::{ConstraintInfo, IndexInfo, OrderByInfo, ResultCode, VTabKind, VTabModuleImpl};
use turso_sqlite3_parser::{ast, lexer::sql::Parser};
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
enum VirtualTableType { enum VirtualTableType {

40
fuzz/Cargo.lock generated
View file

@ -572,25 +572,6 @@ dependencies = [
"turso_ext", "turso_ext",
] ]
[[package]]
name = "limbo_sqlite3_parser"
version = "0.1.0-pre.2"
dependencies = [
"bitflags",
"cc",
"fallible-iterator",
"indexmap",
"log",
"memchr",
"miette",
"phf",
"phf_codegen",
"phf_shared",
"strum",
"strum_macros",
"uncased",
]
[[package]] [[package]]
name = "limbo_time" name = "limbo_time"
version = "0.1.0-pre.2" version = "0.1.0-pre.2"
@ -1137,7 +1118,6 @@ dependencies = [
"libloading", "libloading",
"libm", "libm",
"limbo_series", "limbo_series",
"limbo_sqlite3_parser",
"limbo_time", "limbo_time",
"limbo_uuid", "limbo_uuid",
"miette", "miette",
@ -1156,6 +1136,7 @@ dependencies = [
"tracing", "tracing",
"turso_ext", "turso_ext",
"turso_macros", "turso_macros",
"turso_sqlite3_parser",
"uncased", "uncased",
] ]
@ -1177,6 +1158,25 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "turso_sqlite3_parser"
version = "0.1.0-pre.2"
dependencies = [
"bitflags",
"cc",
"fallible-iterator",
"indexmap",
"log",
"memchr",
"miette",
"phf",
"phf_codegen",
"phf_shared",
"strum",
"strum_macros",
"uncased",
]
[[package]] [[package]]
name = "uncased" name = "uncased"
version = "0.9.10" version = "0.9.10"

View file

@ -660,25 +660,6 @@ dependencies = [
"turso_ext", "turso_ext",
] ]
[[package]]
name = "limbo_sqlite3_parser"
version = "0.1.0-pre.2"
dependencies = [
"bitflags",
"cc",
"fallible-iterator",
"indexmap",
"log",
"memchr",
"miette",
"phf",
"phf_codegen",
"phf_shared",
"strum",
"strum_macros",
"uncased",
]
[[package]] [[package]]
name = "limbo_time" name = "limbo_time"
version = "0.1.0-pre.2" version = "0.1.0-pre.2"
@ -1238,7 +1219,6 @@ dependencies = [
"libloading", "libloading",
"libm", "libm",
"limbo_series", "limbo_series",
"limbo_sqlite3_parser",
"limbo_time", "limbo_time",
"limbo_uuid", "limbo_uuid",
"miette", "miette",
@ -1257,6 +1237,7 @@ dependencies = [
"tracing", "tracing",
"turso_ext", "turso_ext",
"turso_macros", "turso_macros",
"turso_sqlite3_parser",
"uncased", "uncased",
] ]
@ -1278,6 +1259,25 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "turso_sqlite3_parser"
version = "0.1.0-pre.2"
dependencies = [
"bitflags",
"cc",
"fallible-iterator",
"indexmap",
"log",
"memchr",
"miette",
"phf",
"phf_codegen",
"phf_shared",
"strum",
"strum_macros",
"uncased",
]
[[package]] [[package]]
name = "uncased" name = "uncased"
version = "0.9.10" version = "0.9.10"

View file

@ -11,6 +11,6 @@ cargo publish -p limbo_series
cargo publish -p limbo_time cargo publish -p limbo_time
cargo publish -p limbo_uuid cargo publish -p limbo_uuid
cargo publish -p limbo_ipaddr cargo publish -p limbo_ipaddr
cargo publish -p limbo_sqlite3_parser cargo publish -p turso_sqlite3_parser
cargo publish -p turso_core cargo publish -p turso_core
cargo publish -p limbo cargo publish -p limbo

View file

@ -35,5 +35,5 @@ chrono = { version = "0.4.40", features = ["serde"] }
tracing = "0.1.41" tracing = "0.1.41"
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
anyhow.workspace = true anyhow.workspace = true
limbo_sqlite3_parser = { workspace = true, features = ["serde"]} turso_sqlite3_parser = { workspace = true, features = ["serde"]}
hex = "0.4.3" hex = "0.4.3"

View file

@ -1,4 +1,4 @@
use limbo_sqlite3_parser::ast::{ use turso_sqlite3_parser::ast::{
self, Expr, LikeOperator, Name, Operator, QualifiedName, Type, UnaryOperator, self, Expr, LikeOperator, Name, Operator, QualifiedName, Type, UnaryOperator,
}; };

View file

@ -1,6 +1,6 @@
//! Contains code for generation for [ast::Expr::Binary] Predicate //! Contains code for generation for [ast::Expr::Binary] Predicate
use limbo_sqlite3_parser::ast::{self, Expr}; use turso_sqlite3_parser::ast::{self, Expr};
use crate::{ use crate::{
generation::{ generation::{

View file

@ -1,5 +1,5 @@
use limbo_sqlite3_parser::ast::{self, Expr};
use rand::{seq::SliceRandom as _, Rng}; use rand::{seq::SliceRandom as _, Rng};
use turso_sqlite3_parser::ast::{self, Expr};
use crate::model::{ use crate::model::{
query::predicate::Predicate, query::predicate::Predicate,

View file

@ -2,7 +2,7 @@
//! TODO: for now just generating [ast::Literal], but want to also generate Columns and any //! TODO: for now just generating [ast::Literal], but want to also generate Columns and any
//! arbitrary [ast::Expr] //! arbitrary [ast::Expr]
use limbo_sqlite3_parser::ast::{self, Expr}; use turso_sqlite3_parser::ast::{self, Expr};
use crate::{ use crate::{
generation::{backtrack, pick, predicate::SimplePredicate, ArbitraryFromMaybe}, generation::{backtrack, pick, predicate::SimplePredicate, ArbitraryFromMaybe},

View file

@ -1,6 +1,6 @@
use limbo_sqlite3_parser::ast;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use turso_core::LimboError; use turso_core::LimboError;
use turso_sqlite3_parser::ast;
use crate::{ use crate::{
model::{ model::{

View file

@ -5,9 +5,9 @@ pub(crate) use create_index::CreateIndex;
pub(crate) use delete::Delete; pub(crate) use delete::Delete;
pub(crate) use drop::Drop; pub(crate) use drop::Drop;
pub(crate) use insert::Insert; pub(crate) use insert::Insert;
use limbo_sqlite3_parser::to_sql_string::ToSqlContext;
pub(crate) use select::Select; pub(crate) use select::Select;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use turso_sqlite3_parser::to_sql_string::ToSqlContext;
use update::Update; use update::Update;
use crate::{model::table::SimValue, runner::env::SimulatorEnv}; use crate::{model::table::SimValue, runner::env::SimulatorEnv};
@ -94,13 +94,13 @@ struct EmptyContext;
impl ToSqlContext for EmptyContext { impl ToSqlContext for EmptyContext {
fn get_column_name( fn get_column_name(
&self, &self,
_table_id: limbo_sqlite3_parser::ast::TableInternalId, _table_id: turso_sqlite3_parser::ast::TableInternalId,
_col_idx: usize, _col_idx: usize,
) -> &str { ) -> &str {
unreachable!() unreachable!()
} }
fn get_table_name(&self, _id: limbo_sqlite3_parser::ast::TableInternalId) -> &str { fn get_table_name(&self, _id: turso_sqlite3_parser::ast::TableInternalId) -> &str {
unreachable!() unreachable!()
} }
} }

View file

@ -1,7 +1,7 @@
use std::fmt::Display; use std::fmt::Display;
use limbo_sqlite3_parser::{ast, to_sql_string::ToSqlString};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use turso_sqlite3_parser::{ast, to_sql_string::ToSqlString};
use crate::model::{ use crate::model::{
query::EmptyContext, query::EmptyContext,

View file

@ -1,8 +1,8 @@
use std::{fmt::Display, hash::Hash, ops::Deref}; use std::{fmt::Display, hash::Hash, ops::Deref};
use limbo_sqlite3_parser::ast;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use turso_core::{numeric::Numeric, types}; use turso_core::{numeric::Numeric, types};
use turso_sqlite3_parser::ast;
pub(crate) struct Name(pub(crate) String); pub(crate) struct Name(pub(crate) String);

View file

@ -1,5 +1,5 @@
[package] [package]
name = "limbo_sqlite3_parser" name = "turso_sqlite3_parser"
version.workspace = true version.workspace = true
edition.workspace = true edition.workspace = true
authors = ["gwenn"] authors = ["gwenn"]

View file

@ -2,8 +2,8 @@
#![feature(test)] #![feature(test)]
extern crate test; extern crate test;
use limbo_sqlite3_parser::dialect::keyword_token;
use test::Bencher; use test::Bencher;
use turso_sqlite3_parser::dialect::keyword_token;
static VALUES: [&[u8]; 136] = [ static VALUES: [&[u8]; 136] = [
b"ABORT", b"ABORT",

View file

@ -3,7 +3,7 @@ use std::env;
use std::fs::read; use std::fs::read;
use std::panic; use std::panic;
use limbo_sqlite3_parser::lexer::sql::Parser; use turso_sqlite3_parser::lexer::sql::Parser;
/// Parse specified files and check all commands. /// Parse specified files and check all commands.
fn main() { fn main() {

View file

@ -1,7 +1,7 @@
use std::env; use std::env;
use fallible_iterator::FallibleIterator; use fallible_iterator::FallibleIterator;
use limbo_sqlite3_parser::lexer::sql::Parser; use turso_sqlite3_parser::lexer::sql::Parser;
/// Parse args. /// Parse args.
// RUST_LOG=sqlite3Parser=debug // RUST_LOG=sqlite3Parser=debug

View file

@ -4,8 +4,8 @@ use std::fs::read;
use std::panic; use std::panic;
#[cfg(not(feature = "YYNOERRORRECOVERY"))] #[cfg(not(feature = "YYNOERRORRECOVERY"))]
use limbo_sqlite3_parser::lexer::sql::Error; use turso_sqlite3_parser::lexer::sql::Error;
use limbo_sqlite3_parser::lexer::sql::Parser; use turso_sqlite3_parser::lexer::sql::Parser;
/// Parse specified files and print all commands. /// Parse specified files and print all commands.
fn main() { fn main() {

View file

@ -1,5 +1,5 @@
use limbo_sqlite3_parser::lexer::sql::{TokenType, Tokenizer}; use turso_sqlite3_parser::lexer::sql::{TokenType, Tokenizer};
use limbo_sqlite3_parser::lexer::Scanner; use turso_sqlite3_parser::lexer::Scanner;
use std::env; use std::env;
use std::fs::read; use std::fs::read;

View file

@ -5,7 +5,7 @@ authors = ["Dandandan <danielheres@gmail.com>"]
edition = "2018" edition = "2018"
[dependencies] [dependencies]
limbo_sqlite3_parser = { path = "..", default-features = false, features = [ turso_sqlite3_parser = { path = "..", default-features = false, features = [
"YYNOERRORRECOVERY", "YYNOERRORRECOVERY",
"NDEBUG", "NDEBUG",
] } ] }

View file

@ -12,7 +12,7 @@
use criterion::{criterion_group, criterion_main, Criterion}; use criterion::{criterion_group, criterion_main, Criterion};
use fallible_iterator::FallibleIterator; use fallible_iterator::FallibleIterator;
use limbo_sqlite3_parser::lexer::sql::Parser; use turso_sqlite3_parser::lexer::sql::Parser;
fn basic_queries(c: &mut Criterion) { fn basic_queries(c: &mut Criterion) {
let mut group = c.benchmark_group("sqlparser-rs parsing benchmark"); let mut group = c.benchmark_group("sqlparser-rs parsing benchmark");

View file

@ -304,8 +304,8 @@ impl Tokenizer {
} }
/// ```rust /// ```rust
/// use limbo_sqlite3_parser::lexer::sql::Tokenizer; /// use turso_sqlite3_parser::lexer::sql::Tokenizer;
/// use limbo_sqlite3_parser::lexer::Scanner; /// use turso_sqlite3_parser::lexer::Scanner;
/// ///
/// let tokenizer = Tokenizer::new(); /// let tokenizer = Tokenizer::new();
/// let input = b"PRAGMA parser_trace=ON;"; /// let input = b"PRAGMA parser_trace=ON;";