class ActiveRecord::Base
Public Class Methods
acts_as_distributed(partition_column:)
click to toggle source
# File lib/citus-rails-4.2/acts_as_distributed.rb, line 2 def self.acts_as_distributed(partition_column:) check_citus_compatibility @partition_column = partition_column end
copy_from_client(columns, &block)
click to toggle source
# File lib/citus-rails-4.2/copy_from_client.rb, line 18 def self.copy_from_client(columns, &block) conn = connection.raw_connection column_types = columns.map { |c| columns_hash[c.to_s] } helper = CopyFromClientHelper.new(conn, column_types) conn.copy_data %{COPY #{quoted_table_name}("#{columns.join('","')}") FROM STDIN}, PG::TextEncoder::CopyRow.new do block.call helper end helper.count end
Private Class Methods
check_citus_compatibility()
click to toggle source
# File lib/citus-rails-4.2/acts_as_distributed.rb, line 13 def self.check_citus_compatibility if primary_keys && primary_keys.include?('id') suggested_name = name.underscore + '_id' fail format("citus-rails currently does not support models with 'id' as one of multiple primary keys - please name your id column '%s'", suggested_name) end end
Public Instance Methods
partition_column()
click to toggle source
# File lib/citus-rails-4.2/acts_as_distributed.rb, line 7 def partition_column @partition_column end