diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeCode.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeCode.java
index f3e13962f95..0af42e8582f 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeCode.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeCode.java
@@ -75,6 +75,17 @@ public enum TypeCode implements com.google.protobuf.ProtocolMessageEnum {
    * <code>FLOAT64 = 3;</code>
    */
   FLOAT64(3),
+  /**
+   *
+   *
+   * <pre>
+   * Encoded as `number`, or the strings `"NaN"`, `"Infinity"`, or
+   * `"-Infinity"`.
+   * </pre>
+   *
+   * <code>FLOAT32 = 15;</code>
+   */
+  FLOAT32(15),
   /**
    *
    *
@@ -246,6 +257,17 @@ public enum TypeCode implements com.google.protobuf.ProtocolMessageEnum {
    * <code>FLOAT64 = 3;</code>
    */
   public static final int FLOAT64_VALUE = 3;
+  /**
+   *
+   *
+   * <pre>
+   * Encoded as `number`, or the strings `"NaN"`, `"Infinity"`, or
+   * `"-Infinity"`.
+   * </pre>
+   *
+   * <code>FLOAT32 = 15;</code>
+   */
+  public static final int FLOAT32_VALUE = 15;
   /**
    *
    *
@@ -406,6 +428,8 @@ public static TypeCode forNumber(int value) {
         return INT64;
       case 3:
         return FLOAT64;
+      case 15:
+        return FLOAT32;
       case 4:
         return TIMESTAMP;
       case 5:
diff --git a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeProto.java b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeProto.java
index 7c7cd131dc1..fdd1c65338c 100644
--- a/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeProto.java
+++ b/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TypeProto.java
@@ -59,19 +59,19 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
           + "ype_fqn\030\005 \001(\t\"\177\n\nStructType\0223\n\006fields\030\001 "
           + "\003(\0132#.google.spanner.v1.StructType.Field"
           + "\032<\n\005Field\022\014\n\004name\030\001 \001(\t\022%\n\004type\030\002 \001(\0132\027."
-          + "google.spanner.v1.Type*\272\001\n\010TypeCode\022\031\n\025T"
+          + "google.spanner.v1.Type*\307\001\n\010TypeCode\022\031\n\025T"
           + "YPE_CODE_UNSPECIFIED\020\000\022\010\n\004BOOL\020\001\022\t\n\005INT6"
-          + "4\020\002\022\013\n\007FLOAT64\020\003\022\r\n\tTIMESTAMP\020\004\022\010\n\004DATE\020"
-          + "\005\022\n\n\006STRING\020\006\022\t\n\005BYTES\020\007\022\t\n\005ARRAY\020\010\022\n\n\006S"
-          + "TRUCT\020\t\022\013\n\007NUMERIC\020\n\022\010\n\004JSON\020\013\022\t\n\005PROTO\020"
-          + "\r\022\010\n\004ENUM\020\016*d\n\022TypeAnnotationCode\022$\n TYP"
-          + "E_ANNOTATION_CODE_UNSPECIFIED\020\000\022\016\n\nPG_NU"
-          + "MERIC\020\002\022\014\n\010PG_JSONB\020\003\022\n\n\006PG_OID\020\004B\254\001\n\025co"
-          + "m.google.spanner.v1B\tTypeProtoP\001Z5cloud."
-          + "google.com/go/spanner/apiv1/spannerpb;sp"
-          + "annerpb\252\002\027Google.Cloud.Spanner.V1\312\002\027Goog"
-          + "le\\Cloud\\Spanner\\V1\352\002\032Google::Cloud::Spa"
-          + "nner::V1b\006proto3"
+          + "4\020\002\022\013\n\007FLOAT64\020\003\022\013\n\007FLOAT32\020\017\022\r\n\tTIMESTA"
+          + "MP\020\004\022\010\n\004DATE\020\005\022\n\n\006STRING\020\006\022\t\n\005BYTES\020\007\022\t\n"
+          + "\005ARRAY\020\010\022\n\n\006STRUCT\020\t\022\013\n\007NUMERIC\020\n\022\010\n\004JSO"
+          + "N\020\013\022\t\n\005PROTO\020\r\022\010\n\004ENUM\020\016*d\n\022TypeAnnotati"
+          + "onCode\022$\n TYPE_ANNOTATION_CODE_UNSPECIFI"
+          + "ED\020\000\022\016\n\nPG_NUMERIC\020\002\022\014\n\010PG_JSONB\020\003\022\n\n\006PG"
+          + "_OID\020\004B\254\001\n\025com.google.spanner.v1B\tTypePr"
+          + "otoP\001Z5cloud.google.com/go/spanner/apiv1"
+          + "/spannerpb;spannerpb\252\002\027Google.Cloud.Span"
+          + "ner.V1\312\002\027Google\\Cloud\\Spanner\\V1\352\002\032Googl"
+          + "e::Cloud::Spanner::V1b\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/type.proto b/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/type.proto
index abd0c768176..8e28fa7fd63 100644
--- a/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/type.proto
+++ b/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/type.proto
@@ -103,6 +103,10 @@ enum TypeCode {
   // `"-Infinity"`.
   FLOAT64 = 3;
 
+  // Encoded as `number`, or the strings `"NaN"`, `"Infinity"`, or
+  // `"-Infinity"`.
+  FLOAT32 = 15;
+
   // Encoded as `string` in RFC 3339 timestamp format. The time zone
   // must be present, and must be `"Z"`.
   //