diff options
-rw-r--r-- | src/couchdb/couch_server.erl | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/couchdb/couch_server.erl b/src/couchdb/couch_server.erl index b9503d2f..7870d69e 100644 --- a/src/couchdb/couch_server.erl +++ b/src/couchdb/couch_server.erl @@ -314,13 +314,11 @@ handle_call({open, DbName, Options}, {FromPid,_}=From, Server) -> {reply, couch_db:open_ref_counted(MainPid, FromPid), Server} end; handle_call({create, DbName, Options}, From, Server) -> - FileName = get_full_filename(Server, ?b2l(DbName)), - case file:open(FileName, [read]) of - {ok, Fd} -> - ok = file:close(Fd), - {reply, file_exists, Server}; - Error -> - open_db(DbName, Server, [create | Options], From) + case ets:lookup(couch_dbs_by_name, DbName) of + [] -> + open_db(DbName, Server, [create | Options], From); + [_AlreadyRunningDb] -> + {reply, file_exists, Server} end; handle_call({delete, DbName, _Options}, _From, Server) -> DbNameList = binary_to_list(DbName), |