/// <summary>
        /// Creates the partial data of all rows that have been <see cref="Add"/>'d so far.
        /// If a partial table can't be created, <see cref="CreateFullData"/> is automatically
        /// called instead. If this method isn't explicitly called, it will be implicitly called
        /// later when the partial data must be written. The table will be set to read-only.
        /// </summary>
        public void CreatePartialData()
        {
            mdTable.SetReadOnly();
            if (!CanWritePartialTable)
            {
                CreateFullData();
                return;
            }
            InitializePartialData();
            var memStream = new MemoryStream(mdTable.TableInfo.RowSize);
            var writer    = new BinaryWriter(memStream);

            foreach (var rid in rids)
            {
                memStream.Position = 0;
                var row = mdTable.Get(rid);
                writer.Write(mdTable, row);
                partialData[rid] = memStream.ToArray();
            }
        }