1package App::Netdisco::DB::Result::Virtual::CidrIps; 2 3use strict; 4use warnings; 5 6use utf8; 7use base 'DBIx::Class::Core'; 8 9__PACKAGE__->table_class('DBIx::Class::ResultSource::View'); 10 11__PACKAGE__->table('cidr_ips'); 12__PACKAGE__->result_source_instance->is_virtual(1); 13__PACKAGE__->result_source_instance->view_definition(<<'ENDSQL'); 14SELECT host(network (prefix) + sub.int)::inet AS ip, 15 NULL::macaddr AS mac, 16 NULL::text AS dns, 17 NULL::timestamp AS time_first, 18 NULL::timestamp AS time_last, 19 false::boolean AS active 20 FROM ( 21 SELECT prefix, 22 generate_series(1, (broadcast(prefix) - network(prefix) - 1)) AS int 23 FROM ( 24 SELECT ?::inet AS prefix 25 ) AS addr 26 ) AS sub 27ENDSQL 28 29__PACKAGE__->add_columns( 30 "ip", 31 { data_type => "inet", is_nullable => 0 }, 32 "mac", 33 { data_type => "macaddr", is_nullable => 1 }, 34 "dns", 35 { data_type => "text", is_nullable => 1 }, 36 "active", 37 { data_type => "boolean", is_nullable => 1 }, 38 "time_first", 39 { 40 data_type => "timestamp", 41 is_nullable => 1, 42 }, 43 "time_last", 44 { 45 data_type => "timestamp", 46 is_nullable => 1, 47 }, 48); 49 501; 51