code: def _build_effective_configuration(self):
          
  
          OPTIONS_MAPPING = {
              'max_connections': 'max_connections setting',
              'max_prepared_transactions': 'max_prepared_xacts setting',
              'max_locks_per_transaction': 'max_locks_per_xact setting'
          }
  
          if self._major_version >= 90400:
              OPTIONS_MAPPING['max_worker_processes'] = 'max_worker_processes setting'
  
          data = self.controldata()
          effective_configuration = self._server_parameters.copy()
  
          for name, cname in OPTIONS_MAPPING.items():
              value = parse_int(effective_configuration[name])
              cvalue = parse_int(data[cname])
              if cvalue > value:
                  effective_configuration[name] = cvalue
                  self._pending_restart = True
          return effective_configuration
docs: It might happen that the current value of one (or more) below parameters stored in
          the controldata is higher than the value stored in the global cluster configuration.
  
          Example: max_connections in global configuration is 100, but in controldata
          `Current max_connections setting: 200`. If we try to start postgres with
          max_connections=100, it will immediately exit.
          As a workaround we will start it with the values from controldata and set `pending_restart`
          to true as an indicator that current values of parameters are not matching expectations.