mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-06-05 09:20:44 +00:00
Sort NULL values as smallest value (devices and gateways last seen).
Fixes #683.
This commit is contained in:
parent
26cca09ce8
commit
46bb01ccdc
@ -730,17 +730,37 @@ pub async fn list(
|
|||||||
true => match order_by {
|
true => match order_by {
|
||||||
OrderBy::Name => q.order_by(device::dsl::name.desc()),
|
OrderBy::Name => q.order_by(device::dsl::name.desc()),
|
||||||
OrderBy::DevEui => q.order_by(device::dsl::dev_eui.desc()),
|
OrderBy::DevEui => q.order_by(device::dsl::dev_eui.desc()),
|
||||||
OrderBy::LastSeenAt => q
|
OrderBy::LastSeenAt => {
|
||||||
.order_by(device::dsl::last_seen_at.desc())
|
#[cfg(feature = "postgres")]
|
||||||
.then_order_by(device::dsl::name),
|
{
|
||||||
|
q.order_by(device::dsl::last_seen_at.desc().nulls_last())
|
||||||
|
.then_order_by(device::dsl::name)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "sqlite")]
|
||||||
|
{
|
||||||
|
q.order_by(device::dsl::last_seen_at.desc())
|
||||||
|
.then_order_by(device::dsl::name)
|
||||||
|
}
|
||||||
|
}
|
||||||
OrderBy::DeviceProfileName => q.order_by(device_profile::dsl::name.desc()),
|
OrderBy::DeviceProfileName => q.order_by(device_profile::dsl::name.desc()),
|
||||||
},
|
},
|
||||||
false => match order_by {
|
false => match order_by {
|
||||||
OrderBy::Name => q.order_by(device::dsl::name),
|
OrderBy::Name => q.order_by(device::dsl::name),
|
||||||
OrderBy::DevEui => q.order_by(device::dsl::dev_eui),
|
OrderBy::DevEui => q.order_by(device::dsl::dev_eui),
|
||||||
OrderBy::LastSeenAt => q
|
OrderBy::LastSeenAt => {
|
||||||
.order_by(device::dsl::last_seen_at)
|
#[cfg(feature = "postgres")]
|
||||||
.then_order_by(device::dsl::name),
|
{
|
||||||
|
q.order_by(device::dsl::last_seen_at.asc().nulls_first())
|
||||||
|
.then_order_by(device::dsl::name)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "sqlite")]
|
||||||
|
{
|
||||||
|
q.order_by(device::dsl::last_seen_at.asc())
|
||||||
|
.then_order_by(device::dsl::name)
|
||||||
|
}
|
||||||
|
}
|
||||||
OrderBy::DeviceProfileName => q.order_by(device_profile::dsl::name),
|
OrderBy::DeviceProfileName => q.order_by(device_profile::dsl::name),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -365,16 +365,36 @@ pub async fn list(
|
|||||||
true => match order_by {
|
true => match order_by {
|
||||||
OrderBy::Name => q.order_by(gateway::dsl::name.desc()),
|
OrderBy::Name => q.order_by(gateway::dsl::name.desc()),
|
||||||
OrderBy::GatewayId => q.order_by(gateway::dsl::gateway_id.desc()),
|
OrderBy::GatewayId => q.order_by(gateway::dsl::gateway_id.desc()),
|
||||||
OrderBy::LastSeenAt => q
|
OrderBy::LastSeenAt => {
|
||||||
.order_by(gateway::dsl::last_seen_at.desc())
|
#[cfg(feature = "postgres")]
|
||||||
.then_order_by(gateway::dsl::name),
|
{
|
||||||
|
q.order_by(gateway::dsl::last_seen_at.desc().nulls_last())
|
||||||
|
.then_order_by(gateway::dsl::name)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "sqlite")]
|
||||||
|
{
|
||||||
|
q.order_by(gateway::dsl::last_seen_at.desc())
|
||||||
|
.then_order_by(gateway::dsl::name)
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
false => match order_by {
|
false => match order_by {
|
||||||
OrderBy::Name => q.order_by(gateway::dsl::name),
|
OrderBy::Name => q.order_by(gateway::dsl::name),
|
||||||
OrderBy::GatewayId => q.order_by(gateway::dsl::gateway_id),
|
OrderBy::GatewayId => q.order_by(gateway::dsl::gateway_id),
|
||||||
OrderBy::LastSeenAt => q
|
OrderBy::LastSeenAt => {
|
||||||
.order_by(gateway::dsl::last_seen_at)
|
#[cfg(feature = "postgres")]
|
||||||
.then_order_by(gateway::dsl::name),
|
{
|
||||||
|
q.order_by(gateway::dsl::last_seen_at.asc().nulls_first())
|
||||||
|
.then_order_by(gateway::dsl::name)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "sqlite")]
|
||||||
|
{
|
||||||
|
q.order_by(gateway::dsl::last_seen_at.asc())
|
||||||
|
.then_order_by(gateway::dsl::name)
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user