__PACKAGE__->table_class(
'DBIx::Class::ResultSource::View'
);
__PACKAGE__->table(
'cidr_ips'
);
__PACKAGE__->result_source_instance->is_virtual(1);
__PACKAGE__->result_source_instance->view_definition(
<<'ENDSQL');
SELECT host(network (prefix) + sub.int)::inet AS ip,
NULL::macaddr AS mac,
NULL::timestamp AS time_first,
NULL::timestamp AS time_last,
NULL::text AS dns,
false::boolean AS active,
false::boolean AS node,
replace( date_trunc( 'minute', age( LOCALTIMESTAMP, NULL::timestamp ) ) ::text, 'mon', 'month') AS age,
NULL::text AS vendor,
NULL::text AS nbname
FROM (
SELECT prefix,
generate_series(1, (broadcast(prefix) - network(prefix) - 1)) AS int
FROM (
SELECT ?::inet AS prefix
) AS addr
) AS sub
ENDSQL
__PACKAGE__->add_columns(
"ip"
,
{
data_type
=>
"inet"
,
is_nullable
=> 0 },
"mac"
,
{
data_type
=>
"macaddr"
,
is_nullable
=> 1 },
"time_first"
,
{
data_type
=>
"timestamp"
,
is_nullable
=> 1,
},
"time_last"
,
{
data_type
=>
"timestamp"
,
is_nullable
=> 1,
},
"dns"
,
{
data_type
=>
"text"
,
is_nullable
=> 1 },
"active"
,
{
data_type
=>
"boolean"
,
is_nullable
=> 1 },
"node"
,
{
data_type
=>
"boolean"
,
is_nullable
=> 1 },
"age"
,
{
data_type
=>
"text"
,
is_nullable
=> 1 },
"vendor"
,
{
data_type
=>
"text"
,
is_nullable
=> 1 },
"nbname"
,
{
data_type
=>
"text"
,
is_nullable
=> 1 },
);
1;