diff --git a/core/translate/expr.rs b/core/translate/expr.rs index e5e2b2822..bece1e133 100644 --- a/core/translate/expr.rs +++ b/core/translate/expr.rs @@ -1854,7 +1854,7 @@ pub fn translate_expr( } ast::Literal::String(s) => { program.emit_insn(Insn::String8 { - value: s[1..s.len() - 1].to_string(), + value: s[1..s.len() - 1].replace("''", "'").to_string(), dest: target_register, }); Ok(target_register) diff --git a/testing/select.test b/testing/select.test index ff730b44b..c6d403a6a 100755 --- a/testing/select.test +++ b/testing/select.test @@ -11,6 +11,10 @@ do_execsql_test select-const-2 { SELECT 2 } {2} +do_execsql_test select-text-escape-1 { + SELECT '''a' +} {'a} + do_execsql_test select-blob-empty { SELECT x''; } {}