GDPDU: Typo (transactions.csv)
[kivitendo-erp.git] / SL / DBUpgrade2.pm
index 840a1dd..5c8280b 100644 (file)
@@ -147,9 +147,6 @@ sub process_query {
     # Remove DOS and Unix style line endings.
     chomp;
 
-    # remove comments
-    s/--.*$//;
-
     for (my $i = 0; $i < length($_); $i++) {
       my $char = substr($_, $i, 1);
 
@@ -176,6 +173,11 @@ sub process_query {
              &&  $tag      =~ /^ (?= [A-Za-z_] [A-Za-z0-9_]* | ) $/x) {  # tag is identifier
           push @quote_chars, $char = '$' . $tag . '$';
           $i = $tag_end;
+        } elsif ($char eq "-") {
+          if ( substr($_, $i+1, 1) eq "-") {
+            # found a comment outside quote
+            last;
+          }
         } elsif ($char eq ";") {
 
           # Query is complete. Send it.
@@ -241,7 +243,6 @@ sub process_perl_script {
   $dbh->begin_work;
 
   # setup dbup_ export vars & run script
-  my $old_dbh       = $::form->set_standard_dbh($dbh);
   my %dbup_myconfig = map { ($_ => $::form->{$_}) } qw(dbname dbuser dbpasswd dbhost dbport dbconnect);
   my $result        = eval {
     SL::DBUpgrade2::Base::execute_script(
@@ -254,18 +255,16 @@ sub process_perl_script {
 
   my $error = $EVAL_ERROR;
 
-  $::form->set_standard_dbh($old_dbh);
-
   $dbh->rollback if 1 != ($result // -1);
 
   return $error if $self->{return_on_error} && (1 != ($result // -1));
 
   if (!defined($result)) {
     print $::form->parse_html_template("dbupgrade/error", { file  => $filename, error => $error });
-    ::end_of_request();
+    $::dispatcher->end_request;
   } elsif (1 != $result) {
     SL::System::InstallationLock->unlock if 2 == $result;
-    ::end_of_request();
+    $::dispatcher->end_request;
   }
 
   if (ref($version_or_control) eq "HASH") {