Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / SL / DBConnect / Cache.pm
index 778785c..c133e8a 100644 (file)
@@ -35,10 +35,19 @@ sub reset {
   $dbh;
 }
 
+sub reset_all {
+  $_->{AutoCommit} || $_->rollback for values %cache;
+}
+
 sub clear {
   %cache = ();
 }
 
+sub disconnect_all_and_clear {
+  $_->disconnect for values %cache;
+  %cache = ();
+}
+
 sub _args2str {
   my (@args) = @_;
 
@@ -52,7 +61,7 @@ sub _args2str {
     map { $_ => $options->{$_} }
     sort keys %$options;                  # deterministic order
 
-  join ';', apply { s/([;\\])/\\$1/g } $dbconnect, $dbuser, $dbpasswd, $options_str, $initial_sql;
+  join ';', apply { $_ //= ''; s/([;\\])/\\$1/g } $dbconnect, $dbuser, $dbpasswd, $options_str, $initial_sql;
 }
 
 1;