diff --git a/bindings/go/rs_src/statement.rs b/bindings/go/rs_src/statement.rs index 82fb55648..785ae0869 100644 --- a/bindings/go/rs_src/statement.rs +++ b/bindings/go/rs_src/statement.rs @@ -14,7 +14,7 @@ pub extern "C" fn db_prepare(ctx: *mut c_void, query: *const c_char) -> *mut c_v let db = LimboConn::from_ptr(ctx); - let stmt = db.conn.prepare(query_str.to_string()); + let stmt = db.conn.prepare(query_str); match stmt { Ok(stmt) => LimboStatement::new(stmt, db).to_ptr(), Err(_) => std::ptr::null_mut(), diff --git a/core/lib.rs b/core/lib.rs index 74557caaa..70e4cf9db 100644 --- a/core/lib.rs +++ b/core/lib.rs @@ -255,10 +255,10 @@ pub struct Connection { } impl Connection { - pub fn prepare(self: &Rc, sql: impl Into) -> Result { - let sql = sql.into(); + pub fn prepare(self: &Rc, sql: impl AsRef) -> Result { + let sql = sql.as_ref(); trace!("Preparing: {}", sql); - let db = self.db.clone(); + let db = &self.db; let syms: &SymbolTable = &db.syms.borrow(); let mut parser = Parser::new(sql.as_bytes()); let cmd = parser.next()?; @@ -283,8 +283,8 @@ impl Connection { } } - pub fn query(self: &Rc, sql: impl Into) -> Result> { - let sql = sql.into(); + pub fn query(self: &Rc, sql: impl AsRef) -> Result> { + let sql = sql.as_ref(); trace!("Querying: {}", sql); let mut parser = Parser::new(sql.as_bytes()); let cmd = parser.next()?; @@ -344,9 +344,9 @@ impl Connection { QueryRunner::new(self, sql) } - pub fn execute(self: &Rc, sql: impl Into) -> Result<()> { - let sql = sql.into(); - let db = self.db.clone(); + pub fn execute(self: &Rc, sql: impl AsRef) -> Result<()> { + let sql = sql.as_ref(); + let db = &self.db; let syms: &SymbolTable = &db.syms.borrow(); let mut parser = Parser::new(sql.as_bytes()); let cmd = parser.next()?;