Skip to content

Commit 2a25967

Browse files
committed
Merge branch 'pr/52'
Change-Id: I709caabd30d4431e82780cd10ab7376cf9aab350
2 parents 351d2c1 + 9d404da commit 2a25967

File tree

4 files changed

+25
-3
lines changed

4 files changed

+25
-3
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ debug
55
*.ipr
66
*.iws
77
.idea
8+
*.sublime-project
9+
*.sublime-workspace

bson/encode.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ func (e *encoder) encodeStruct(val reflect.Value) ([]*Element, error) {
525525
if omitempty && e.isZero(field) {
526526
continue
527527
}
528-
528+
529529
if inline {
530530
switch sf.Type.Kind() {
531531
case reflect.Map:

mongo/client.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,14 +118,20 @@ func newClient(cs connstring.ConnString, opts *ClientOptions) (*Client, error) {
118118
if err != nil {
119119
return nil, err
120120
}
121-
122121
client.topology = topo
122+
123123
client.readConcern = readConcernFromConnString(&client.connString)
124124
client.writeConcern = writeConcernFromConnString(&client.connString)
125-
client.readPreference, err = readPreferenceFromConnString(&client.connString)
125+
126+
rp, err := readPreferenceFromConnString(&client.connString)
126127
if err != nil {
127128
return nil, err
128129
}
130+
if rp != nil {
131+
client.readPreference = rp
132+
} else {
133+
client.readPreference = readpref.Primary()
134+
}
129135

130136
return client, nil
131137
}
@@ -190,6 +196,7 @@ func readPreferenceFromConnString(cs *connstring.ConnString) (*readpref.ReadPref
190196
if cs.MaxStaleness != 0 {
191197
options = append(options, readpref.WithMaxStaleness(cs.MaxStaleness))
192198
}
199+
193200
if len(cs.ReadPreference) > 0 {
194201
if rp == nil {
195202
mode, _ := readpref.ModeFromString(cs.ReadPreference)
@@ -199,6 +206,7 @@ func readPreferenceFromConnString(cs *connstring.ConnString) (*readpref.ReadPref
199206
}
200207
}
201208
}
209+
202210
return rp, nil
203211
}
204212

mongo/client_internal_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,5 +331,17 @@ func TestClient_ReadPreference(t *testing.T) {
331331
d, flag := c.readPreference.MaxStaleness()
332332
require.True(t, flag)
333333
require.Equal(t, time.Duration(5)*time.Second, d)
334+
}
335+
336+
func TestClient_ReadPreferenceAbsent(t *testing.T) {
337+
t.Parallel()
334338

339+
cs := testutil.ConnString(t)
340+
c, err := NewClient(cs.String())
341+
require.NoError(t, err)
342+
require.NotNil(t, c)
343+
require.Equal(t, readpref.PrimaryMode, c.readPreference.Mode())
344+
require.Empty(t, c.readPreference.TagSets())
345+
_, flag := c.readPreference.MaxStaleness()
346+
require.False(t, flag)
335347
}

0 commit comments

Comments
 (0)