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 |
arrayElementType
|
If |
structType
|
If |
typeAnnotation
|
The |
protoTypeFqn
|
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
.
TYPE_CODE_UNSPECIFIED
BOOL
true
or false
.INT64
string
, in decimal format.FLOAT64
number
, or the strings "NaN"
, "Infinity"
, or "-Infinity"
.FLOAT32
number
, or the strings "NaN"
, "Infinity"
, or "-Infinity"
.TIMESTAMP
Encoded as string
in RFC 3339 timestamp format. The time zone must be present, and must be "Z"
.
If the schema has the column option allow_commit_timestamp=true
, the placeholder string "spanner.commit_timestamp()"
can be used to instruct the system to insert the commit timestamp associated with the transaction commit.
DATE
string
in RFC 3339 date format.STRING
string
.BYTES
string
, as described in RFC 4648, section 4.ARRAY
STRUCT
NUMERIC
Encoded as string
, in decimal format or scientific notation format. Decimal format: [+-]Digits[.[Digits]]
or [+-][Digits].Digits
Scientific notation: [+-]Digits[.[Digits]][ExponentIndicator[+-]Digits]
or [+-][Digits].Digits[ExponentIndicator[+-]Digits]
(ExponentIndicator is "e"
or "E"
)
JSON
Encoded as a JSON-formatted string
as described in RFC 7159. The following rules are applied when parsing JSON input:
- Whitespace characters are not preserved.
- If a JSON object has duplicate keys, only the first key is preserved.
- Members of a JSON object are not guaranteed to have their order preserved.
- JSON array elements will have their order preserved.
PROTO
string
, as described in RFC 4648, section 4.ENUM
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. |
PG_OID
|
PostgreSQL compatible OID type. This annotation can be used by a client interacting with PostgreSQL-enabled Spanner database to specify that a value should be treated using the semantics of the OID type. |