//TODO: FastoreTable? This function is used internally to make sure tables exist
        //In the case of Fastore, this means reading the tableVar, deciding what the columns will look like, and creating them.
        protected FastoreTable EnsureFastoreTable(Schema.TableVar tableVar)
        {
            if (!tableVar.IsSessionObject && !tableVar.IsATObject)
            {
                tableVar.Scope = (Schema.TableVarScope)Enum.Parse(typeof(Schema.TableVarScope), MetaData.GetTag(tableVar.MetaData, "Storage.Scope", "Database"), false);
            }

            FastoreTables tables = GetTables(tableVar.Scope);

            lock (tables)
            {
                int index = tables.IndexOf(tableVar);
                if (index < 0)
                {
                    index = tables.Add(new FastoreTable(ServerProcess.ValueManager, tableVar, this.Device));
                }
                return(tables[index]);
            }
        }