class Postmodern::Vacuum::Freeze

Public Instance Methods

vacuum_statement(table_name) click to toggle source
# File lib/postmodern/vacuum/freeze.rb, line 7
def vacuum_statement table_name
  "VACUUM FREEZE ANALYZE %s" % table_name
end

Protected Instance Methods

table_sql() click to toggle source
# File lib/postmodern/vacuum/freeze.rb, line 13
      def table_sql
        <<-SQL.gsub(/^\s{8}/, '')
        WITH tabfreeze AS (
            SELECT pg_class.oid::regclass AS full_table_name,
            age(relfrozenxid)as freeze_age,
            pg_relation_size(pg_class.oid)
        FROM pg_class JOIN pg_namespace ON relnamespace = pg_namespace.oid
        WHERE nspname not in ('pg_catalog', 'information_schema')
            AND nspname NOT LIKE 'pg_temp%'
            AND relkind = 'r'
        )
        SELECT full_table_name
        FROM tabfreeze
        WHERE freeze_age > #{options[:freezeage]}
        ORDER BY freeze_age DESC
        LIMIT 1000;
        SQL
      end