1
0
mirror of https://gitlab.com/depesz/explain.depesz.com.git synced 2025-07-15 01:34:18 +02:00

If Explain creation fails:

+ message "Failed to create..." above form
 + log ("info") message
 + send mail with invalid plan
This commit is contained in:
metys
2011-05-04 07:12:41 +00:00
parent 5f5a3b5685
commit 34818b7d7b
2 changed files with 30 additions and 4 deletions

View File

@ -20,14 +20,36 @@ sub index {
return $self->render( message => 'Your plan is too long.', status => 413 )
if 10_000_000 < length $plan;
# validate plan
# try
eval {
# make "explain"
my $explain = Pg::Explain->new( source => $plan );
$explain->top_node;
# something goes wrong...
die q|Can't create explain! Explain "top_node" is undef!|
unless defined $explain->top_node;
};
# something goes wrong
return $self->render( message => q|Failed to parse your plan.| ) if $EVAL_ERROR;
# catch
if ( $EVAL_ERROR ) {
# log message
$self->app->log->info( $EVAL_ERROR );
# try
eval {
# send mail
$self->send_mail( {
subject => q|Can't create explain from...|,
msg => $plan
} );
};
# leave...
return $self->render( message => q|Failed to parse your plan| );
}
# public
my $is_public = $self->req->param( 'is_public' ) ? 1 : 0;

View File

@ -5,6 +5,10 @@
<h1><%= $title =%></h1>
% if ( stash( 'message' ) ) {
<p class="message"><%= stash( 'message' ) =%></p>
% }
<form id="new-explain" method="post" action="<%= url_for 'current' %>">
<div class="fe fe-first fe_plan">