Sha256: 9efaf73bcdd6bda6cbd3b82ffe499e5e44848462af2320d706a61dd5789b185f

Contents?: true

Size: 1.08 KB

Versions: 10

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)
        names.to_h { |name| [name, select_one("SHOW #{name}")] }
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
pghero-3.4.0 lib/pghero/methods/settings.rb
pghero-3.3.4 lib/pghero/methods/settings.rb
pghero-3.3.3 lib/pghero/methods/settings.rb
pghero-3.3.2 lib/pghero/methods/settings.rb
pghero-3.3.1 lib/pghero/methods/settings.rb
pghero-3.3.0 lib/pghero/methods/settings.rb
pghero-3.2.0 lib/pghero/methods/settings.rb
pghero-3.1.0 lib/pghero/methods/settings.rb
pghero-3.0.1 lib/pghero/methods/settings.rb
pghero-3.0.0 lib/pghero/methods/settings.rb