Class: Google::Cloud::Bigtable::MutationEntry
- Inherits:
-
Object
- Object
- Google::Cloud::Bigtable::MutationEntry
- Defined in:
- lib/google/cloud/bigtable/mutation_entry.rb
Overview
MutationEntry
MutationEntry is a chainable structure, which holds data for diffrent type of mutations. MutationEntry is used in following data operations
- Mutate row. See Table#mutate_row
- Mutate rows. See Table#mutate_rows
- Check and mutate row using a predicate. see Table#check_and_mutate_row
Instance Attribute Summary collapse
-
#mutations ⇒ Array<Google::Bigtable::V2::Mutation>
mutations gRPC list.
-
#row_key ⇒ Object
Returns the value of attribute row_key.
Instance Method Summary collapse
-
#delete_cells(family, qualifier, timestamp_from: nil, timestamp_to: nil) ⇒ MutationEntry
Add DeleteFromColumn entry to list of mutations.
-
#delete_from_family(family) ⇒ MutationEntry
Add DeleteFromFamily to list of mutations.
-
#delete_from_row ⇒ MutationEntry
Add DeleteFromRow entry to list of mutations.
-
#initialize(row_key = nil) ⇒ MutationEntry
constructor
Creates a mutation entry instance.
-
#length ⇒ Integer
No of mutations.
-
#retryable? ⇒ Boolean
Mutation entry is retryable or not based on set_cell value.
-
#set_cell(family, qualifier, value, timestamp: nil) ⇒ MutationEntry
Add SetCell mutation to list of mutations.
Constructor Details
#initialize(row_key = nil) ⇒ MutationEntry
Creates a mutation entry instance.
64 65 66 67 68 |
# File 'lib/google/cloud/bigtable/mutation_entry.rb', line 64 def initialize row_key = nil @row_key = row_key @mutations = [] @retryable = true end |
Instance Attribute Details
#mutations ⇒ Array<Google::Bigtable::V2::Mutation>
mutations gRPC list
59 60 61 |
# File 'lib/google/cloud/bigtable/mutation_entry.rb', line 59 def mutations @mutations end |
#row_key ⇒ Object
Returns the value of attribute row_key
55 56 57 |
# File 'lib/google/cloud/bigtable/mutation_entry.rb', line 55 def row_key @row_key end |
Instance Method Details
#delete_cells(family, qualifier, timestamp_from: nil, timestamp_to: nil) ⇒ MutationEntry
Add DeleteFromColumn entry to list of mutations.
A Mutation which deletes cells from the specified column, optionally restricting the deletions to a given timestamp range.
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 |
# File 'lib/google/cloud/bigtable/mutation_entry.rb', line 157 def delete_cells \ family, qualifier, timestamp_from: nil, timestamp_to: nil grpc = Google::Bigtable::V2::Mutation::DeleteFromColumn.new( family_name: family, column_qualifier: qualifier ) if || time_range = Google::Bigtable::V2::TimestampRange.new time_range. = if time_range. = if grpc.time_range = time_range end @mutations << Google::Bigtable::V2::Mutation.new( delete_from_column: grpc ) self end |
#delete_from_family(family) ⇒ MutationEntry
Add DeleteFromFamily to list of mutations.
A Mutation which deletes all cells from the specified column family.
191 192 193 194 195 196 |
# File 'lib/google/cloud/bigtable/mutation_entry.rb', line 191 def delete_from_family family @mutations << Google::Bigtable::V2::Mutation.new( delete_from_family: { family_name: family } ) self end |
#delete_from_row ⇒ MutationEntry
Add DeleteFromRow entry to list of mutations
A Mutation which deletes all cells from the containing row.
208 209 210 211 |
# File 'lib/google/cloud/bigtable/mutation_entry.rb', line 208 def delete_from_row @mutations << Google::Bigtable::V2::Mutation.new(delete_from_row: {}) self end |
#length ⇒ Integer
No of mutations
225 226 227 |
# File 'lib/google/cloud/bigtable/mutation_entry.rb', line 225 def length @mutations.length end |
#retryable? ⇒ Boolean
Mutation entry is retryable or not based on set_cell value.
217 218 219 |
# File 'lib/google/cloud/bigtable/mutation_entry.rb', line 217 def retryable? @retryable end |
#set_cell(family, qualifier, value, timestamp: nil) ⇒ MutationEntry
Add SetCell mutation to list of mutations.
A Mutation which sets the value of the specified cell.
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/google/cloud/bigtable/mutation_entry.rb', line 103 def set_cell family, qualifier, value, timestamp: nil # If value is integer then covert it to sign 64 bit int big-endian. value = [value].pack("q>") if value.is_a?(Integer) = { family_name: family, column_qualifier: qualifier, value: value } if [:timestamp_micros] = @retryable = != -1 end @mutations << Google::Bigtable::V2::Mutation.new(set_cell: ) self end |