Index: sql/mojo/mojo_vfs.cc |
diff --git a/sql/mojo/mojo_vfs.cc b/sql/mojo/mojo_vfs.cc |
index 6e38af9704032a15b0cf1bbd329e6c4da212c560..8de6109e79f9ce7ed304c98e583692b72c1dbd71 100644 |
--- a/sql/mojo/mojo_vfs.cc |
+++ b/sql/mojo/mojo_vfs.cc |
@@ -6,6 +6,7 @@ |
#include "base/logging.h" |
#include "base/rand_util.h" |
+#include "base/strings/stringprintf.h" |
#include "components/filesystem/public/interfaces/file.mojom.h" |
#include "components/filesystem/public/interfaces/file_system.mojom.h" |
#include "components/filesystem/public/interfaces/types.mojom.h" |
@@ -245,10 +246,19 @@ int MojoVFSOpen(sqlite3_vfs* mojo_vfs, |
if (flags & SQLITE_OPEN_DELETEONCLOSE) |
open_flags |= filesystem::kDeleteOnClose; |
+ mojo::String mojo_name; |
+ if (name) { |
+ mojo_name = name; |
+ } else { |
+ DCHECK(flags & SQLITE_OPEN_DELETEONCLOSE); |
+ static int temp_number = 0; |
+ mojo_name = base::StringPrintf("Temp_%d.db", temp_number++); |
+ } |
+ |
// Grab the incoming file |
filesystem::FilePtr file_ptr; |
filesystem::FileError error = filesystem::FILE_ERROR_FAILED; |
- GetRootDirectory(mojo_vfs)->OpenFile(mojo::String(name), GetProxy(&file_ptr), |
+ GetRootDirectory(mojo_vfs)->OpenFile(mojo_name, GetProxy(&file_ptr), |
open_flags, Capture(&error)); |
GetRootDirectory(mojo_vfs).WaitForIncomingResponse(); |
if (error != filesystem::FILE_ERROR_OK) { |