From ca757c5cfeb3a76b74dfc36a7b974377aac662d5 Mon Sep 17 00:00:00 2001 From: Kyran Gostelow Date: Sat, 27 Feb 2021 22:44:13 +1100 Subject: [PATCH] Support single quoted string in INSERT query (#145) Single quoted string is now supported in INSERT. INSERT INTO Foo VALUES ("hello", 'world'); --- src/data/value.rs | 3 +++ src/tests/sql_types.rs | 9 ++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/data/value.rs b/src/data/value.rs index 7c63cc709..a50f7ed7b 100644 --- a/src/data/value.rs +++ b/src/data/value.rs @@ -306,6 +306,9 @@ impl Value { (DataType::Boolean, AstValue::Boolean(v)) => { Ok(nullable.into_value(Value::OptBool(Some(*v)), Value::Bool(*v))) } + (DataType::Text, AstValue::SingleQuotedString(v)) => { + Ok(nullable.into_value(Value::OptStr(Some(v.clone())), Value::Str(v.clone()))) + } (DataType::Int, AstValue::Null) => nullable.as_result( Value::OptI64(None), ValueError::NullValueOnNotNullField.into(), diff --git a/src/tests/sql_types.rs b/src/tests/sql_types.rs index 82bf1fcd6..70604cdfc 100644 --- a/src/tests/sql_types.rs +++ b/src/tests/sql_types.rs @@ -17,12 +17,13 @@ test_case!(sql_types, async move { (id, content, verified, ratio) VALUES ( 1, \"Hello\", True, 0.1), - ( 1, \"World\", False, 0.9); + ( 1, \"World\", False, 0.9), + ( 1, 'test', False, 0.0); " ); let test_sqls = [ - (2, "SELECT * FROM Item;"), + (3, "SELECT * FROM Item;"), (1, "SELECT * FROM Item WHERE verified = True;"), (1, "SELECT * FROM Item WHERE ratio > 0.5;"), (1, "SELECT * FROM Item WHERE ratio = 0.1;"), @@ -32,8 +33,10 @@ test_case!(sql_types, async move { ), (0, "SELECT * FROM Item WHERE content=\"World\";"), (1, "SELECT * FROM Item WHERE content=\"Foo\";"), + (1, "SELECT * FROM Item WHERE content='Foo';"), (1, "UPDATE Item SET id = 11 WHERE content=\"Foo\";"), - (2, "SELECT * FROM Item;"), + (1, "UPDATE Item SET id = 14 WHERE content='Foo';"), + (3, "SELECT * FROM Item;"), ]; for (num, sql) in test_sqls.iter() {