Type
indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query.
JSON representation |
---|
{ "code": enum ( |
Fields | |
---|---|
code |
Required. The |
array |
If |
struct |
If |
type |
The |
proto |
If |
TypeCode
TypeCode
is used as part of Type
to indicate the type of a Cloud Spanner value.
Each legal value of a type can be encoded to or decoded from a JSON value, using the encodings described below. All Cloud Spanner values can be null
, regardless of type; null
s are always encoded as a JSON null
.
Enums | |
---|---|
TYPE_CODE_UNSPECIFIED |
Not specified. |
BOOL |
Encoded as JSON true or false . |
INT64 |
Encoded as string , in decimal format. |
FLOAT64 |
Encoded as number , or the strings "NaN" , "Infinity" , or "-Infinity" . |
FLOAT32 |
Encoded as number , or the strings "NaN" , "Infinity" , or "-Infinity" . |
TIMESTAMP |
Encoded as If the schema has the column option |
DATE |
Encoded as string in RFC 3339 date format. |
STRING |
Encoded as string . |
BYTES |
Encoded as a base64-encoded string , as described in RFC 4648, section 4. |
ARRAY |
Encoded as list , where the list elements are represented according to arrayElementType . |
STRUCT |
Encoded as list , where list element i is represented according to structType.fields[i] . |
NUMERIC |
Encoded as Scientific notation: |
JSON |
Encoded as a JSON-formatted
|
PROTO |
Encoded as a base64-encoded string , as described in RFC 4648, section 4. |
ENUM |
Encoded as string , in decimal format. |
TypeAnnotationCode
TypeAnnotationCode
is used as a part of Type
to disambiguate SQL types that should be used for a given Cloud Spanner value. Disambiguation is needed because the same Cloud Spanner type can be mapped to different SQL types depending on SQL dialect. TypeAnnotationCode doesn't affect the way value is serialized.
Enums | |
---|---|
TYPE_ANNOTATION_CODE_UNSPECIFIED |
Not specified. |
PG_NUMERIC |
PostgreSQL compatible NUMERIC type. This annotation needs to be applied to Type instances having NUMERIC type code to specify that values of this type should be treated as PostgreSQL NUMERIC values. Currently this annotation is always needed for NUMERIC when a client interacts with PostgreSQL-enabled Spanner databases. |
PG_JSONB |
PostgreSQL compatible JSONB type. This annotation needs to be applied to Type instances having JSON type code to specify that values of this type should be treated as PostgreSQL JSONB values. Currently this annotation is always needed for JSON when a client interacts with PostgreSQL-enabled Spanner databases. |