Skip to content

Commit 88d1dfb

Browse files
author
rstam
committed
CSHARP-986: Allow $external as a database name even though it contains a "$".
1 parent 75977d0 commit 88d1dfb

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

MongoDB.Driver/MongoServer.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -713,6 +713,8 @@ public virtual GetLastErrorResult GetLastError()
713713
/// <returns>True if the database name is valid; otherwise, false.</returns>
714714
public virtual bool IsDatabaseNameValid(string databaseName, out string message)
715715
{
716+
message = null;
717+
716718
if (databaseName == null)
717719
{
718720
throw new ArgumentNullException("databaseName");
@@ -724,6 +726,12 @@ public virtual bool IsDatabaseNameValid(string databaseName, out string message)
724726
return false;
725727
}
726728

729+
// make an exception for $external
730+
if (databaseName == "$external")
731+
{
732+
return true;
733+
}
734+
727735
foreach (var c in databaseName)
728736
{
729737
if (__invalidDatabaseNameChars.Contains(c))
@@ -741,7 +749,6 @@ public virtual bool IsDatabaseNameValid(string databaseName, out string message)
741749
return false;
742750
}
743751

744-
message = null;
745752
return true;
746753
}
747754

MongoDB.DriverUnitTests/MongoServerTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ public void TestIsDatabaseNameValid()
195195
Assert.IsFalse(_server.IsDatabaseNameValid("", out message));
196196
Assert.IsFalse(_server.IsDatabaseNameValid("/", out message));
197197
Assert.IsFalse(_server.IsDatabaseNameValid(new string('x', 128), out message));
198+
Assert.IsTrue(_server.IsDatabaseNameValid("$external", out message));
198199
}
199200

200201
[Test]

0 commit comments

Comments
 (0)