final case class KeyRange(startKeyType: StartKeyType = ..., endKeyType: EndKeyType = ..., unknownFields: UnknownFieldSet = ...) extends GeneratedMessage with Updatable[KeyRange] with Product with Serializable

KeyRange represents a range of rows in a table or index.

A range has a start key and an end key. These keys can be open or closed, indicating if the range includes rows with that key.

Keys are represented by lists, where the ith value in the list corresponds to the ith component of the table or index primary key. Individual values are encoded as described [here][google.spanner.v1.TypeCode].

For example, consider the following table definition:

CREATE TABLE UserEvents ( UserName STRING(MAX), EventDate STRING(10) ) PRIMARY KEY(UserName, EventDate);

The following keys name rows in this table:

["Bob", "2014-09-23"] ["Alfred", "2015-06-12"]

Since the UserEvents table's PRIMARY KEY clause names two columns, each UserEvents key has two elements; the first is the UserName, and the second is the EventDate.

Key ranges with multiple components are interpreted lexicographically by component using the table or index key's declared sort order. For example, the following range returns all events for user "Bob" that occurred in the year 2015:

"start_closed": ["Bob", "2015-01-01"] "end_closed": ["Bob", "2015-12-31"]

Start and end keys can omit trailing key components. This affects the inclusion and exclusion of rows that exactly match the provided key components: if the key is closed, then rows that exactly match the provided components are included; if the key is open, then rows that exactly match are not included.

For example, the following range includes all events for "Bob" that occurred during and after the year 2000:

"start_closed": ["Bob", "2000-01-01"] "end_closed": ["Bob"]

The next example retrieves all events for "Bob":

"start_closed": ["Bob"] "end_closed": ["Bob"]

To retrieve events before the year 2000:

"start_closed": ["Bob"] "end_open": ["Bob", "2000-01-01"]

The following range includes all rows in the table:

"start_closed": [] "end_closed": []

This range returns all users whose UserName begins with any character from A to C:

"start_closed": ["A"] "end_open": ["D"]

This range returns all users whose UserName begins with B:

"start_closed": ["B"] "end_open": ["C"]

Key ranges honor column sort order. For example, suppose a table is defined as follows:

CREATE TABLE DescendingSortedTable { Key INT64, ... ) PRIMARY KEY(Key DESC);

The following range retrieves all rows with key values between 1 and 100 inclusive:

"start_closed": ["100"] "end_closed": ["1"]

Note that 100 is passed as the start, and 1 is passed as the end, because Key is a descending column in the schema.

Annotations
@SerialVersionUID()
Linear Supertypes
Product, Equals, Updatable[KeyRange], GeneratedMessage, Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. KeyRange
  2. Product
  3. Equals
  4. Updatable
  5. GeneratedMessage
  6. Serializable
  7. Serializable
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new KeyRange(startKeyType: StartKeyType = ..., endKeyType: EndKeyType = ..., unknownFields: UnknownFieldSet = ...)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clearEndKeyType: KeyRange
  6. def clearStartKeyType: KeyRange
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  8. def companion: KeyRange.type
    Definition Classes
    KeyRange → GeneratedMessage
  9. def discardUnknownFields: KeyRange
  10. val endKeyType: EndKeyType
  11. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  13. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. def getEndClosed: ListValue
  15. def getEndOpen: ListValue
  16. def getField(__field: FieldDescriptor): PValue
    Definition Classes
    KeyRange → GeneratedMessage
  17. def getFieldByNumber(__fieldNumber: Int): Any
    Definition Classes
    KeyRange → GeneratedMessage
  18. def getStartClosed: ListValue
  19. def getStartOpen: ListValue
  20. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  21. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  22. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  23. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  24. def serializedSize: Int
    Definition Classes
    KeyRange → GeneratedMessage
  25. val startKeyType: StartKeyType
  26. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  27. final def toByteArray: Array[Byte]
    Definition Classes
    GeneratedMessage
  28. final def toByteString: ByteString
    Definition Classes
    GeneratedMessage
  29. final def toPMessage: PMessage
    Definition Classes
    GeneratedMessage
  30. def toProtoString: String
    Definition Classes
    KeyRange → GeneratedMessage
  31. val unknownFields: UnknownFieldSet
  32. def update(ms: (Lens[KeyRange, KeyRange]) ⇒ scalapb.lenses.Mutation[KeyRange]*): KeyRange
    Definition Classes
    Updatable
  33. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  35. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  36. def withEndClosed(__v: ListValue): KeyRange
  37. def withEndKeyType(__v: EndKeyType): KeyRange
  38. def withEndOpen(__v: ListValue): KeyRange
  39. def withStartClosed(__v: ListValue): KeyRange
  40. def withStartKeyType(__v: StartKeyType): KeyRange
  41. def withStartOpen(__v: ListValue): KeyRange
  42. def withUnknownFields(__v: UnknownFieldSet): KeyRange
  43. final def writeDelimitedTo(output: OutputStream): Unit
    Definition Classes
    GeneratedMessage
  44. def writeTo(_output__: CodedOutputStream): Unit
    Definition Classes
    KeyRange → GeneratedMessage
  45. final def writeTo(output: OutputStream): Unit
    Definition Classes
    GeneratedMessage

Inherited from Product

Inherited from Equals

Inherited from Updatable[KeyRange]

Inherited from GeneratedMessage

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped