Ifcode==STRUCT, thenstruct_typeprovides type information for the struct's fields.
↳ type_annotation
int
TheTypeAnnotationCodethat disambiguates SQL type that Spanner will use to represent values of this type during query processing. This is necessary for some type codes because a singleTypeCodecan be mapped to different SQL types depending on the SQL dialect.type_annotationtypically is not needed to process the content of a value (it doesn't affect serialization) and clients can ignore it on the read path.
↳ proto_type_fqn
string
Ifcode==PROTOorcode==ENUM, thenproto_type_fqnis the fully qualified name of the proto type representing the proto/enum definition.
TheTypeAnnotationCodethat
disambiguates SQL type that Spanner will use to represent values of this
type during query processing. This is necessary for some type codes because
a singleTypeCodecan be mapped to different
SQL types depending on the SQL dialect.
type_annotationtypically is not
needed to process the content of a value (it doesn't affect serialization)
and clients can ignore it on the read path.
Returns
Type
Description
int
setTypeAnnotation
TheTypeAnnotationCodethat
disambiguates SQL type that Spanner will use to represent values of this
type during query processing. This is necessary for some type codes because
a singleTypeCodecan be mapped to different
SQL types depending on the SQL dialect.
type_annotationtypically is not
needed to process the content of a value (it doesn't affect serialization)
and clients can ignore it on the read path.
Parameter
Name
Description
var
int
Returns
Type
Description
$this
getProtoTypeFqn
Ifcode==PROTOorcode==ENUM, thenproto_type_fqnis the fully
qualified name of the proto type representing the proto/enum definition.
Returns
Type
Description
string
setProtoTypeFqn
Ifcode==PROTOorcode==ENUM, thenproto_type_fqnis the fully
qualified name of the proto type representing the proto/enum definition.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# Cloud Spanner V1 Client - Class Type (1.104.0)\n\nVersion latestkeyboard_arrow_down\n\n- [1.104.0 (latest)](/php/docs/reference/cloud-spanner/latest/V1.Type)\n- [1.103.0](/php/docs/reference/cloud-spanner/1.103.0/V1.Type)\n- [1.102.0](/php/docs/reference/cloud-spanner/1.102.0/V1.Type)\n- [1.101.0](/php/docs/reference/cloud-spanner/1.101.0/V1.Type)\n- [1.100.0](/php/docs/reference/cloud-spanner/1.100.0/V1.Type)\n- [1.98.0](/php/docs/reference/cloud-spanner/1.98.0/V1.Type)\n- [1.97.0](/php/docs/reference/cloud-spanner/1.97.0/V1.Type)\n- [1.96.0](/php/docs/reference/cloud-spanner/1.96.0/V1.Type)\n- [1.95.0](/php/docs/reference/cloud-spanner/1.95.0/V1.Type)\n- [1.94.0](/php/docs/reference/cloud-spanner/1.94.0/V1.Type)\n- [1.93.1](/php/docs/reference/cloud-spanner/1.93.1/V1.Type)\n- [1.92.1](/php/docs/reference/cloud-spanner/1.92.1/V1.Type)\n- [1.91.0](/php/docs/reference/cloud-spanner/1.91.0/V1.Type)\n- [1.90.0](/php/docs/reference/cloud-spanner/1.90.0/V1.Type)\n- [1.89.0](/php/docs/reference/cloud-spanner/1.89.0/V1.Type)\n- [1.88.0](/php/docs/reference/cloud-spanner/1.88.0/V1.Type)\n- [1.87.0](/php/docs/reference/cloud-spanner/1.87.0/V1.Type)\n- [1.86.0](/php/docs/reference/cloud-spanner/1.86.0/V1.Type)\n- [1.85.0](/php/docs/reference/cloud-spanner/1.85.0/V1.Type)\n- [1.84.0](/php/docs/reference/cloud-spanner/1.84.0/V1.Type)\n- [1.83.0](/php/docs/reference/cloud-spanner/1.83.0/V1.Type)\n- [1.82.0](/php/docs/reference/cloud-spanner/1.82.0/V1.Type)\n- [1.81.0](/php/docs/reference/cloud-spanner/1.81.0/V1.Type)\n- [1.80.0](/php/docs/reference/cloud-spanner/1.80.0/V1.Type)\n- [1.79.0](/php/docs/reference/cloud-spanner/1.79.0/V1.Type)\n- [1.78.0](/php/docs/reference/cloud-spanner/1.78.0/V1.Type)\n- [1.77.0](/php/docs/reference/cloud-spanner/1.77.0/V1.Type)\n- [1.76.1](/php/docs/reference/cloud-spanner/1.76.1/V1.Type)\n- [1.68.0](/php/docs/reference/cloud-spanner/1.68.0/V1.Type)\n- [1.67.0](/php/docs/reference/cloud-spanner/1.67.0/V1.Type)\n- [1.66.0](/php/docs/reference/cloud-spanner/1.66.0/V1.Type)\n- [1.65.0](/php/docs/reference/cloud-spanner/1.65.0/V1.Type)\n- [1.64.0](/php/docs/reference/cloud-spanner/1.64.0/V1.Type)\n- [1.63.2](/php/docs/reference/cloud-spanner/1.63.2/V1.Type)\n- [1.62.1](/php/docs/reference/cloud-spanner/1.62.1/V1.Type)\n- [1.61.0](/php/docs/reference/cloud-spanner/1.61.0/V1.Type)\n- [1.60.0](/php/docs/reference/cloud-spanner/1.60.0/V1.Type)\n- [1.59.0](/php/docs/reference/cloud-spanner/1.59.0/V1.Type)\n- [1.58.4](/php/docs/reference/cloud-spanner/1.58.4/V1.Type)\n- [1.57.0](/php/docs/reference/cloud-spanner/1.57.0/V1.Type)\n- [1.56.0](/php/docs/reference/cloud-spanner/1.56.0/V1.Type)\n- [1.55.0](/php/docs/reference/cloud-spanner/1.55.0/V1.Type)\n- [1.54.2](/php/docs/reference/cloud-spanner/1.54.2/V1.Type) \nReference documentation and code samples for the Cloud Spanner V1 Client class Type.\n\n`Type` indicates the type of a Cloud Spanner value, as might be stored in a\ntable cell or returned from an SQL query.\n\nGenerated from protobuf message `google.spanner.v1.Type`\n\nNamespace\n---------\n\nGoogle \\\\ Cloud \\\\ Spanner \\\\ V1\n\nMethods\n-------\n\n### __construct\n\nConstructor.\n\n### getCode\n\nRequired. The [TypeCode](/php/docs/reference/cloud-spanner/latest/V1.TypeCode) for this type.\n\n### setCode\n\nRequired. The [TypeCode](/php/docs/reference/cloud-spanner/latest/V1.TypeCode) for this type.\n\n### getArrayElementType\n\nIf [code](/php/docs/reference/cloud-spanner/latest/V1.Type#_Google_Cloud_Spanner_V1_Type__getCode__) ==\nARRAY, then `array_element_type` is the\ntype of the array elements.\n\n### hasArrayElementType\n\n### clearArrayElementType\n\n### setArrayElementType\n\nIf [code](/php/docs/reference/cloud-spanner/latest/V1.Type#_Google_Cloud_Spanner_V1_Type__getCode__) ==\nARRAY, then `array_element_type` is the\ntype of the array elements.\n\n### getStructType\n\nIf [code](/php/docs/reference/cloud-spanner/latest/V1.Type#_Google_Cloud_Spanner_V1_Type__getCode__) ==\n[STRUCT](/php/docs/reference/cloud-spanner/latest/V1.TypeCode#_Google_Cloud_Spanner_V1_TypeCode__STRUCT), then `struct_type` provides\ntype information for the struct's fields.\n\n### hasStructType\n\n### clearStructType\n\n### setStructType\n\nIf [code](/php/docs/reference/cloud-spanner/latest/V1.Type#_Google_Cloud_Spanner_V1_Type__getCode__) ==\n[STRUCT](/php/docs/reference/cloud-spanner/latest/V1.TypeCode#_Google_Cloud_Spanner_V1_TypeCode__STRUCT), then `struct_type` provides\ntype information for the struct's fields.\n\n### getTypeAnnotation\n\nThe [TypeAnnotationCode](/php/docs/reference/cloud-spanner/latest/V1.TypeAnnotationCode) that\ndisambiguates SQL type that Spanner will use to represent values of this\ntype during query processing. This is necessary for some type codes because\na single [TypeCode](/php/docs/reference/cloud-spanner/latest/V1.TypeCode) can be mapped to different\nSQL types depending on the SQL dialect.\n\n[type_annotation](/php/docs/reference/cloud-spanner/latest/V1.Type#_Google_Cloud_Spanner_V1_Type__getTypeAnnotation__) typically is not\nneeded to process the content of a value (it doesn't affect serialization)\nand clients can ignore it on the read path.\n\n### setTypeAnnotation\n\nThe [TypeAnnotationCode](/php/docs/reference/cloud-spanner/latest/V1.TypeAnnotationCode) that\ndisambiguates SQL type that Spanner will use to represent values of this\ntype during query processing. This is necessary for some type codes because\na single [TypeCode](/php/docs/reference/cloud-spanner/latest/V1.TypeCode) can be mapped to different\nSQL types depending on the SQL dialect.\n\n[type_annotation](/php/docs/reference/cloud-spanner/latest/V1.Type#_Google_Cloud_Spanner_V1_Type__getTypeAnnotation__) typically is not\nneeded to process the content of a value (it doesn't affect serialization)\nand clients can ignore it on the read path.\n\n### getProtoTypeFqn\n\nIf [code](/php/docs/reference/cloud-spanner/latest/V1.Type#_Google_Cloud_Spanner_V1_Type__getCode__) ==\n[PROTO](/php/docs/reference/cloud-spanner/latest/V1.TypeCode#_Google_Cloud_Spanner_V1_TypeCode__PROTO) or\n[code](/php/docs/reference/cloud-spanner/latest/V1.Type#_Google_Cloud_Spanner_V1_Type__getCode__) ==\n[ENUM](/php/docs/reference/cloud-spanner/latest/V1.TypeCode#_Google_Cloud_Spanner_V1_TypeCode__ENUM), then `proto_type_fqn` is the fully\nqualified name of the proto type representing the proto/enum definition.\n\n### setProtoTypeFqn\n\nIf [code](/php/docs/reference/cloud-spanner/latest/V1.Type#_Google_Cloud_Spanner_V1_Type__getCode__) ==\n[PROTO](/php/docs/reference/cloud-spanner/latest/V1.TypeCode#_Google_Cloud_Spanner_V1_TypeCode__PROTO) or\n[code](/php/docs/reference/cloud-spanner/latest/V1.Type#_Google_Cloud_Spanner_V1_Type__getCode__) ==\n[ENUM](/php/docs/reference/cloud-spanner/latest/V1.TypeCode#_Google_Cloud_Spanner_V1_TypeCode__ENUM), then `proto_type_fqn` is the fully\nqualified name of the proto type representing the proto/enum definition."]]