Merge 'Expression equality checking, some optimizations' from Preston Thorpe

This PR mainly adds custom logic to check equality in ast expressions.
Not sure if this belongs in the `vendored` parser or not, let me know
and I'll bring it out. Also replaces `Vec` arguments with slice refs
where possible, as well as some clippy warnings in the same `emitter`
file.
I'll write some more tests tomorrow to make sure this is as thorough as
possible.
EDIT: failed test same issue referenced in #484. Marking as draft until
more tests + cases added

Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com>

Closes #488
This commit is contained in:
jussisaurio 2024-12-17 22:09:20 +02:00
commit 783ec65c77
8 changed files with 510 additions and 38 deletions

View file

@ -646,7 +646,6 @@ fn get_io(db: &str) -> anyhow::Result<Arc<dyn limbo_core::IO>> {
const HELP_MSG: &str = r#"
Limbo SQL Shell Help
==============
Welcome to the Limbo SQL Shell! You can execute any standard SQL command here.
In addition to standard SQL commands, the following special commands are available:
@ -689,12 +688,6 @@ Usage Examples:
8. Show the current values of settings:
.show
9. Set the value 'NULL' to be displayed for null values instead of empty string:
.nullvalue "NULL"
Note:
-----
- All SQL commands must end with a semicolon (;).
- Special commands do not require a semicolon.
"#;
- Special commands do not require a semicolon."#;

View file

@ -2,7 +2,7 @@ mod app;
mod opcodes_dictionary;
use rustyline::{error::ReadlineError, DefaultEditor};
use std::sync::{atomic::Ordering, Arc};
use std::sync::atomic::Ordering;
#[allow(clippy::arc_with_non_send_sync)]
fn main() -> anyhow::Result<()> {