Ejemplo n.º 1
0
        public Row LoadRow(Id tableName, DbPtr ptr)
        {
            using var tManager = new TableFileManager(new FileStream(GetTableFileName(tableName), FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 4096));
            var block = tManager.LoadDataBlock(ptr.FilePtrBlock);
            var row   = block.LoadRowRecord(ptr.InBlockPos, tManager.RowRecordSize);

            return(row.Fields);
        }
Ejemplo n.º 2
0
 public OperationResult <string> AddTable(Table table)
 {
     _ = table ?? throw new ArgumentNullException(nameof(table));
     if (File.Exists(GetTableFileName(table.TableMetaInf.Name)))
     {
         return(new OperationResult <string>(ExecutionState.failed, null, new TableNotExistError(FullTableName(table.TableMetaInf.Name))));
     }
     using var tManager = new TableFileManager(new FileStream(GetTableFileName(table.TableMetaInf.Name), FileMode.Create), table, _blockSize);
     return(new OperationResult <string>(ExecutionState.performed, ""));
 }
Ejemplo n.º 3
0
        public OperationResult <Table> LoadTable(Id tableName)
        {
            if (!File.Exists(GetTableFileName(tableName)))
            {
                return(new OperationResult <Table>(ExecutionState.failed, null, new TableNotExistError(FullTableName(tableName))));
            }
            Table table;

            using (var tManager = new TableFileManager(new FileStream(GetTableFileName(tableName), FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 4096)))
            {
                table           = tManager.LoadTable();
                table.TableData = new DataStorageRowsInFiles(GetTableFileName(tableName));
            }

            return(new OperationResult <Table>(ExecutionState.performed, table));
        }
Ejemplo n.º 4
0
        public OperationResult <Tuple <long, long> > InsertRow(Id tableName, Row fields)
        {
            if (!File.Exists(GetTableFileName(tableName)))
            {
                return(new OperationResult <Tuple <long, long> >(ExecutionState.failed, new Tuple <long, long>(0, 0), new TableNotExistError(FullTableName(tableName))));
            }

            using var manager = new TableFileManager(new FileStream(GetTableFileName(tableName), FileMode.Open, FileAccess.ReadWrite, FileShare.Read, 4096));

            var rowRecord = new RowRecord(fields);

            manager.InsertRecord(rowRecord);


            return(new OperationResult <Tuple <long, long> >(ExecutionState.performed, new Tuple <long, long>(manager.readCount, manager.writeCount)));
        }
Ejemplo n.º 5
0
        public OperationResult <Tuple <long, long> > UpdateAllRow(Id tableName, Row newRow, Predicate <Row> match)
        {
            if (!File.Exists(GetTableFileName(tableName)))
            {
                return(new OperationResult <Tuple <long, long> >(ExecutionState.failed, new Tuple <long, long>(0, 0), new TableNotExistError(FullTableName(tableName))));
            }
            using var manager = new TableFileManager(new FileStream(GetTableFileName(tableName), FileMode.Open, FileAccess.ReadWrite, FileShare.Read, 4096));

            using var tableData = new DataStorageRowsInFilesEnumerator(manager);
            var isnLast = tableData.MoveNext();

            while (isnLast)
            {
                isnLast = match(tableData.Current) ? tableData.UpdateCurrentRow(newRow) : tableData.MoveNext();
            }


            return(new OperationResult <Tuple <long, long> >(ExecutionState.performed, new Tuple <long, long>(manager.readCount, manager.writeCount)));
        }
Ejemplo n.º 6
0
 public DataStorageRowsInFilesEnumerator(TableFileManager tManager)
 {
     _tManager = tManager;
     Reset();
 }
Ejemplo n.º 7
0
 public TableFileManagerDataBlockNodeEnumerator(TableFileManager tManager_)
 {
     _tManager = tManager_;
     Reset();
 }