Skip to content

Commit ac4cc36

Browse files
authored
Write config - default to the connection string writeconcern is available. (#134)
SPARK-392
1 parent 09cb4fd commit ac4cc36

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/main/java/com/mongodb/spark/sql/connector/config/WriteConfig.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,10 @@ private String getNamespaceDescription(final CollectionsConfig collectionsConfig
344344
}
345345

346346
private WriteConcern createWriteConcern() {
347-
WriteConcern writeConcern = WriteConcern.ACKNOWLEDGED;
347+
WriteConcern writeConcern = getConnectionString().getWriteConcern();
348+
if (writeConcern == null) {
349+
writeConcern = WriteConcern.ACKNOWLEDGED;
350+
}
348351
try {
349352
if (containsKey(WRITE_CONCERN_W_CONFIG)) {
350353
try {

src/test/java/com/mongodb/spark/sql/connector/config/MongoConfigTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,18 @@ void testMongoConfigWriteConcern() {
126126
writeConfig = writeConfig.withOption(
127127
WriteConfig.WRITE_PREFIX + WriteConfig.WRITE_CONCERN_W_CONFIG, "region1");
128128
assertEquals(new WriteConcern("region1"), writeConfig.getWriteConcern());
129+
130+
writeConfig = MongoConfig.createConfig(CONFIG_MAP).toWriteConfig();
131+
writeConfig.withOption(MongoConfig.CONNECTION_STRING_CONFIG, "mongodb://localhost/");
132+
assertEquals(WriteConcern.ACKNOWLEDGED, writeConfig.getWriteConcern());
133+
134+
writeConfig = writeConfig.withOption(
135+
MongoConfig.CONNECTION_STRING_CONFIG, "mongodb://localhost/?w=majority");
136+
assertEquals(WriteConcern.MAJORITY, writeConfig.getWriteConcern());
137+
138+
// Explicit configuration beats connection string
139+
writeConfig = writeConfig.withOption(WriteConfig.WRITE_CONCERN_W_CONFIG, "3");
140+
assertEquals(3, writeConfig.getWriteConcern().getW());
129141
}
130142

131143
@Test

0 commit comments

Comments
 (0)