Module: HBase::Operation::RowOperation

Included in:
Client
Defined in:
lib/hbase/operation/row_operation.rb

Instance Method Summary collapse

Instance Method Details

#create_row(table_name, name, timestamp = nil, *args) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/hbase/operation/row_operation.rb', line 17

def create_row(table_name, name, timestamp = nil, *args)
  request = Request::RowRequest.new(table_name, name, timestamp)
  data = []
  if args.instance_of? Array
    data = args
  elsif args.instance_of? Hash
    data = [args]
  else
    raise StandardError, "Only Array or Hash data accepted"
  end
  xml_data ="<?xml version='1.0' encoding='UTF-8'?><columns>"
  data.each do |d|
    xml_data << "<column><name>#{d[:name]}</name>"
    xml_data << "<value>#{[d[:value]].pack("m") rescue ''}</value></column>"
  end
  xml_data << "</columns>"

  Response::RowResponse.new(post(request.create, xml_data))
end

#delete_row(table_name, name, timestamp = nil, columns = nil) ⇒ Object



37
38
39
40
# File 'lib/hbase/operation/row_operation.rb', line 37

def delete_row(table_name, name, timestamp = nil, columns = nil)
  request = Request::RowRequest.new(table_name, name, timestamp)
  Response::RowResponse.new(delete(request.delete(columns)))
end

#row_timestamps(table_name, name) ⇒ Object

Raises:

  • (NotImplementedError)


4
5
6
# File 'lib/hbase/operation/row_operation.rb', line 4

def row_timestamps(table_name, name)
  raise NotImplementedError, "Currently not supported in native hbase client"
end

#show_row(table_name, name, timestamp = nil, columns = nil, version = nil) ⇒ Object



8
9
10
11
12
13
14
15
# File 'lib/hbase/operation/row_operation.rb', line 8

def show_row(table_name, name, timestamp = nil, columns = nil, version = nil)
  request = Request::RowRequest.new(table_name, name, timestamp)
  row = Response::RowResponse.new(get(request.show(columns, version))).parse
  row.table_name = table_name
  row.name = name
  row.timestamp = timestamp
  row
end