|
1 |
| -use crate::backend::query_builder::InsertValueSource; |
2 | 1 | use crate::*;
|
3 | 2 | use std::ops::Deref;
|
4 | 3 |
|
@@ -35,41 +34,32 @@ pub trait QueryBuilder: QuotedBuilder {
|
35 | 34 |
|
36 | 35 | if let Some(source) = &insert.source {
|
37 | 36 | write!(sql, " ").unwrap();
|
38 |
| - self.prepare_insert_value_source(source, sql, collector); |
39 |
| - } |
40 |
| - |
41 |
| - self.prepare_returning(&insert.returning, sql, collector); |
42 |
| - } |
43 |
| - |
44 |
| - fn prepare_insert_value_source( |
45 |
| - &self, |
46 |
| - source: &InsertValueSource, |
47 |
| - sql: &mut SqlWriter, |
48 |
| - collector: &mut dyn FnMut(Value), |
49 |
| - ) { |
50 |
| - match source { |
51 |
| - InsertValueSource::Values(values) => { |
52 |
| - write!(sql, "VALUES ").unwrap(); |
53 |
| - values.iter().fold(true, |first, row| { |
54 |
| - if !first { |
55 |
| - write!(sql, ", ").unwrap() |
56 |
| - } |
57 |
| - write!(sql, "(").unwrap(); |
58 |
| - row.iter().fold(true, |first, col| { |
| 37 | + match source { |
| 38 | + InsertValueSource::Values(values) => { |
| 39 | + write!(sql, "VALUES ").unwrap(); |
| 40 | + values.iter().fold(true, |first, row| { |
59 | 41 | if !first {
|
60 | 42 | write!(sql, ", ").unwrap()
|
61 | 43 | }
|
62 |
| - self.prepare_simple_expr(col, sql, collector); |
| 44 | + write!(sql, "(").unwrap(); |
| 45 | + row.iter().fold(true, |first, col| { |
| 46 | + if !first { |
| 47 | + write!(sql, ", ").unwrap() |
| 48 | + } |
| 49 | + self.prepare_simple_expr(col, sql, collector); |
| 50 | + false |
| 51 | + }); |
| 52 | + write!(sql, ")").unwrap(); |
63 | 53 | false
|
64 | 54 | });
|
65 |
| - write!(sql, ")").unwrap(); |
66 |
| - false |
67 |
| - }); |
68 |
| - } |
69 |
| - InsertValueSource::Select(select_query) => { |
70 |
| - self.prepare_select_statement(select_query.deref(), sql, collector); |
| 55 | + } |
| 56 | + InsertValueSource::Select(select_query) => { |
| 57 | + self.prepare_select_statement(select_query.deref(), sql, collector); |
| 58 | + } |
71 | 59 | }
|
72 | 60 | }
|
| 61 | + |
| 62 | + self.prepare_returning(&insert.returning, sql, collector); |
73 | 63 | }
|
74 | 64 |
|
75 | 65 | /// Translate [`SelectStatement`] into SQL statement.
|
|
0 commit comments