aboutsummaryrefslogtreecommitdiff
path: root/audio/logitechmediaserver/files/patch-dbix-class-bug.diff
blob: 1724278b13c93bc157363b2e4fd550c15cc7be66 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
--- scanner.pl.orig	2016-09-30 13:54:28 UTC
+++ scanner.pl
@@ -279,10 +279,6 @@ sub main {
 	# Perform pre-scan steps specific to the database type, i.e. SQLite needs to copy to a new file
 	$sqlHelperClass->beforeScan();
 
-	# Take the db out of autocommit mode - this makes for a much faster scan.
-	# Scanner::Local will commit every few operations
-	Slim::Schema->dbh->{'AutoCommit'} = 0;
-
 	my $scanType = 'SETUP_STANDARDRESCAN';
 
 	if ($wipe) {
Index: Slim/Schema.pm
===================================================================
--- Slim/Schema.pm.orig	2016-09-30 13:54:28 UTC
+++ Slim/Schema.pm
@@ -270,12 +270,16 @@ sub _connect {
 	# For custom exceptions
 	$class->storage_type('Slim::Schema::Storage');
 	
+	# Don't use autocommit mode for the scanner.
+	# Needs to be set here as setting dbh->{'AutoCommit'} = 0 later
+	# confusing the transaction nesting logic.
+	my $AutoCommit = (main::SCANNER ? 0 : 1);
 	my $sqlHelperClass = Slim::Utils::OSDetect->getOS()->sqlHelperClass();
 	my $on_connect_do = $sqlHelperClass->on_connect_do();
 	
 	$class->connection( $dsn || $source, $username, $password, { 
 		RaiseError    => 1,
-		AutoCommit    => 1,
+		AutoCommit    => $AutoCommit,
 		PrintError    => 0,
 		Taint         => 1,
 		on_connect_do => [