|
20 | 20 | * `Type` represents the type of data that is written to, read from, or stored in Bigtable. It is
|
21 | 21 | * heavily based on the GoogleSQL standard to help maintain familiarity and consistency across
|
22 | 22 | * products and features. For compatibility with Bigtable's existing untyped APIs, each `Type`
|
23 |
| - * includes an `Encoding` which describes how to convert to/from the underlying data. This might |
24 |
| - * involve composing a series of steps into an "encoding chain," for example to convert from INT64 |
25 |
| - * -> STRING -> raw bytes. In most cases, a "link" in the encoding chain will be based an on |
26 |
| - * existing GoogleSQL conversion function like `CAST`. Each link in the encoding chain also defines |
27 |
| - * the following properties: * Natural sort: Does the encoded value sort consistently with the |
28 |
| - * original typed value? Note that Bigtable will always sort data based on the raw encoded value, |
29 |
| - * *not* the decoded type. - Example: BYTES values sort in the same order as their raw encodings. - |
30 |
| - * Counterexample: Encoding INT64 to a fixed-width STRING does *not* preserve sort order when |
31 |
| - * dealing with negative numbers. INT64(1) > INT64(-1), but STRING("-00001") > STRING("00001). - The |
32 |
| - * overall encoding chain has this property if *every* link does. * Self-delimiting: If we |
33 |
| - * concatenate two encoded values, can we always tell where the first one ends and the second one |
34 |
| - * begins? - Example: If we encode INT64s to fixed-width STRINGs, the first value will always |
35 |
| - * contain exactly N digits, possibly preceded by a sign. - Counterexample: If we concatenate two |
36 |
| - * UTF-8 encoded STRINGs, we have no way to tell where the first one ends. - The overall encoding |
37 |
| - * chain has this property if *any* link does. * Compatibility: Which other systems have matching |
38 |
| - * encoding schemes? For example, does this encoding have a GoogleSQL equivalent? HBase? Java? |
| 23 | + * includes an `Encoding` which describes how to convert to/from the underlying data. Each encoding |
| 24 | + * also defines the following properties: * Order-preserving: Does the encoded value sort |
| 25 | + * consistently with the original typed value? Note that Bigtable will always sort data based on the |
| 26 | + * raw encoded value, *not* the decoded type. - Example: BYTES values sort in the same order as |
| 27 | + * their raw encodings. - Counterexample: Encoding INT64 as a fixed-width decimal string does *not* |
| 28 | + * preserve sort order when dealing with negative numbers. INT64(1) > INT64(-1), but |
| 29 | + * STRING("-00001") > STRING("00001). * Self-delimiting: If we concatenate two encoded values, can |
| 30 | + * we always tell where the first one ends and the second one begins? - Example: If we encode INT64s |
| 31 | + * to fixed-width STRINGs, the first value will always contain exactly N digits, possibly preceded |
| 32 | + * by a sign. - Counterexample: If we concatenate two UTF-8 encoded STRINGs, we have no way to tell |
| 33 | + * where the first one ends. * Compatibility: Which other systems have matching encoding schemes? |
| 34 | + * For example, does this encoding have a GoogleSQL equivalent? HBase? Java? |
39 | 35 | *
|
40 | 36 | * <p> This is the Java data model class that specifies how to parse/serialize into the JSON that is
|
41 | 37 | * transmitted over HTTP when working with the Cloud Bigtable Admin API. For a detailed explanation
|
|
0 commit comments