Sha256: 39aca5a15f1370c7ba28ef14b237d6d037ddb2e08a0ca88d911d39d80a61605a

Contents?: true

Size: 1.08 KB

Versions: 25

Compression:

Stored size: 1.08 KB

Contents

module PgHero
  module Methods
    module Settings
      def settings
        names =
          if server_version_num >= 90500
            %i(
              max_connections shared_buffers effective_cache_size work_mem
              maintenance_work_mem min_wal_size max_wal_size checkpoint_completion_target
              wal_buffers default_statistics_target
            )
          else
            %i(
              max_connections shared_buffers effective_cache_size work_mem
              maintenance_work_mem checkpoint_segments checkpoint_completion_target
              wal_buffers default_statistics_target
            )
          end
        fetch_settings(names)
      end

      def autovacuum_settings
        fetch_settings %i(autovacuum autovacuum_max_workers autovacuum_vacuum_cost_limit autovacuum_vacuum_scale_factor autovacuum_analyze_scale_factor)
      end

      def vacuum_settings
        fetch_settings %i(vacuum_cost_limit)
      end

      private

      def fetch_settings(names)
        Hash[names.map { |name| [name, select_one("SHOW #{name}")] }]
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
pghero-2.1.0 lib/pghero/methods/settings.rb
pghero-2.0.8 lib/pghero/methods/settings.rb
pghero-2.0.7 lib/pghero/methods/settings.rb
pghero-2.0.6 lib/pghero/methods/settings.rb
pghero-2.0.5 lib/pghero/methods/settings.rb