Method: Baza::QueryBuffer#insert_with_multi

Defined in:
lib/baza/query_buffer.rb

#insert_with_multi(table, data, sort: false) ⇒ Object



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/baza/query_buffer.rb', line 91

def insert_with_multi(table, data, sort: false)
  data_key = ""

  if sort
    data = data.sort_by { |element| element[0].to_s }
    data = Hash[data]
  end

  data.each do |key, value|
    data_key << "#{key}---"
    @queries_size += value.is_a?(String) ? value.bytesize * 1.5 : 8
  end

  @inserts[table] ||= {}
  @inserts[table][data_key] ||= []
  @inserts[table][data_key] << data

  @queries_count += 1
  flush if @queries_count >= 1000 || @queries_size >= QUERIES_FLUSH_SIZE
end