NAME
MySQL::Dump::Parser::XS - mysqldump SQL parser
SYNOPSIS
use MySQL::Dump::Parser::XS;
open my $fh, '<:encoding(utf-8)', 'backup.sql' or die $!;
my %rows;
my $parser = MySQL::Dump::Parser::XS->new;
while (my $line = <$fh>) {
my @rows = $parser->parse($line);
my $table = $parser->current_target_table();
push @{ $rows{$table} } => @rows if $table;
}
for my $table ($parser->tables()) {
my @columns = $parser->columns($table);
my $row = $rows{$table};
print "[$table] id:$row->{id}\n";
}
DESCRIPTION
MySQL::Dump::Parser::XS is mysqldump
parser written in C/XS. This module provides schema/data loader from mysqldump
output SQL directly. No need mysqld
.
METHODS
CLASS METHODS
new()
Creates a new parser instance. This manages parsing states and table's meta information in the parsing context.
INSTANCE METHODS
reset()
Re-initialize parsing context.
parse($line)
Parse a line of mysqldump
output.
current_target_table()
Get current target table name in the parsing context.
columns($table_name)
Get column names as LIST for the table of $table_name
. This method can get columns from already parsed tables only.
tables()
Get table names as LIST. This method can get tables from already parsed tables only.
FAQ
How to get column details?
Some mysqldump
output include poor table schema information only. So if you just need rich table schema information, I suggest using DBIx::Inspector to solve the problem.
LICENSE
Copyright (C) karupanerura.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
karupanerura <karupa@cpan.org>