@@ -107,7 +107,7 @@ func init() {
107
107
cmdKeeper .PersistentFlags ().BoolVar (& cfg .debug ,"debug" ,false ,"enable debug logging" )
108
108
}
109
109
110
- var defaultPGParameters = pg.Parameters {
110
+ var mandatoryPGParameters = pg.Parameters {
111
111
"unix_socket_directories" :"/tmp" ,
112
112
"wal_level" :"hot_standby" ,
113
113
"wal_keep_segments" :"8" ,
@@ -178,33 +178,37 @@ func (p *PostgresKeeper) getOurReplConnParams() pg.ConnParams {
178
178
}
179
179
180
180
func (p * PostgresKeeper )createPGParameters (followersIDs []string ) pg.Parameters {
181
- pgParameters := p .clusterConfig .PGParameters
181
+ parameters := pg.Parameters {}
182
+ // Copy user defined pg parameters
183
+ for k ,v := range p .clusterConfig .PGParameters {
184
+ parameters [k ]= v
185
+ }
182
186
183
- //Merge default PGParameters
184
- for k ,v := range defaultPGParameters . Copy () {
185
- pgParameters [k ]= v
187
+ //Add/Replace mandatory PGParameters
188
+ for k ,v := range mandatoryPGParameters {
189
+ parameters [k ]= v
186
190
}
187
191
188
- pgParameters ["listen_addresses" ]= fmt .Sprintf ("127.0.0.1,%s" ,p .pgListenAddress )
189
- pgParameters ["port" ]= p .pgPort
190
- pgParameters ["max_replication_slots" ]= strconv .FormatUint (uint64 (p .clusterConfig .MaxStandbysPerSender ),10 )
192
+ parameters ["listen_addresses" ]= fmt .Sprintf ("127.0.0.1,%s" ,p .pgListenAddress )
193
+ parameters ["port" ]= p .pgPort
194
+ parameters ["max_replication_slots" ]= strconv .FormatUint (uint64 (p .clusterConfig .MaxStandbysPerSender ),10 )
191
195
// Add some more wal senders, since also the keeper will use them
192
- pgParameters ["max_wal_senders" ]= strconv .FormatUint (uint64 (p .clusterConfig .MaxStandbysPerSender + 2 ),10 )
196
+ parameters ["max_wal_senders" ]= strconv .FormatUint (uint64 (p .clusterConfig .MaxStandbysPerSender + 2 ),10 )
193
197
194
198
// required by pg_rewind
195
199
// if database has data checksum enabled it's ignored
196
200
if p .clusterConfig .UsePGRewind {
197
- pgParameters ["wal_log_hints" ]= "on"
201
+ parameters ["wal_log_hints" ]= "on"
198
202
}
199
203
200
204
// Setup synchronous replication
201
205
if p .clusterConfig .SynchronousReplication {
202
- pgParameters ["synchronous_standby_names" ]= strings .Join (followersIDs ,"," )
206
+ parameters ["synchronous_standby_names" ]= strings .Join (followersIDs ,"," )
203
207
}else {
204
- pgParameters ["synchronous_standby_names" ]= ""
208
+ parameters ["synchronous_standby_names" ]= ""
205
209
}
206
210
207
- return pgParameters
211
+ return parameters
208
212
}
209
213
210
214
type PostgresKeeper struct {