Melian
view release on metacpan or search on metacpan
lib/Melian.pm view on Meta::CPAN
};
return $decoded;
}
# table1#0|60|id#0:int,table2#1|45|id#0:int;hostname#1:string
sub load_schema_from_spec {
my $spec = shift;
my %data;
for my $section_data ( split m{,}, $spec ) {
my ( $table_data, $table_period, $columns ) = split m{\|}, $section_data;
my ( $table_name, $table_id ) = split m{#}, $table_data;
defined $table_name && defined $table_id
or croak('Schema spec failure: Missing table name or table ID');
my %table_entry = (
'name' => $table_name,
'id' => $table_id,
'period' => $table_period,
);
my @columns;
foreach my $column_data ( split m{;}, $columns ) {
my ( $column_data, $column_type ) = split /:/, $column_data;
my ( $column_name, $column_id ) = split m{#}, $column_data;
push @{ $table_entry{'indexes'} }, {
'id' => $column_id,
'column' => $column_name,
'type' => $column_type,
}
}
push @{ $data{'tables'} }, \%table_entry;
}
( run in 2.885 seconds using v1.01-cache-2.11-cpan-71847e10f99 )