Skip to content

Commit 50d2029

Browse files
authored
Change prepare_value parameter from reference to owned value (#936)
## PR Info I noticed it takes a reference but clones inside. If ownership is needed, the caller should clone it instead. In addition, I removed the unnecessary clone in prepare_case_statement. ## Breaking Changes - [x] Change `QueryBuilder::prepare_value` parameter from reference to owned value
1 parent dc35e64 commit 50d2029

File tree

5 files changed

+26
-26
lines changed

5 files changed

+26
-26
lines changed

src/backend/mysql/query.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,8 @@ impl QueryBuilder for MysqlQueryBuilder {
145145
self.prepare_order(order_expr, sql);
146146
}
147147

148-
fn prepare_value(&self, value: &Value, sql: &mut dyn SqlWriter) {
149-
sql.push_param(value.clone(), self as _);
148+
fn prepare_value(&self, value: Value, sql: &mut dyn SqlWriter) {
149+
sql.push_param(value, self as _);
150150
}
151151

152152
fn prepare_on_conflict_target(&self, _: &[OnConflictTarget], _: &mut dyn SqlWriter) {

src/backend/postgres/query.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,8 @@ impl QueryBuilder for PostgresQueryBuilder {
170170
}
171171
}
172172

173-
fn prepare_value(&self, value: &Value, sql: &mut dyn SqlWriter) {
174-
sql.push_param(value.clone(), self as _);
173+
fn prepare_value(&self, value: Value, sql: &mut dyn SqlWriter) {
174+
sql.push_param(value, self as _);
175175
}
176176

177177
fn write_string_quoted(&self, string: &str, buffer: &mut String) {

src/backend/postgres/types.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ impl TypeBuilder for PostgresQueryBuilder {
2121
if count > 0 {
2222
write!(sql, ", ").unwrap();
2323
}
24-
self.prepare_value(&val.to_string().into(), sql);
24+
self.prepare_value(val.to_string().into(), sql);
2525
}
2626

2727
write!(sql, ")").unwrap();
@@ -97,16 +97,16 @@ impl PostgresQueryBuilder {
9797
if *if_not_exists {
9898
write!(sql, "IF NOT EXISTS ").unwrap();
9999
}
100-
self.prepare_value(&value.to_string().into(), sql);
100+
self.prepare_value(value.to_string().into(), sql);
101101
if let Some(add_option) = placement {
102102
match add_option {
103103
TypeAlterAddOpt::Before(before_value) => {
104104
write!(sql, " BEFORE ").unwrap();
105-
self.prepare_value(&before_value.to_string().into(), sql);
105+
self.prepare_value(before_value.to_string().into(), sql);
106106
}
107107
TypeAlterAddOpt::After(after_value) => {
108108
write!(sql, " AFTER ").unwrap();
109-
self.prepare_value(&after_value.to_string().into(), sql);
109+
self.prepare_value(after_value.to_string().into(), sql);
110110
}
111111
}
112112
}
@@ -117,9 +117,9 @@ impl PostgresQueryBuilder {
117117
}
118118
TypeAlterOpt::RenameValue(existing, new_name) => {
119119
write!(sql, " RENAME VALUE ").unwrap();
120-
self.prepare_value(&existing.to_string().into(), sql);
120+
self.prepare_value(existing.to_string().into(), sql);
121121
write!(sql, " TO ").unwrap();
122-
self.prepare_value(&new_name.to_string().into(), sql);
122+
self.prepare_value(new_name.to_string().into(), sql);
123123
}
124124
}
125125
}

src/backend/query_builder.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -194,12 +194,12 @@ pub trait QueryBuilder:
194194
fn prepare_select_limit_offset(&self, select: &SelectStatement, sql: &mut dyn SqlWriter) {
195195
if let Some(limit) = &select.limit {
196196
write!(sql, " LIMIT ").unwrap();
197-
self.prepare_value(limit, sql);
197+
self.prepare_value(limit.clone(), sql);
198198
}
199199

200200
if let Some(offset) = &select.offset {
201201
write!(sql, " OFFSET ").unwrap();
202-
self.prepare_value(offset, sql);
202+
self.prepare_value(offset.clone(), sql);
203203
}
204204
}
205205

@@ -302,7 +302,7 @@ pub trait QueryBuilder:
302302
fn prepare_update_limit(&self, update: &UpdateStatement, sql: &mut dyn SqlWriter) {
303303
if let Some(limit) = &update.limit {
304304
write!(sql, " LIMIT ").unwrap();
305-
self.prepare_value(limit, sql);
305+
self.prepare_value(limit.clone(), sql);
306306
}
307307
}
308308

@@ -348,7 +348,7 @@ pub trait QueryBuilder:
348348
fn prepare_delete_limit(&self, delete: &DeleteStatement, sql: &mut dyn SqlWriter) {
349349
if let Some(limit) = &delete.limit {
350350
write!(sql, " LIMIT ").unwrap();
351-
self.prepare_value(limit, sql);
351+
self.prepare_value(limit.clone(), sql);
352352
}
353353
}
354354

@@ -400,15 +400,15 @@ pub trait QueryBuilder:
400400
write!(sql, ")").unwrap();
401401
}
402402
Expr::Value(val) => {
403-
self.prepare_value(val, sql);
403+
self.prepare_value(val.clone(), sql);
404404
}
405405
Expr::Values(list) => {
406406
write!(sql, "(").unwrap();
407407
list.iter().fold(true, |first, val| {
408408
if !first {
409409
write!(sql, ", ").unwrap();
410410
}
411-
self.prepare_value(val, sql);
411+
self.prepare_value(val.clone(), sql);
412412
false
413413
});
414414
write!(sql, ")").unwrap();
@@ -473,9 +473,9 @@ pub trait QueryBuilder:
473473

474474
self.prepare_simple_expr(&case.result, sql);
475475
}
476-
if let Some(r#else) = r#else.clone() {
476+
if let Some(r#else) = r#else {
477477
write!(sql, " ELSE ").unwrap();
478-
self.prepare_simple_expr(&r#else, sql);
478+
self.prepare_simple_expr(r#else, sql);
479479
}
480480

481481
write!(sql, " END)").unwrap();
@@ -984,7 +984,7 @@ pub trait QueryBuilder:
984984
}
985985

986986
/// Write [`Value`] into SQL statement as parameter.
987-
fn prepare_value(&self, value: &Value, sql: &mut dyn SqlWriter);
987+
fn prepare_value(&self, value: Value, sql: &mut dyn SqlWriter);
988988

989989
/// Write [`Value`] inline.
990990
fn prepare_constant(&self, value: &Value, sql: &mut dyn SqlWriter) {
@@ -1005,7 +1005,7 @@ pub trait QueryBuilder:
10051005
if !first {
10061006
write!(sql, ", ").unwrap();
10071007
}
1008-
self.prepare_value(&value, sql);
1008+
self.prepare_value(value, sql);
10091009
false
10101010
});
10111011

@@ -1419,12 +1419,12 @@ pub trait QueryBuilder:
14191419
match *frame {
14201420
Frame::UnboundedPreceding => write!(sql, "UNBOUNDED PRECEDING").unwrap(),
14211421
Frame::Preceding(v) => {
1422-
self.prepare_value(&v.into(), sql);
1422+
self.prepare_value(v.into(), sql);
14231423
write!(sql, "PRECEDING").unwrap();
14241424
}
14251425
Frame::CurrentRow => write!(sql, "CURRENT ROW").unwrap(),
14261426
Frame::Following(v) => {
1427-
self.prepare_value(&v.into(), sql);
1427+
self.prepare_value(v.into(), sql);
14281428
write!(sql, "FOLLOWING").unwrap();
14291429
}
14301430
Frame::UnboundedFollowing => write!(sql, "UNBOUNDED FOLLOWING").unwrap(),
@@ -1639,8 +1639,8 @@ impl QueryBuilder for CommonSqlQueryBuilder {
16391639
query.prepare_statement(self, sql);
16401640
}
16411641

1642-
fn prepare_value(&self, value: &Value, sql: &mut dyn SqlWriter) {
1643-
sql.push_param(value.clone(), self as _);
1642+
fn prepare_value(&self, value: Value, sql: &mut dyn SqlWriter) {
1643+
sql.push_param(value, self as _);
16441644
}
16451645
}
16461646

src/backend/sqlite/query.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ impl QueryBuilder for SqliteQueryBuilder {
7272
}
7373
}
7474

75-
fn prepare_value(&self, value: &Value, sql: &mut dyn SqlWriter) {
76-
sql.push_param(value.clone(), self as _);
75+
fn prepare_value(&self, value: Value, sql: &mut dyn SqlWriter) {
76+
sql.push_param(value, self as _);
7777
}
7878

7979
fn greatest_function(&self) -> &str {

0 commit comments

Comments
 (0)