X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FDBConnect%2FCache.pm;h=c133e8a3db641f6e713e8f06b28f388ee0dc9fa5;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hp=4f1a465b52d59487011e223f7d309a138eff8eae;hpb=07062a3cd783a813df26b97e30f1156c6a291692;p=kivitendo-erp.git diff --git a/SL/DBConnect/Cache.pm b/SL/DBConnect/Cache.pm index 4f1a465b5..c133e8a3d 100644 --- a/SL/DBConnect/Cache.pm +++ b/SL/DBConnect/Cache.pm @@ -35,14 +35,23 @@ 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) = @_; - my ($dbconnect, $dbuser, $dbpasswd, $options) = @_; + my ($dbconnect, $dbuser, $dbpasswd, $options, $initial_sql) = @_; $dbconnect //= ''; $dbuser //= ''; $dbpasswd //= ''; @@ -52,7 +61,7 @@ sub _args2str { map { $_ => $options->{$_} } sort keys %$options; # deterministic order - join ';', apply { s/([;\\])/\\$1/g } $dbconnect, $dbuser, $dbpasswd, $options_str; + join ';', apply { $_ //= ''; s/([;\\])/\\$1/g } $dbconnect, $dbuser, $dbpasswd, $options_str, $initial_sql; } 1;