public static ColumnInfo Deserialize(BinaryReader reader, ITypeResolver typeResolver)
{
var version = reader.ReadInt32();
if (version != 3)
throw new FormatException("Invalid version of the Column-Info");
var columnName = reader.ReadString();
var columnType = TypeSerializer.Deserialize(reader, typeResolver);
var notNull = reader.ReadByte() == 1;
var columnInfo = new ColumnInfo(columnName, columnType);
columnInfo.IsNotNull = notNull;
var hasDefault = reader.ReadByte() == 1;
if (hasDefault)
columnInfo.DefaultExpression = SqlExpression.Deserialize(reader);
return columnInfo;
}