internal void CommitToTables(IEnumerable <int> createdTables, IEnumerable <int> droppedTables)
        {
            // Add created tables to the committed tables list.
            foreach (int createdTable in createdTables)
            {
                // For all created tables, add to the visible list and remove from the
                // delete list in the state store.
                var t        = GetTableSource(createdTable);
                var resource = new TableStateStore.TableState(t.TableId, t.SourceName);
                StateStore.AddVisibleResource(resource);
                StateStore.RemoveDeleteResource(resource.SourceName);
            }

            // Remove dropped tables from the committed tables list.
            foreach (int droppedTable in droppedTables)
            {
                // For all dropped tables, add to the delete list and remove from the
                // visible list in the state store.
                var t        = GetTableSource(droppedTable);
                var resource = new TableStateStore.TableState(t.TableId, t.SourceName);
                StateStore.AddDeleteResource(resource);
                StateStore.RemoveVisibleResource(resource.SourceName);
            }

            try {
                StateStore.Flush();
            } catch (IOException e) {
                throw new InvalidOperationException("IO Error: " + e.Message, e);
            }
        }
        private void MarkUncommitted(int tableId)
        {
            var masterTable = GetTableSource(tableId);

            StateStore.AddDeleteResource(new TableStateStore.TableState(tableId, masterTable.SourceName));
        }