Class: Google::Cloud::Bigtable::RowRange

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

Overview

RowRange

Specifies a contiguous range of rows.

  • From key bound : The row key at which to begin the range. If neither field is set, interpreted as an empty string, inclusive.
  • End key bound: The row key at which to end the range. If neither field is set, interpreted as the infinite row key, 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 "user-001" to "user-005"
table.new_row_range.from("user-001").to("user-005", inclusive: true)

# Range that includes all row keys including "user-001" up to exclusive "user-010".
table.new_row_range.from("user-001").to("user-010")

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

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

# Range with unbounded from and the exclusive end "user-010"
table.new_row_range.to "user-010"

# Range that includes all row keys including from and end row keys "user-001", "user-010"
table.new_row_range.between "user-001", "user-010"

# Range that includes all row keys including "user-001" up until "user-010"
table.new_row_range.of "user-001", "user-010"

Instance Method Summary collapse

Instance Method Details

#between(from_key, to_key) ⇒ Google::Cloud::Bigtable::RowRange

Sets a row range with inclusive upper and lower bounds.

Examples:

require "google/cloud/bigtable"

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

range = table.new_row_range.between "key-001", "key-010"

Parameters:

  • from_key (String)

    Inclusive from row key. Required.

  • to_key (String)

    Inclusive end row key. Required.

Returns:



145
146
147
# File 'lib/google/cloud/bigtable/row_range.rb', line 145

def between from_key, to_key
  from(from_key).to(to_key, inclusive: true)
end

#from(key, inclusive: true) ⇒ Google::Cloud::Bigtable::RowRange

Sets a row range with a 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_row_range.from "key-001"

Exclusive lower bound.

require "google/cloud/bigtable"

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

range = table.new_row_range.from "key-001", inclusive: false

Parameters:

  • key (String)

    Row key. Required.

  • inclusive (String) (defaults to: true)

    Inclusive/exclusive lower bound. Default is an inclusive lower bound.

Returns:



87
88
89
90
91
92
93
94
# File 'lib/google/cloud/bigtable/row_range.rb', line 87

def from key, inclusive: true
  if inclusive
    @grpc.start_key_closed = key
  else
    @grpc.start_key_open = key
  end
  self
end

#of(from_key, to_key) ⇒ Google::Cloud::Bigtable::RowRange

Sets a row 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_row_range.of "key-001", "key-010"

Parameters:

  • from_key (String)

    Inclusive from row key.

  • to_key (String)

    Exclusive end row key.

Returns:



165
166
167
# File 'lib/google/cloud/bigtable/row_range.rb', line 165

def of from_key, to_key
  from(from_key).to(to_key)
end

#to(key, inclusive: false) ⇒ Google::Cloud::Bigtable::RowRange

Sets a row range with an 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_row_range.to "key-001", inclusive: true

Exclusive upper bound.

require "google/cloud/bigtable"

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

range = table.new_row_range.to "key-001"

Parameters:

  • key (String)

    Row key. Required.

  • inclusive (String) (defaults to: false)

    Inclusive/Exclusive upper bound. Default it is an exclusive upper bound.

Returns:



120
121
122
123
124
125
126
127
# File 'lib/google/cloud/bigtable/row_range.rb', line 120

def to key, inclusive: false
  if inclusive
    @grpc.end_key_closed = key
  else
    @grpc.end_key_open = key
  end
  self
end