Reference documentation and code samples for the Google Cloud Spanner v1 API enum TypeAnnotationCode.
TypeAnnotationCode is used as a part of [Type][google.spanner.v1.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.
PostgreSQL compatible JSONB type. This annotation needs to be applied to
[Type][google.spanner.v1.Type] instances having
[JSON][google.spanner.v1.TypeCode.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][google.spanner.v1.TypeCode.JSON]
when a client interacts with PostgreSQL-enabled Spanner databases.
PgNumeric
PostgreSQL compatible NUMERIC type. This annotation needs to be applied to
[Type][google.spanner.v1.Type] instances having
[NUMERIC][google.spanner.v1.TypeCode.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][google.spanner.v1.TypeCode.NUMERIC] when a client interacts with
PostgreSQL-enabled Spanner databases.
PgOid
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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe latest version of the Google Cloud Spanner v1 API is 5.0.0-beta05, with several previous versions also available, ranging from 3.5.0 to 5.0.0-beta04.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eTypeAnnotationCode\u003c/code\u003e is an enum used within the Google Cloud Spanner v1 API to clarify SQL types for Cloud Spanner values, especially for distinguishing between different SQL dialects.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eTypeAnnotationCode\u003c/code\u003e enum has fields including \u003ccode\u003ePgJsonb\u003c/code\u003e, \u003ccode\u003ePgNumeric\u003c/code\u003e, and \u003ccode\u003ePgOid\u003c/code\u003e, all being utilized for compatibility with PostgreSQL-enabled Spanner databases, and \u003ccode\u003eUnspecified\u003c/code\u003e for no specification.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003ePgJsonb\u003c/code\u003e, \u003ccode\u003ePgNumeric\u003c/code\u003e, and \u003ccode\u003ePgOid\u003c/code\u003e annotations are always necessary when a client interacts with PostgreSQL-enabled Spanner databases.\u003c/p\u003e\n"]]],[],null,["# Google Cloud Spanner v1 API - Enum TypeAnnotationCode (5.1.0)\n\nVersion latestkeyboard_arrow_down\n\n- [5.1.0 (latest)](/dotnet/docs/reference/Google.Cloud.Spanner.V1/latest/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [5.0.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/5.0.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [4.6.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/4.6.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [4.5.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/4.5.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [4.4.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/4.4.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [4.3.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/4.3.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [4.2.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/4.2.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [4.1.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/4.1.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [4.0.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/4.0.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [3.15.1](/dotnet/docs/reference/Google.Cloud.Spanner.V1/3.15.1/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [3.14.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/3.14.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [3.13.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/3.13.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [3.12.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/3.12.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [3.11.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/3.11.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [3.10.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/3.10.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [3.9.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/3.9.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [3.8.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/3.8.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [3.7.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/3.7.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [3.6.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/3.6.0/Google.Cloud.Spanner.V1.TypeAnnotationCode)\n- [3.5.0](/dotnet/docs/reference/Google.Cloud.Spanner.V1/3.5.0/Google.Cloud.Spanner.V1.TypeAnnotationCode) \n\n public enum TypeAnnotationCode\n\nReference documentation and code samples for the Google Cloud Spanner v1 API enum TypeAnnotationCode.\n\n`TypeAnnotationCode` is used as a part of \\[Type\\]\\[google.spanner.v1.Type\\] to\ndisambiguate SQL types that should be used for a given Cloud Spanner value.\nDisambiguation is needed because the same Cloud Spanner type can be mapped to\ndifferent SQL types depending on SQL dialect. TypeAnnotationCode doesn't\naffect the way value is serialized.\n\nNamespace\n---------\n\n[Google.Cloud.Spanner.V1](/dotnet/docs/reference/Google.Cloud.Spanner.V1/latest/Google.Cloud.Spanner.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.Spanner.V1.dll"]]