pub fn array_sample<Arr: ArrayOrNullableArray + SingleValue, array, n>(
array: array,
n: n,
) -> array_sample<Arr, array, n>
Available on crate feature
postgres_backend
only.Expand description
Returns an array of n items randomly selected from array. n may not exceed the length of the array.
ยงExample
let vec = vec![1,2,3,4,5];
let sampled = diesel::select(array_sample::<Array<Integer>, _, _>(vec.clone(),3))
.get_result::<Vec<i32>>(connection)?;
assert_eq!(3, sampled.len());
assert!(sampled.iter().all(|x| vec.contains(x)));
let vec: Vec<i32> = Vec::new();
let sampled = diesel::select(array_sample::<Array<Integer>, _, _>(vec,0))
.get_result::<Vec<i32>>(connection)?;
assert_eq!(0, sampled.len());
let sampled = diesel::select(array_sample::<Nullable<Array<Integer>>, _, _>(None::<Vec<i32>>,1))
.get_result::<Option<Vec<i32>>>(connection)?;
assert!(sampled.is_none());