diff --git a/components/library/localdatabase/src/sbLocalDatabaseLibrary.cpp b/components/library/localdatabase/src/sbLocalDatabaseLibrary.cpp index 24cb9e3..d742a64 100644 --- a/components/library/localdatabase/src/sbLocalDatabaseLibrary.cpp +++ b/components/library/localdatabase/src/sbLocalDatabaseLibrary.cpp @@ -660,6 +660,14 @@ nsresult sbLocalDatabaseLibrary::CreateQueries() values (?, ?, ?, ?, ?, ?, ?)"), getter_AddRefs(mCreateMediaItemPreparedStatement)); NS_ENSURE_SUCCESS(rv, rv); + query->PrepareQuery(NS_LITERAL_STRING("\ + SELECT _mlt.type \ + FROM media_items as _mi \ + LEFT JOIN media_list_types as _mlt ON _mi.media_list_type_id = _mlt.media_list_type_id \ + WHERE _mi.guid = ?"), + getter_AddRefs(mGetTypeForGUID)); + NS_ENSURE_SUCCESS(rv, rv); + return NS_OK; } /** @@ -892,11 +900,7 @@ sbLocalDatabaseLibrary::GetTypeForGUID(const nsAString& aGUID, nsresult rv = MakeStandardQuery(getter_AddRefs(query)); NS_ENSURE_SUCCESS(rv, rv); - rv = query->AddQuery(NS_LITERAL_STRING("\ - SELECT _mlt.type \ - FROM media_items as _mi \ - LEFT JOIN media_list_types as _mlt ON _mi.media_list_type_id = _mlt.media_list_type_id \ - WHERE _mi.guid = ?")); + rv = query->AddPreparedStatement(mGetTypeForGUID); NS_ENSURE_SUCCESS(rv, rv); rv = query->BindStringParameter(0, aGUID); diff --git a/components/library/localdatabase/src/sbLocalDatabaseLibrary.h b/components/library/localdatabase/src/sbLocalDatabaseLibrary.h index 9ebd0c9..5e5fe39 100644 --- a/components/library/localdatabase/src/sbLocalDatabaseLibrary.h +++ b/components/library/localdatabase/src/sbLocalDatabaseLibrary.h @@ -343,6 +343,7 @@ private: nsCOMPtr mContentSrc; nsCOMPtr mCreateMediaItemPreparedStatement; + nsCOMPtr mGetTypeForGUID; // There's a separate update statement for each top level property. // This is because we have no efficient way to /not/ update a property