Class: Google::Cloud::Bigtable::ValueRange

Inherits:
Object
  • Object
show all
Defined in:
lib/google/cloud/bigtable/value_range.rb

Overview

ValueRange

Specifies a contiguous range of string values.

  • from value bound : The value at which to begin the range. If neither field is set, interpreted as an empty string, inclusive.
  • End value bound: The value at which to end the range. If neither field is set, interpreted as an infinite string value, exclusive.

Examples:

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

# Range that includes all row keys including "value-001" to "value-005" excluding.
table.new_value_range.from("value-001").to("value-005")

# Range that includes all row keys including "value-001" up to inclusive "value-010".
table.new_value_range.from("value-001").to("value-010", inclusive: true)

# Range that includes all row keys including "value-001" up until end of the row keys.
table.new_value_range.from "value-001"

# Range that includes all row keys exclusive "value-001" up until end of the row keys.
table.new_value_range.from "value-001", inclusive: false

# Range with unbounded from and the exclusive end "value-100".
table.new_value_range.to "value-100"

# Range that includes all row keys including from and end row keys "value-001", "value-100".
table.new_value_range.between "value-001", "value-100"

# Range that includes all row keys including "value-001" up until "value-100".
table.new_value_range.of "value-001", "value-100"

Instance Method Summary collapse

Instance Method Details

#between(from_value, to_value) ⇒ Google::Cloud::Bigtable::ValueRange

Sets the value range with inclusive lower and upper bounds.

Examples:

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

range = table.new_value_range.between "value-001", "value-010"

Parameters:

  • from_value (String, Integer)

    Inclusive from value. Required. If the argument is an Integer, it will be encoded as a 64-bit signed big-endian integer.

  • to_value (String, Integer)

    Inclusive to value. Required. If the argument is an Integer, it will be encoded as a 64-bit signed big-endian integer.

Returns:



161
162
163
# File 'lib/google/cloud/bigtable/value_range.rb', line 161

def between from_value, to_value
  from(from_value).to(to_value, inclusive: true)
end

#from(value, inclusive: true) ⇒ Google::Cloud::Bigtable::ValueRange

Sets the row range with the lower bound.

Examples:

Inclusive lower bound.

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

range = table.new_value_range.from "value-001"

Exclusive lower bound.

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

range = table.new_value_range.from "value-001", inclusive: false

Parameters:

  • value (String, Integer)

    The value. Required. If the argument is an Integer, it will be encoded as a 64-bit signed big-endian integer.

  • inclusive (Boolean) (defaults to: true)

    Whether the value is an inclusive or exclusive lower bound. Default is true, an inclusive lower bound.

Returns:



93
94
95
96
97
98
99
100
101
102
# File 'lib/google/cloud/bigtable/value_range.rb', line 93

def from value, inclusive: true
  # If value is integer, covert it to a 64-bit signed big-endian integer.
  value = Convert.integer_to_signed_be_64 value
  if inclusive
    @grpc.start_value_closed = value
  else
    @grpc.start_value_open = value
  end
  self
end

#of(from_value, to_value) ⇒ Google::Cloud::Bigtable::ValueRange

Set value range with an inclusive lower bound and an exclusive upper bound.

Examples:

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

range = table.new_value_range.of "value-001", "value-010"

Parameters:

  • from_value (String, Integer)

    Inclusive from value. Required. If the argument is an Integer, it will be encoded as a 64-bit signed big-endian integer.

  • to_value (String, Integer)

    Exclusive to value. Required. If the argument is an Integer, it will be encoded as a 64-bit signed big-endian integer.

Returns:



185
186
187
# File 'lib/google/cloud/bigtable/value_range.rb', line 185

def of from_value, to_value
  from(from_value).to(to_value)
end

#to(value, inclusive: false) ⇒ Google::Cloud::Bigtable::ValueRange

Sets the value range with upper bound.

Examples:

Inclusive upper bound.

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

range = table.new_value_range.to "value-010", inclusive: true

Exclusive upper bound.

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

range = table.new_value_range.to "value-010"

Parameters:

  • value (String, Integer)

    value. Required. If the argument is an Integer, it will be encoded as a 64-bit signed big-endian integer.

  • inclusive (Boolean) (defaults to: false)

    Whether the value is an inclusive or exclusive lower bound. Default is false, an exclusive lower bound.

Returns:



130
131
132
133
134
135
136
137
138
139
# File 'lib/google/cloud/bigtable/value_range.rb', line 130

def to value, inclusive: false
  # If value is integer, covert it to a 64-bit signed big-endian integer.
  value = Convert.integer_to_signed_be_64 value
  if inclusive
    @grpc.end_value_closed = value
  else
    @grpc.end_value_open = value
  end
  self
end