1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
use super::super::insert_query; impl<T> super::ToSql for insert_query::InsertValue<T> { fn to_sql(&self, ctx: &mut super::SqlContext) -> String { match self { &insert_query::InsertValue::Value{ref expression, ..} => { expression.expression_as_sql().to_sql(ctx) }, &insert_query::InsertValue::Default => "DEFAULT".to_string() } } } impl super::ToSql for () { fn to_sql(&self, _ctx: &mut super::SqlContext) -> String { "DEFAULT VALUES".to_string() } } macro_rules! to_sql_for_insert_tuple { ($fmt:expr, $($t:ident, $var:ident),+) => ( impl<$($t,)+> super::ToSql for ($(insert_query::InsertValue<$t>),+,) { fn to_sql(&self, ctx: &mut super::SqlContext) -> String { let &($(ref $var,)+) = self; format!($fmt, $($var.to_sql(ctx),)+) } } ) } to_sql_for_insert_tuple!("{}", T1, t1); to_sql_for_insert_tuple!("{}, {}", T1, t1, T2, t2); to_sql_for_insert_tuple!("{}, {}, {}", T1, t1, T2, t2, T3, t3); to_sql_for_insert_tuple!("{}, {}, {}, {}", T1, t1, T2, t2, T3, t3, T4, t4); to_sql_for_insert_tuple!("{}, {}, {}, {}, {}", T1, t1, T2, t2, T3, t3, T4, t4, T5, t5); to_sql_for_insert_tuple!("{}, {}, {}, {}, {}, {}", T1, t1, T2, t2, T3, t3, T4, t4, T5, t5, T6, t6); to_sql_for_insert_tuple!("{}, {}, {}, {}, {}, {}, {}", T1, t1, T2, t2, T3, t3, T4, t4, T5, t5, T6, t6, T7, t7); to_sql_for_insert_tuple!("{}, {}, {}, {}, {}, {}, {}, {}", T1, t1, T2, t2, T3, t3, T4, t4, T5, t5, T6, t6, T7, t7, T8, t8); to_sql_for_insert_tuple!("{}, {}, {}, {}, {}, {}, {}, {}, {}", T1, t1, T2, t2, T3, t3, T4, t4, T5, t5, T6, t6, T7, t7, T8, t8, T9, t9); to_sql_for_insert_tuple!("{}, {}, {}, {}, {}, {}, {}, {}, {}, {}", T1, t1, T2, t2, T3, t3, T4, t4, T5, t5, T6, t6, T7, t7, T8, t8, T9, t9, T10, t10); to_sql_for_insert_tuple!("{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}", T1, t1, T2, t2, T3, t3, T4, t4, T5, t5, T6, t6, T7, t7, T8, t8, T9, t9, T10, t10, T11, t11); to_sql_for_insert_tuple!("{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}", T1, t1, T2, t2, T3, t3, T4, t4, T5, t5, T6, t6, T7, t7, T8, t8, T9, t9, T10, t10, T11, t11, T12, t12);