diff --git a/sqlx-core/src/query_builder.rs b/sqlx-core/src/query_builder.rs index 761903f0e8..69f7b7f927 100644 --- a/sqlx-core/src/query_builder.rs +++ b/sqlx-core/src/query_builder.rs @@ -139,6 +139,28 @@ where /// [`.push_bind()`][Separated::push_bind] methods which push `separator` to the query /// before their normal behavior. [`.push_unseparated()`][Separated::push_unseparated] is also /// provided to push a SQL fragment without the separator. + /// + /// ```rust + /// # #[cfg(feature = "mysql")] { + /// use sqlx::{Execute, MySql, QueryBuilder}; + /// let foods = vec!["pizza".to_string(), "chips".to_string()]; + /// let mut query_builder: QueryBuilder = QueryBuilder::new( + /// "SELECT * from food where name in (" + /// ); + /// // One element vector is handled correctly but an empty vector + /// // would cause a sql syntax error + /// let mut separated = query_builder.separated(", "); + /// for value_type in foods.iter() { + /// separated.push_bind(value_type); + /// } + /// separated.push_unseparated(") "); + /// + /// let mut query = query_builder.build(); + /// let sql = query.sql(); + /// assert!(sql.ends_with("in (?, ?) ")); + /// # } + /// ``` + pub fn separated<'qb, Sep>(&'qb mut self, separator: Sep) -> Separated<'qb, 'args, DB, Sep> where 'args: 'qb, @@ -249,6 +271,7 @@ where /// // 16383 * 4 = 65532 /// assert_eq!(arguments.len(), 65532); /// # } + /// ``` pub fn push_values(&mut self, tuples: I, mut push_tuple: F) -> &mut Self where I: IntoIterator,