Sha256: 9b4e359497df3b553887da5da45c74a32eba7f2da39f212409ebb3053a849978

Contents?: true

Size: 883 Bytes

Versions: 1

Compression:

Stored size: 883 Bytes

Contents

module Timescale
  class Hypertable < ActiveRecord::Base
    self.table_name = "timescaledb_information.hypertables"

    self.primary_key = "hypertable_name"

    has_many :jobs, foreign_key: "hypertable_name"
    has_many :chunks, foreign_key: "hypertable_name"

    has_many :compression_settings,
      foreign_key: "hypertable_name",
      class_name: "Timescale::CompressionSettings"

    has_many :continuous_aggregates,
      foreign_key: "hypertable_name",
      class_name: "Timescale::ContinuousAggregates"

    def detailed_size
      struct_from "SELECT * from chunks_detailed_size('#{self.hypertable_name}')"
    end

    def compression_stats
      struct_from "SELECT * from hypertable_compression_stats('#{self.hypertable_name}')"
    end

    private
    def struct_from(sql)
      self.class.connection.execute(sql).map(&OpenStruct.method(:new))
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
timescaledb-0.1.0 lib/timescale/hypertable.rb