Merge branch 'master' into feature/memcached-rs

This commit is contained in:
Rasmus Kaj 2016-11-12 20:51:16 +01:00
commit 3fc702d859
2 changed files with 11 additions and 13 deletions

View File

@ -491,7 +491,7 @@ fn all_years<'mw>(req: &mut Request,
let groups: Vec<Group> =
SqlLiteral::new(format!(
"select cast(extract(year from date) as int) y, count(*) c \
from photos{} group by y order by y",
from photos{} group by y order by y desc nulls last",
if req.authorized_user().is_none() {
" where is_public"
} else {
@ -500,7 +500,7 @@ fn all_years<'mw>(req: &mut Request,
.load::<(Option<i32>, i64)>(c).unwrap()
.iter().map(|&(year, count)| {
let q = Photo::query(req.authorized_user().is_some())
.order((grade.desc(), date.asc()))
.order((grade.desc().nulls_last(), date.asc()))
.limit(1);
let photo =
if let Some(year) = year {
@ -508,17 +508,15 @@ fn all_years<'mw>(req: &mut Request,
.and_hms(0, 0, 0)))
.filter(date.lt(NaiveDate::from_ymd(year + 1, 1, 1)
.and_hms(0, 0, 0)))
.first::<Photo>(c).unwrap()
} else {
q.filter(date.is_null())
.first::<Photo>(c).unwrap()
};
Group {
title: year.map(|y|format!("{}", y))
.unwrap_or("-".to_string()),
url: format!("/{}/", year.unwrap_or(0)),
count: count,
photo: photo
photo: photo.first::<Photo>(c).unwrap()
}
}).collect();
@ -557,7 +555,7 @@ fn months_in_year<'mw>(req: &mut Request,
let photo = Photo::query(req.authorized_user().is_some())
.filter(date.ge(fromdate))
.filter(date.lt(todate))
.order((grade.desc(), date.asc()))
.order((grade.desc().nulls_last(), date.asc()))
.limit(1)
.first::<Photo>(c).unwrap();
@ -606,7 +604,7 @@ fn days_in_month<'mw>(req: &mut Request,
let photo = Photo::query(req.authorized_user().is_some())
.filter(date.ge(fromdate))
.filter(date.lt(fromdate + ChDuration::days(1)))
.order((grade.desc(), date.asc()))
.order((grade.desc().nulls_last(), date.asc()))
.limit(1)
.first::<Photo>(c).unwrap();
@ -657,7 +655,7 @@ fn all_for_day<'mw>(req: &mut Request,
let photos: Vec<Photo> = Photo::query(req.authorized_user().is_some())
.filter(date.ge(thedate))
.filter(date.lt(thedate + ChDuration::days(1)))
.order((grade.desc(), date.asc()))
.order((grade.desc().nulls_last(), date.asc()))
.limit(500)
.load(c).unwrap();
@ -706,7 +704,7 @@ fn on_this_day<'mw>(req: &mut Request,
let photo = Photo::query(req.authorized_user().is_some())
.filter(date.ge(fromdate))
.filter(date.lt(fromdate + ChDuration::days(1)))
.order((grade.desc(), date.asc()))
.order((grade.desc().nulls_last(), date.asc()))
.limit(1)
.first::<Photo>(c).unwrap();

View File

@ -41,10 +41,10 @@ fn fmt_elapsed(t: Duration) -> String {
format!("{:.2} s", ms as f32 * 1e-3)
} else {
let ns = t.num_nanoseconds().unwrap();
if ns > 1e6 as i64 {
format!("{} ms", ns / 1e6 as i64)
} else if ns > 1000 {
format!("{} us", ns / 1000)
if ns > 10_000_000 {
format!("{} ms", ns / 1000_000)
} else if ns > 10_000 {
format!("{} µs", ns / 1000)
} else {
format!("{} ns", ns)
}