use +columns instead of +select/+as

This commit is contained in:
Oliver Gorwits
2012-02-22 19:49:45 +00:00
parent 9857ae2868
commit d62d1aacf8
5 changed files with 24 additions and 37 deletions

View File

@@ -132,11 +132,10 @@ __PACKAGE__->has_many( nodes => 'Netdisco::DB::Result::Node',
my $search_attr = { my $search_attr = {
order_by => {'-desc' => 'time_last'}, order_by => {'-desc' => 'time_last'},
'+select' => [ '+columns' => {
\"to_char(time_first, 'YYYY-MM-DD HH24:MI')", time_first_stamp => \"to_char(time_first, 'YYYY-MM-DD HH24:MI')",
\"to_char(time_last, 'YYYY-MM-DD HH24:MI')", time_last_stamp => \"to_char(time_last, 'YYYY-MM-DD HH24:MI')",
], },
'+as' => [qw/ time_first_stamp time_last_stamp /],
}; };
=head2 ip_aliases( \%cond, \%attrs? ) =head2 ip_aliases( \%cond, \%attrs? )

View File

@@ -33,19 +33,13 @@ sub with_times {
->search_rs($cond, $attrs) ->search_rs($cond, $attrs)
->search({}, ->search({},
{ {
'+select' => [ '+columns' => {
\"replace(age(timestamp 'epoch' + uptime / 100 * interval '1 second', uptime_age => \("replace(age(timestamp 'epoch' + uptime / 100 * interval '1 second' "
timestamp '1970-01-01 00:00:00-00')::text, 'mon', 'month')", ."timestamp '1970-01-01 00:00:00-00')::text, 'mon', 'month')"),
\"to_char(last_discover, 'YYYY-MM-DD HH24:MI')", last_discover_stamp => \"to_char(last_discover, 'YYYY-MM-DD HH24:MI')",
\"to_char(last_macsuck, 'YYYY-MM-DD HH24:MI')", last_macsuck_stamp => \"to_char(last_macsuck, 'YYYY-MM-DD HH24:MI')",
\"to_char(last_arpnip, 'YYYY-MM-DD HH24:MI')", last_arpnip_stamp => \"to_char(last_arpnip, 'YYYY-MM-DD HH24:MI')",
], },
'+as' => [qw/
uptime_age
last_discover_stamp
last_macsuck_stamp
last_arpnip_stamp
/],
}); });
} }

View File

@@ -26,11 +26,9 @@ sub with_times {
->search_rs($cond, $attrs) ->search_rs($cond, $attrs)
->search({}, ->search({},
{ {
'+select' => [ '+columns' => { lastchange_stamp =>
\"to_char(device.last_discover - (device.uptime - lastchange) / 100 * interval '1 second', \("to_char(device.last_discover - (device.uptime - lastchange) / 100 * interval '1 second', "
'YYYY-MM-DD HH24:MI:SS')", ."'YYYY-MM-DD HH24:MI:SS')") },
],
'+as' => [qw/ lastchange_stamp /],
join => 'device', join => 'device',
}); });
} }
@@ -61,14 +59,12 @@ sub with_is_free {
->search_rs($cond, $attrs) ->search_rs($cond, $attrs)
->search({}, ->search({},
{ {
'+select' => [ '+columns' => { is_free =>
\["up != 'up' and " \["up != 'up' and "
."age(to_timestamp(extract(epoch from device.last_discover) " ."age(to_timestamp(extract(epoch from device.last_discover) "
."- (device.uptime - lastchange)/100)) " ."- (device.uptime - lastchange)/100)) "
."> ?::interval", ."> ?::interval",
[{} => $interval]], [{} => $interval]] },
],
'+as' => [qw/ is_free /],
join => 'device', join => 'device',
}); });
} }

View File

@@ -49,12 +49,11 @@ sub search_by_mac {
return $rs return $rs
->search_rs({}, { ->search_rs({}, {
order_by => {'-desc' => 'time_last'}, order_by => {'-desc' => 'time_last'},
'+columns' => [qw/ device.dns /], '+columns' => [
'+select' => [ 'device.dns',
\"to_char(time_first, 'YYYY-MM-DD HH24:MI')", { time_first_stamp => \"to_char(time_first, 'YYYY-MM-DD HH24:MI')" },
\"to_char(time_last, 'YYYY-MM-DD HH24:MI')", { time_last_stamp => \"to_char(time_last, 'YYYY-MM-DD HH24:MI')" },
], ],
'+as' => [qw/ time_first_stamp time_last_stamp /],
join => 'device', join => 'device',
}) })
->search($cond, $attrs); ->search($cond, $attrs);

View File

@@ -24,12 +24,11 @@ sub has_dns_col {
my $search_attr = { my $search_attr = {
order_by => {'-desc' => 'time_last'}, order_by => {'-desc' => 'time_last'},
'+columns' => [qw/ oui.company /], '+columns' => [
'+select' => [ 'oui.company',
\"to_char(time_first, 'YYYY-MM-DD HH24:MI')", { time_first_stamp => \"to_char(time_first, 'YYYY-MM-DD HH24:MI')" },
\"to_char(time_last, 'YYYY-MM-DD HH24:MI')", { time_last_stamp => \"to_char(time_last, 'YYYY-MM-DD HH24:MI')" },
], ],
'+as' => [qw/ time_first_stamp time_last_stamp /],
join => 'oui' join => 'oui'
}; };