def get_columns_raw(table_name, row, columns, options={})
result = {}
log "SELECT (#{columns.join(", ")}) FROM #{table_name} WHERE ROW=#{row};" do
prefix_mode = false
prefixes = []
columns.each do |name|
prefix, name = name.split(":")
prefixes << prefix+":" unless prefixes.include?(prefix+":")
prefix_mode = name.blank?
end
if prefix_mode
prefixes.sort!
values = @connection.get(table_name, row, {:start => prefixes.first, :finish => prefixes.last + "~"})
result["id"] = row if values && values.size > 0
values.each do |key,value|
result[key] = value unless value.blank?
end
else
values = @connection.get_columns(table_name, row, columns)
result["id"] = row if values && values.compact.size > 0
columns.each_index do |id|
result[columns[id].to_s] = values[id] unless values[id].blank?
end
end
end
result
end