public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;

            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                    break;

                case 10: {
                    Name = input.ReadString();
                    break;
                }

                case 18: {
                    if (expireTime_ == null)
                    {
                        ExpireTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
                    }
                    input.ReadMessage(ExpireTime);
                    break;
                }

                case 24: {
                    DataFormat = (global::Google.Cloud.BigQuery.Storage.V1.DataFormat)input.ReadEnum();
                    break;
                }

                case 34: {
                    global::Google.Cloud.BigQuery.Storage.V1.AvroSchema subBuilder = new global::Google.Cloud.BigQuery.Storage.V1.AvroSchema();
                    if (schemaCase_ == SchemaOneofCase.AvroSchema)
                    {
                        subBuilder.MergeFrom(AvroSchema);
                    }
                    input.ReadMessage(subBuilder);
                    AvroSchema = subBuilder;
                    break;
                }

                case 42: {
                    global::Google.Cloud.BigQuery.Storage.V1.ArrowSchema subBuilder = new global::Google.Cloud.BigQuery.Storage.V1.ArrowSchema();
                    if (schemaCase_ == SchemaOneofCase.ArrowSchema)
                    {
                        subBuilder.MergeFrom(ArrowSchema);
                    }
                    input.ReadMessage(subBuilder);
                    ArrowSchema = subBuilder;
                    break;
                }

                case 50: {
                    Table = input.ReadString();
                    break;
                }

                case 58: {
                    if (tableModifiers_ == null)
                    {
                        TableModifiers = new global::Google.Cloud.BigQuery.Storage.V1.ReadSession.Types.TableModifiers();
                    }
                    input.ReadMessage(TableModifiers);
                    break;
                }

                case 66: {
                    if (readOptions_ == null)
                    {
                        ReadOptions = new global::Google.Cloud.BigQuery.Storage.V1.ReadSession.Types.TableReadOptions();
                    }
                    input.ReadMessage(ReadOptions);
                    break;
                }

                case 82: {
                    streams_.AddEntriesFrom(input, _repeated_streams_codec);
                    break;
                }
                }
            }
        }
        public void MergeFrom(ReadSession other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Name.Length != 0)
            {
                Name = other.Name;
            }
            if (other.expireTime_ != null)
            {
                if (expireTime_ == null)
                {
                    ExpireTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
                }
                ExpireTime.MergeFrom(other.ExpireTime);
            }
            if (other.DataFormat != 0)
            {
                DataFormat = other.DataFormat;
            }
            if (other.Table.Length != 0)
            {
                Table = other.Table;
            }
            if (other.tableModifiers_ != null)
            {
                if (tableModifiers_ == null)
                {
                    TableModifiers = new global::Google.Cloud.BigQuery.Storage.V1.ReadSession.Types.TableModifiers();
                }
                TableModifiers.MergeFrom(other.TableModifiers);
            }
            if (other.readOptions_ != null)
            {
                if (readOptions_ == null)
                {
                    ReadOptions = new global::Google.Cloud.BigQuery.Storage.V1.ReadSession.Types.TableReadOptions();
                }
                ReadOptions.MergeFrom(other.ReadOptions);
            }
            streams_.Add(other.streams_);
            switch (other.SchemaCase)
            {
            case SchemaOneofCase.AvroSchema:
                if (AvroSchema == null)
                {
                    AvroSchema = new global::Google.Cloud.BigQuery.Storage.V1.AvroSchema();
                }
                AvroSchema.MergeFrom(other.AvroSchema);
                break;

            case SchemaOneofCase.ArrowSchema:
                if (ArrowSchema == null)
                {
                    ArrowSchema = new global::Google.Cloud.BigQuery.Storage.V1.ArrowSchema();
                }
                ArrowSchema.MergeFrom(other.ArrowSchema);
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }