internal Database(DatabaseSystem system, IDatabaseContext context)
: base(system)
{
System = system;
Context = context;
Name = Context.DatabaseName();
DiscoverDataVersion();
TableComposite = new TableSourceComposite(this);
Context.RegisterInstance(this);
Context.RegisterInstance<ITableSourceComposite>(TableComposite);
Locker = new Locker(this);
Sessions = new ActiveSessionList(this);
Counters = new CounterRegistry();
Context.RouteImmediate<CounterEvent>(Count);
// Create the single row table
var t = new TemporaryTable(context, "SINGLE_ROW_TABLE", new ColumnInfo[0]);
t.NewRow();
SingleRowTable = t;
TransactionFactory = new DatabaseTransactionFactory(this);
}