public static void Serialize(ColumnInfo columnInfo, Stream stream) { Serialize(columnInfo, stream, Encoding.Unicode); }
protected virtual void Init(IEnumerable<ITable> tables) { var tablesArray = tables.ToArray(); referenceList = tablesArray; int colCount = ColumnCount; indexes = new ColumnIndex[colCount]; vtTableInfo = new TableInfo(new ObjectName("#VIRTUAL TABLE#")); // Generate look up tables for column_table and column_filter information columnTable = new int[colCount]; columnFilter = new int[colCount]; int index = 0; for (int i = 0; i < referenceList.Length; ++i) { var curTable = referenceList[i]; var curTableInfo = curTable.TableInfo; int refColCount = curTable.ColumnCount(); // For each column for (int n = 0; n < refColCount; ++n) { columnFilter[index] = n; columnTable[index] = i; ++index; // Add this column to the data table info of this table. var columnInfo = curTableInfo[n]; var newColumnInfo = new ColumnInfo(columnInfo.ColumnName, columnInfo.ColumnType) { DefaultExpression = columnInfo.DefaultExpression, IsNotNull = columnInfo.IsNotNull, IndexType = columnInfo.IndexType }; vtTableInfo.AddColumnSafe(newColumnInfo); } } vtTableInfo = vtTableInfo.AsReadOnly(); }
public static void Serialize(ColumnInfo columnInfo, Stream stream, Encoding encoding) { var writer = new BinaryWriter(stream, encoding); Serialize(columnInfo, writer); }
public static void Serialize(ColumnInfo columnInfo, BinaryWriter writer) { writer.Write(3); // Version writer.Write(columnInfo.ColumnName); TypeSerializer.SerializeTo(writer, columnInfo.ColumnType); writer.Write(columnInfo.IsNotNull ? (byte)1 : (byte)0); if (columnInfo.DefaultExpression != null) { writer.Write((byte)1); SqlExpression.Serialize(columnInfo.DefaultExpression, writer); } else { writer.Write((byte)0); } }
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; }
private void SetColumnMap(int[] mapping) { reverseColumnMap = new int[Parent.ColumnCount()]; for (int i = 0; i < reverseColumnMap.Length; ++i) { reverseColumnMap[i] = -1; } var parentInfo = Parent.TableInfo; subsetTableInfo = new TableInfo(parentInfo.TableName); for (int i = 0; i < mapping.Length; ++i) { int mapTo = mapping[i]; var origColumnInfo = Parent.TableInfo[mapTo]; var columnInfo = new ColumnInfo(aliases[i].Name, origColumnInfo.ColumnType) { DefaultExpression = origColumnInfo.DefaultExpression, IsNotNull = origColumnInfo.IsNotNull, IndexType = origColumnInfo.IndexType }; subsetTableInfo.AddColumnSafe(columnInfo); reverseColumnMap[mapTo] = i; } subsetTableInfo = subsetTableInfo.AsReadOnly(); }
internal QueryResultColumn(string name, ColumnInfo columnInfo) : this(name, columnInfo.ColumnType, columnInfo.IsNotNull) { }