// Code generated by ./cmd/ch-gen-col, DO NOT EDIT.

package proto

func inferGenerated(t ColumnType) Column {
	switch t {
	case ColumnTypeArray.Sub(ColumnTypeFloat32):
		return new(ColFloat32).Array()
	case ColumnTypeNullable.Sub(ColumnTypeFloat32):
		return new(ColFloat32).Nullable()
	case ColumnTypeFloat32:
		return new(ColFloat32)
	case ColumnTypeArray.Sub(ColumnTypeFloat64):
		return new(ColFloat64).Array()
	case ColumnTypeNullable.Sub(ColumnTypeFloat64):
		return new(ColFloat64).Nullable()
	case ColumnTypeFloat64:
		return new(ColFloat64)
	case ColumnTypeArray.Sub(ColumnTypeIPv4):
		return new(ColIPv4).Array()
	case ColumnTypeNullable.Sub(ColumnTypeIPv4):
		return new(ColIPv4).Nullable()
	case ColumnTypeIPv4:
		return new(ColIPv4)
	case ColumnTypeArray.Sub(ColumnTypeIPv6):
		return new(ColIPv6).Array()
	case ColumnTypeNullable.Sub(ColumnTypeIPv6):
		return new(ColIPv6).Nullable()
	case ColumnTypeIPv6:
		return new(ColIPv6)
	case ColumnTypeArray.Sub(ColumnTypeDate):
		return new(ColDate).Array()
	case ColumnTypeNullable.Sub(ColumnTypeDate):
		return new(ColDate).Nullable()
	case ColumnTypeDate:
		return new(ColDate)
	case ColumnTypeArray.Sub(ColumnTypeDate32):
		return new(ColDate32).Array()
	case ColumnTypeNullable.Sub(ColumnTypeDate32):
		return new(ColDate32).Nullable()
	case ColumnTypeDate32:
		return new(ColDate32)
	case ColumnTypeArray.Sub(ColumnTypeInt8):
		return new(ColInt8).Array()
	case ColumnTypeNullable.Sub(ColumnTypeInt8):
		return new(ColInt8).Nullable()
	case ColumnTypeInt8:
		return new(ColInt8)
	case ColumnTypeArray.Sub(ColumnTypeUInt8):
		return new(ColUInt8).Array()
	case ColumnTypeNullable.Sub(ColumnTypeUInt8):
		return new(ColUInt8).Nullable()
	case ColumnTypeUInt8:
		return new(ColUInt8)
	case ColumnTypeArray.Sub(ColumnTypeInt16):
		return new(ColInt16).Array()
	case ColumnTypeNullable.Sub(ColumnTypeInt16):
		return new(ColInt16).Nullable()
	case ColumnTypeInt16:
		return new(ColInt16)
	case ColumnTypeArray.Sub(ColumnTypeUInt16):
		return new(ColUInt16).Array()
	case ColumnTypeNullable.Sub(ColumnTypeUInt16):
		return new(ColUInt16).Nullable()
	case ColumnTypeUInt16:
		return new(ColUInt16)
	case ColumnTypeArray.Sub(ColumnTypeInt32):
		return new(ColInt32).Array()
	case ColumnTypeNullable.Sub(ColumnTypeInt32):
		return new(ColInt32).Nullable()
	case ColumnTypeInt32:
		return new(ColInt32)
	case ColumnTypeArray.Sub(ColumnTypeUInt32):
		return new(ColUInt32).Array()
	case ColumnTypeNullable.Sub(ColumnTypeUInt32):
		return new(ColUInt32).Nullable()
	case ColumnTypeUInt32:
		return new(ColUInt32)
	case ColumnTypeArray.Sub(ColumnTypeInt64):
		return new(ColInt64).Array()
	case ColumnTypeNullable.Sub(ColumnTypeInt64):
		return new(ColInt64).Nullable()
	case ColumnTypeInt64:
		return new(ColInt64)
	case ColumnTypeArray.Sub(ColumnTypeUInt64):
		return new(ColUInt64).Array()
	case ColumnTypeNullable.Sub(ColumnTypeUInt64):
		return new(ColUInt64).Nullable()
	case ColumnTypeUInt64:
		return new(ColUInt64)
	case ColumnTypeArray.Sub(ColumnTypeInt128):
		return new(ColInt128).Array()
	case ColumnTypeNullable.Sub(ColumnTypeInt128):
		return new(ColInt128).Nullable()
	case ColumnTypeInt128:
		return new(ColInt128)
	case ColumnTypeArray.Sub(ColumnTypeUInt128):
		return new(ColUInt128).Array()
	case ColumnTypeNullable.Sub(ColumnTypeUInt128):
		return new(ColUInt128).Nullable()
	case ColumnTypeUInt128:
		return new(ColUInt128)
	case ColumnTypeArray.Sub(ColumnTypeInt256):
		return new(ColInt256).Array()
	case ColumnTypeNullable.Sub(ColumnTypeInt256):
		return new(ColInt256).Nullable()
	case ColumnTypeInt256:
		return new(ColInt256)
	case ColumnTypeArray.Sub(ColumnTypeUInt256):
		return new(ColUInt256).Array()
	case ColumnTypeNullable.Sub(ColumnTypeUInt256):
		return new(ColUInt256).Nullable()
	case ColumnTypeUInt256:
		return new(ColUInt256)
	case ColumnTypeArray.Sub(ColumnTypeFixedString.With("8")):
		return new(ColFixedStr8).Array()
	case ColumnTypeNullable.Sub(ColumnTypeFixedString.With("8")):
		return new(ColFixedStr8).Nullable()
	case ColumnTypeFixedString.With("8"):
		return new(ColFixedStr8)
	case ColumnTypeArray.Sub(ColumnTypeFixedString.With("16")):
		return new(ColFixedStr16).Array()
	case ColumnTypeNullable.Sub(ColumnTypeFixedString.With("16")):
		return new(ColFixedStr16).Nullable()
	case ColumnTypeFixedString.With("16"):
		return new(ColFixedStr16)
	case ColumnTypeArray.Sub(ColumnTypeFixedString.With("32")):
		return new(ColFixedStr32).Array()
	case ColumnTypeNullable.Sub(ColumnTypeFixedString.With("32")):
		return new(ColFixedStr32).Nullable()
	case ColumnTypeFixedString.With("32"):
		return new(ColFixedStr32)
	case ColumnTypeArray.Sub(ColumnTypeFixedString.With("64")):
		return new(ColFixedStr64).Array()
	case ColumnTypeNullable.Sub(ColumnTypeFixedString.With("64")):
		return new(ColFixedStr64).Nullable()
	case ColumnTypeFixedString.With("64"):
		return new(ColFixedStr64)
	case ColumnTypeArray.Sub(ColumnTypeFixedString.With("128")):
		return new(ColFixedStr128).Array()
	case ColumnTypeNullable.Sub(ColumnTypeFixedString.With("128")):
		return new(ColFixedStr128).Nullable()
	case ColumnTypeFixedString.With("128"):
		return new(ColFixedStr128)
	case ColumnTypeArray.Sub(ColumnTypeFixedString.With("256")):
		return new(ColFixedStr256).Array()
	case ColumnTypeNullable.Sub(ColumnTypeFixedString.With("256")):
		return new(ColFixedStr256).Nullable()
	case ColumnTypeFixedString.With("256"):
		return new(ColFixedStr256)
	case ColumnTypeArray.Sub(ColumnTypeFixedString.With("512")):
		return new(ColFixedStr512).Array()
	case ColumnTypeNullable.Sub(ColumnTypeFixedString.With("512")):
		return new(ColFixedStr512).Nullable()
	case ColumnTypeFixedString.With("512"):
		return new(ColFixedStr512)
	default:
		return nil
	}
}
